WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: boot process  (Read 266 times)

Offline ulfr

  • Jr. Member
  • **
  • Posts: 83
boot process
« on: June 28, 2018, 07:14:58 PM »

    hi tinycore team and everyone
   
    tinycore and dcore are the greatest
    by far the best designed distro there is
   
    i am trying to learn and update
    the wiki boot process page
    i have changed the html into text
    so it is easier to work with 

    if anyone has the time or interest
    can you check what i have
    to see if it is still accurate
    the text page follows
    thanks
    ulfr

   
BEGIN 

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


this is the text version of the boot wiki


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, windowmanager (flwm 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
 
   17a 1.  TFTP URL defined in TFTPLIST boot parameter

   17b 2.  HTTP URL defined in HTTPLIST boot parameter



18.   Mount Filesystems
     
   18a 1.  NFS mount-point defined in NFSMOUNT boot parameter
     
   18b 2.  Network Block Device mount-point defined in NBD boot parameter
 
   18c 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)
 
   27a 1.  process any .gzs files
   
   27b 2.  process tcz initrd builtins
 
   27c 3.  process regular tcz extensions
     
   27d 4.  process CD extensions
   
   27e 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

END