aboutsummaryrefslogtreecommitdiff
path: root/handbook
diff options
context:
space:
mode:
authorJohn Fieber <jfieber@FreeBSD.org>1995-04-28 19:48:56 +0000
committerJohn Fieber <jfieber@FreeBSD.org>1995-04-28 19:48:56 +0000
commit34f7aa730d4a544faa03ca2fd60cb53a0f7346ce (patch)
treec1dc9fa81125f7880173e17d5c5bf83dda2f4356 /handbook
parentdf12b6b4630870accf047b04bfdd5b58a0deb76b (diff)
downloaddoc-34f7aa730d4a544faa03ca2fd60cb53a0f7346ce.tar.gz
doc-34f7aa730d4a544faa03ca2fd60cb53a0f7346ce.zip
Move out of the obsolete FAQ directory into the handbook.
Notes
Notes: svn path=/head/; revision=4
Diffstat (limited to 'handbook')
-rw-r--r--handbook/booting.sgml165
1 files changed, 165 insertions, 0 deletions
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 @@
+<!-- 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">
+
+ <article>
+
+ <title>Boot overview</title>
+ <author>Poul-Henning Kamp, <tt/&lt;phk@login.dknet.dk&gt;/</author>
+ <date>v1.1, April 26th</date>
+ <abstract>
+ 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...
+ </abstract>
+
+ <toc>
+
+ <sect>Loading a kernel
+ <p>
+ We presently have three basic mechanisms for loading the kernel:
+ <enum>
+ <item>biosboot
+ <item>dosboot
+ <item>netboot
+ </enum>
+ Each will be described in detail below. They all pass some
+ information to the kernel to help the kernel decide what to do
+ next.
+
+ <sect1>Biosboot
+ <p>
+ 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.
+
+ <sect1>Dosboot
+ <p>
+ 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.
+
+ <sect1>Netboot
+ <p>
+ 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
+ <p>
+ 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:
+ <itemize>
+ <item>UFS
+ <item>MSDOS
+ <item>MFS
+ <item>CD9660
+ <item>NFS
+ </itemize>
+
+ <sect1>UFS
+ <p>
+ This is the most normal type of root filesystem. It can reside on
+ a floppy or on harddisk.
+
+ <sect1>MSDOS
+ <p>
+ While this is technically possible, it isn't particular useful,
+ because of ``FAT'' filesystems inability to make links, device
+ nodes and such ``UNIXisms''.
+
+ <sect1>MFS
+ <p>
+ 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.
+
+ <sect1>CD9660
+ <p>
+ This is for using a CD-ROM as root filesystem.
+
+ <sect1>NFS
+ <p>
+ This is for using a fileserver as root filesystem, basically
+ making it a diskless machine.
+
+ <sect>Initialize user-land things
+ <p>
+ 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
+ ``<tt>/sbin/init</tt>''.
+
+ 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 ==
+ 1/''.
+
+
+ <sect>Interesting combinations
+ <p>
+ Boot a kernel with a MFS in it with a special <tt>/sbin/init</tt>
+ which...
+ <descrip>
+ <tag/A -- Using DOS/
+ <itemize>
+ <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 -&gt; /bin</tt><newline>
+ <tt>/rootfs/etc -&gt; /etc</tt><newline>
+ <tt>/rootfs/sbin -&gt; /sbin</tt><newline>
+ ...<newline>
+ </itemize>
+
+ Now you run FreeBSD without repartitioning your hard disk...
+
+ <tag/B -- Using NFS/
+
+ NFS mounts your <tt>server:&tilde;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
+ ago...
+
+ <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...
+ </descrip>
+ </article>
+
+