diff --git a/handbook/booting.sgml b/handbook/booting.sgml new file mode 100644 index 0000000000..b395b40a24 --- /dev/null +++ b/handbook/booting.sgml @@ -0,0 +1,165 @@ + + + +
+ + Boot overview + Poul-Henning Kamp, + v1.1, April 26th + + Booting FreeBSD is essentially a three step: Load the kernel, + determine the root filesystem and initialize user-land things. This + leads to some interesting possibilities as shown below... + + + + + Loading a kernel +

+ We presently have three basic mechanisms for loading the kernel: + + biosboot + dosboot + netboot + + Each will be described in detail below. They all pass some + information to the kernel to help the kernel decide what to do + next. + + Biosboot +

+ Biosboot is our ``bootblocks'', it consists of two files, which + will be installed in the first 8Kbytes of the floppy or hard-disk + slice to be booted from. + + Biosboot can load a kernel from a FreeBSD filesystem. + + Dosboot +

+ Dosboot was written by DI. Christian Gusenbauer, and is + unfortunately at this time one of the few pieces of code that + isn't compilable under FreeBSD itself because it is written for + MicroSoft compilers. + + Dosboot will boot the kernel from a MS-DOS file or from a FreeBSD + filesystem partition on the disk. It attempts to negotiate with + the various and strange kinds of memory manglers that lurk in + high memory on MS/DOS systems and usually wins them for it's + case. + + Netboot +

+ Netboot will try to find a supported ethernet card, and use + BOOTP, TFTP and NFS to find a kernel file to boot. + + Determine the root filesystem +

+ Once the kernel is loaded and the boot-code jumps to it, the kernel + will initialize itself, trying to determine what hardware is + present and so on, and then it needs to find a root filesystem. + + Presently we support the following types of rootfilesystems: + + UFS + MSDOS + MFS + CD9660 + NFS + + + UFS +

+ This is the most normal type of root filesystem. It can reside on + a floppy or on harddisk. + + MSDOS +

+ While this is technically possible, it isn't particular useful, + because of ``FAT'' filesystems inability to make links, device + nodes and such ``UNIXisms''. + + MFS +

+ This is actually a UFS filesystem which has been compiled into + the kernel. That means that the kernel does not really need any + disks/floppies or other HW to function. + + CD9660 +

+ This is for using a CD-ROM as root filesystem. + + NFS +

+ This is for using a fileserver as root filesystem, basically + making it a diskless machine. + + Initialize user-land things +

+ To get the user-land going, when the kernel has finished + initialization, it will create a with ``/sbin/init''. + + You can substitute any program for /sbin/init, as long as you keep + in mind that: + + there is no stdin/out/err unless you open it yourself, if you exit, + the machine panics signal handling is special for ``Interesting combinations +

+ Boot a kernel with a MFS in it with a special /sbin/init + which... + + + mounts your /C: + Attaches C:/freebsd.fs on /dev/vn0 + mounts /dev/vn0 as /rootfs + makes symlinks + /rootfs/bin -> /bin + /rootfs/etc -> /etc + /rootfs/sbin -> /sbin + ... + + + Now you run FreeBSD without repartitioning your hard disk... + + server:˜you/FreeBSD as + /nfs, chroots to /nfs and executes + /sbin/init there + + Now you run FreeBSD diskless, even though you don't control + the NFS server... + + /dev/rwd0 and writes it to a remote tape + station or fileserver. + + Now you finally got that backup you should have made a year + ago... + + E -- Acts as a firewall/web-server/what do I know... + + This is particular interesting since you can boot from a write- + protected floppy, but still write to your root filesystem... + +

+ +