Bootstrapping starts from that BIOS passes control to cdboot bootmanager which is located in bootable area of CD. cdboot runs BTX loader (/boot/loader). BTX loader reads its configuration files, loads kernel and necessary modules and displays boot menu (with the logo). Then kernel loading and devices identification are run.
There is specified in the loader configuration that root file system shouyld be mounted from compressed image /boot/frenzyroot.gz. After loading kernel root file system is mounted from this image and control is passed to /sbin/init process which is run from this place.
frenzyroot image contains several base utilities :
cp sh test echo init mdconfig mount mount_cd9660 mount_nullfs umount sleep
There are several important files in /etc also, including rc-scripts specially written for Frenzy.
/sbin/init runs /etc/rc. This is a non-standard script which performs all initial tuning and booting LiveCD.
First we should find and mount the disk the system is booted from. Script looks file frenzy.uzip at every CD-ROM and USB drives in an order. If such file was found the disk that contains in is mounted in /Frenzy/boot directory.
frenzy.uzip contains compressed file system that will be used as a root. Yet it cannot be mounted over existing root FS we do the following. File system from frenzy.uzip is mounted at /Frenzy/fs directory, after that we use mount_nullfs to mount directories bin, boot, lib, libexec, sbin, usr
from compressed image over the existing file system.
Nice font is loaded and screenmap is set up. This is neede to display russian menu.
We calculate the volume of system RAM. Hence we set up RAM-disk size by default (10,15,30 and 45 megs).
Boot menu is displayed on screen. We set up boot parameters (its descriptioon see here).
We create RAM-disk with specified size and mount it to /Frenzy/ramdisk. Directories etc, root, var, mnt
will be stored there. We create them, copy to them files from appropriate directories located in /Frenzy/fs and mount these directories over the directories of root with mount_nullfs. Than settings defined in boot menu are stored in /etc/frenzy.boot
We look through the directory /Frenzy/boot/frenzy.conf. If there are scripts whose names are end with '.patch' we perform them. This is useful in case if you add some pathes for configuration files but do not want to rebuild compressed image.
If the parameter 'toram' was chosen then loading to memory will be performed:
After loading to RAM CD-ROM drive is freed and tray is ejected.
By default are mounted in “read only” mode. The next menu options are available:
If fromhdd
parameter was chosen than bootstrapping from HDD will be performed:
After the bootstrapping from hard disk CD-ROM is freed and its tray is ejected.
At last, /etc/rc is run.
Running system rc-scripts almost identical to standard FreeBSD's one. But there are some differences :
1. Some part of rc-scripts is edited such way to not to run them if /tmp/.frenzy
exists. These scripts are used to mount partiotions described in fstab and to check them with fsck (this is not needed when booting from livecd because it is done by other scenarios).
2. After all rc-scripts are run /etc/rc.d/FRENZY
is executed which performs the following:
/usr/local/bin/mouse-detect
)