|author||John Fieber <jfieber@FreeBSD.org>||1995-04-28 19:48:56 +0000|
|committer||John Fieber <jfieber@FreeBSD.org>||1995-04-28 19:48:56 +0000|
Move out of the obsolete FAQ directory into the handbook.
Notes: svn path=/head/; revision=4
Diffstat (limited to 'handbook')
1 files changed, 165 insertions, 0 deletions
diff --git a/handbook/booting.sgml b/handbook/booting.sgml
new file mode 100644
@@ -0,0 +1,165 @@
+<!-- This is a SGML version of the text on FreeBSD boot procedures
+ made by Poul-Henning Kamp <phk@FreeBSD.ORG>
+ This conversion has been made by Ollivier Robert.
+ $Id: booting.sgml,v 1.1 1995-04-28 19:48:56 jfieber Exp $
+<!DOCTYPE linuxdoc PUBLIC "-//Linux//DTD linuxdoc//EN">
+ <title>Boot overview</title>
+ <author>Poul-Henning Kamp, <tt/<email@example.com>/</author>
+ <date>v1.1, April 26th</date>
+ 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...
+ <sect>Loading a kernel
+ We presently have three basic mechanisms for loading the kernel:
+ Each will be described in detail below. They all pass some
+ information to the kernel to help the kernel decide what to do
+ 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 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
+ Netboot will try to find a supported ethernet card, and use
+ BOOTP, TFTP and NFS to find a kernel file to boot.
+ <sect>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:
+ This is the most normal type of root filesystem. It can reside on
+ a floppy or on harddisk.
+ While this is technically possible, it isn't particular useful,
+ because of ``FAT'' filesystems inability to make links, device
+ nodes and such ``UNIXisms''.
+ 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.
+ This is for using a CD-ROM as root filesystem.
+ This is for using a fileserver as root filesystem, basically
+ making it a diskless machine.
+ <sect>Initialize user-land things
+ To get the user-land going, when the kernel has finished
+ initialization, it will create a with ``<tt/pid == 1/'' and execute
+ a program on the rootfilesystem, this program is normally
+ 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 ``<tt/pid ==
+ <sect>Interesting combinations
+ Boot a kernel with a MFS in it with a special <tt>/sbin/init</tt>
+ <tag/A -- Using DOS/
+ <item>mounts your <tt/C:/ as <tt>/C:</tt>
+ <item>Attaches <tt>C:/freebsd.fs</tt> on <tt>/dev/vn0</tt>
+ <item>mounts <tt>/dev/vn0</tt> as <tt>/rootfs</tt>
+ <item>makes symlinks<newline>
+ <tt>/rootfs/bin -> /bin</tt><newline>
+ <tt>/rootfs/etc -> /etc</tt><newline>
+ <tt>/rootfs/sbin -> /sbin</tt><newline>
+ Now you run FreeBSD without repartitioning your hard disk...
+ <tag/B -- Using NFS/
+ NFS mounts your <tt>server:˜you/FreeBSD</tt> as
+ <tt>/nfs</tt>, chroots to <tt>/nfs</tt> and executes
+ <tt>/sbin/init</tt> there
+ Now you run FreeBSD diskless, even though you don't control
+ the NFS server...
+ <tag/C -- Start an X-server/
+ Now you have an Xterminal, which is better than that dingy
+ X-under-windows-so-slow-you-can-see-what-it-does thing that
+ your boss insist is better than forking our money on HW.
+ <tag/D -- Using a tape/
+ Takes a copy of <tt>/dev/rwd0</tt> and writes it to a remote tape
+ station or fileserver.
+ Now you finally got that backup you should have made a year
+ <tag>E -- Acts as a firewall/web-server/what do I know...</tag>
+ This is particular interesting since you can boot from a write-
+ protected floppy, but still write to your root filesystem...