Welcome to the Tiny Core Linux Wiki at tinycorelinux.net!

This document describes the default boot process. Many variations, large and small, are readily available. Details will be added over time. Last update is for TC 3.8, 2011/08/04.

#The Boot Loader

There are a number of boot loaders in common use with TC. Syslinux is the default if you use the CorePlus installation method. GRUB 0.97 seems most often used,GRUB2 is supported, and there are others.

#General Boot Scripts

/etc/init.d is used with the venerable 'inittab' method. It does not start X. It sets up one Linux virtual console to auto-login to user “tc”, with a respawn.

#Auto-Login

After auto-login, we have the usual shell inits through /etc/profile, and then…

#.xsession

…the file “.xsession” in /home/tc, is called. It starts X, the X desktop, and also autostarts any custom scripts in /home/tc/.X.d.

#SUMMARY: Scripts Sequence

[BootLoader → bzImage → tinycore.gz] → init → inittab → init.d/rcS → tc-config → ( dhcp.sh & tce-setup & restore.sh & bootsync.sh → bootlocal.sh) → init → /root/.profile → /home/tc/.profile →→→ /usr/bin/startx → ( xsetup.sh) → /home/tc/.xsession → ( Xvesa, jwm & wbar & /home/tc/.X.d/*.* )

Bootloader Process (syslinux, lilo, grub)

  1. Load Linux Kernel within bzImage (vmlinuz)
  2. Load RootFS from initrd (core.gz)
  3. Start Kernel with parameters specified in bootloader command string (see TinyCore Config Process).
    1. Kernel Starts Init Process (/sbin/init → /bin/busybox init)

Init Process (/sbin/init → /bin/busybox init)

  1. Configuration from INITTAB (/etc/inittab)
    1. Defines SYSINIT script Location (/etc/init.d/rcS)
    2. Establishes TTY configuration
    3. Defines Script locations for restart, shutdown, etc.
  2. Starts SYSINIT (/etc/init.d/rcS)
    1. Mount /proc
    2. Mount /rootfs
    3. Mount FSTAB devices (/etc/fstab)
    4. Starts TinyCore Config Process (/etc/init.d/tc-config)

TinyCore Config Process (/etc/init.d/tc-config)

  1. Loads function library (/etc/init.d/tc-functions)
  2. Exports PATH Environment Variable
  3. Builds MODPROBE Blacklist Config (/etc/modeprobe.d/blacklist.conf)
    • Adds all modules listed in BLACKLIST boot parameter
  4. Populates /dev (/sbin/udevd)
  5. Starts Loop Kernel Module (/sbin/modprobe → /bin/busybox modprobe)
  6. Creates Compressed Swap in RAM (/sbin/mkswap → /bin/busybox mkswap)
    • Unless NOZSWAP specified in boot parameters
  7. Adds SCSI drives to fstab
    • Unless NOFSTAB specified in boot parameters
  8. Starts SYSLOG (/sbin/syslogd → /bin/busybox syslogd)
    • at location specified in RSYSLOG boot parameter
  9. Exports LANG Environment Variable
  10. Configures Timezone as specified in TZ boot parameter (/etc/sysconfig/timezone)
  11. Configures Real-Time Clock (/sbin/hwclock → /bin/busybox hwclock)
    • Unless NOUTC boot parameter is specified
  12. Configures hostname (/etc/hostname)
  13. Configures Network Loopback (/sbin/ifconfig → /bin/busybox ifconfig)
  14. Configures ATA over Ethernet
  15. Create user named in USER boot parameter (/bin/adduser → /bin/busybox adduser)
    • default to 'tc'
  16. Create Base Directories for TCE Applications
  17. Load Remote Tiny Core Extensions
    1. TFTP URL defined in TFTPLIST boot parameter
    2. HTTP URL defined in HTTPLIST boot parameter
  18. Mount Filesystems
    1. NFS mount-point defined in NFSMOUNT boot parameter
    2. Network Block Device mount-point defined in NBD boot parameter
    3. TC Virtual Hard Drive defined in TCVD boot parameter
  19. Load LVM/RAID extensions specified in PRETCE boot parameter
  20. Setup Persistent 'home' folder
  21. Setup Persistent 'opt' folder
  22. Enable Laptop functionality if LAPTOP boot parameter defined
  23. Disable Swap file if NOSWAP boot parameter defined
  24. Use swap file as defined in SWAPFILE boot parameter
  25. Attempt Restore from Hibernation from file defined in RESTORE boot parameter
  26. Configure Icon location or hide icons if NOICONS boot parameter is defined
  27. Load Local Tiny Core Extensions (/usr/bin/tce-setup)
    1. process any .gzs files
    2. process tcz initrd builtins
    3. process regular tcz extensions
    4. process CD extensions
    5. process scm files
  28. Configure Key Mappings as defined in KEYMAP boot variable
    • defaults to 'US'
  29. Configure root and user passwords
  30. Enable encryption of user store
  31. Configure XORG VESA Video Mode as defined in XVESA boot variable
  32. Start DHCP Process (/etc/init.d/dhcp.sh)
  33. Set Time via Real-Time Clock (/etc/init.d/settime.sh)
  34. Start CRON Process (/etc/init.d/services/crond)
  35. Start Bootsync Process (/opt/bootsync.sh)
  36. Autologin as $USER if NOAUTOLOGIN boot parameter is NOT defined
  37. Pause completion of script execution if PAUSE boot parameter is defined
Print/export
QR Code
QR Code wiki:the_boot_process (generated for current page)