Date: Mon, 21 Apr 2014 22:51:02 +0000 (UTC) From: Dru Lavigne <dru@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r44623 - head/en_US.ISO8859-1/books/handbook/boot Message-ID: <201404212251.s3LMp2Te075010@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dru Date: Mon Apr 21 22:51:01 2014 New Revision: 44623 URL: http://svnweb.freebsd.org/changeset/doc/44623 Log: Editorial review of boot stages. Format loader built-in commands as a table. More commits to come. Sponsored by: iXsystems Modified: head/en_US.ISO8859-1/books/handbook/boot/chapter.xml Modified: head/en_US.ISO8859-1/books/handbook/boot/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/handbook/boot/chapter.xml Mon Apr 21 21:29:57 2014 (r44622) +++ head/en_US.ISO8859-1/books/handbook/boot/chapter.xml Mon Apr 21 22:51:01 2014 (r44623) @@ -173,18 +173,13 @@ <indexterm><primary>Master Boot Record (<acronym>MBR</acronym>)</primary></indexterm> - <para>The code in the <acronym>MBR</acronym> or boot manager is + <para>The boot manager code in the <acronym>MBR</acronym> is sometimes referred to as <emphasis>stage zero</emphasis> of the - boot process. This section discusses two boot managers: - <application>boot0</application> and - <application>LILO</application>.</para> - - <formalpara> - <title>The <application>boot0</application> Boot - Manager:</title> + boot process. By default, &os; uses the + <application>boot0</application> boot manager.</para> - <para>The <acronym>MBR</acronym> installed by &os;'s installer - or &man.boot0cfg.8; is based on + <para>The <acronym>MBR</acronym> installed by the &os; installer + is based on <filename>/boot/boot0</filename>. The size and capability of <application>boot0</application> is restricted to 446 bytes due to the slice table and <literal>0x55AA</literal> @@ -192,7 +187,6 @@ <application>boot0</application> and multiple operating systems are installed, a message similar to this example will be displayed at boot time:</para> - </formalpara> <example xml:id="boot-boot0-example"> <title><filename>boot0</filename> Screenshot</title> @@ -203,7 +197,7 @@ F2 FreeBSD Default: F2</screen> </example> - <para>Other operating systems, in particular &windows;, will + <para>Other operating systems will overwrite an existing <acronym>MBR</acronym> if they are installed after &os;. If this happens, or to replace the existing <acronym>MBR</acronym> with the &os; @@ -219,65 +213,37 @@ Default: F2</screen> for the first <acronym>SCSI</acronym> disk. To create a custom configuration of the <acronym>MBR</acronym>, refer to &man.boot0cfg.8;.</para> - - <formalpara> - <title>The LILO Boot Manager:</title> - - <para>To install this boot manager so it will also boot &os;, - boot into Linux and add the following to the existing - <filename>/etc/lilo.conf</filename> configuration:</para> - </formalpara> - - <programlisting>other=/dev/hdXY -table=/dev/hdX -loader=/boot/chain.b -label=FreeBSD</programlisting> - - <para>Specify &os;'s primary partition and drive using Linux - specifiers, replacing <replaceable>X</replaceable> with the - Linux drive letter and <replaceable>Y</replaceable> with the - Linux primary partition number. For a <acronym>SCSI</acronym> - drive, change <replaceable>/dev/hd</replaceable> to - <replaceable>/dev/sd</replaceable>. The - <option>loader=/boot/chain.b</option> line can be omitted if - both operating systems are installed on the same drive. Next, - run <command>/sbin/lilo -v</command> to commit the new - changes. Verify these are correct by checking the screen - messages.</para> </sect2> <sect2 xml:id="boot-boot1"> <title>Stage One and Stage Two</title> <para>Conceptually, the first and second stages are part of the - same program, on the same area of the disk. Because of space + same program on the same area of the disk. Because of space constraints, they have been split into two, but are always installed together. They are copied from the combined - <filename>/boot/boot</filename> by the installer or - &man.bsdlabel.8;.</para> + <filename>/boot/boot</filename> by the &os; installer or + <command>bsdlabel</command>.</para> - <para>They are located outside file systems, in the first track + <para>These two stages are located outside file systems, in the first track of the boot slice, starting with the first sector. This is - where boot0 (<xref linkend="boot-boot0"/>), or any other + where <application>boot0</application>, or any other boot manager, expects to find a program to run which will - continue the boot process. The number of sectors used is - easily determined from the size of - <filename>/boot/boot</filename>.</para> + continue the boot process.</para> - <para><filename>boot1</filename> is very simple, since it can - only be 512 bytes in size, and knows just enough about the + <para>The first stage, <filename>boot1</filename>, is very simple, since it can + only be 512 bytes in size. It knows just enough about the &os; <firstterm>bsdlabel</firstterm>, which stores information about the slice, to find and execute <filename>boot2</filename>.</para> - <para><filename>boot2</filename> is slightly more sophisticated, - and understands the &os; file system enough to find files, and + <para>Stage two, <filename>boot2</filename>, is slightly more sophisticated, + and understands the &os; file system enough to find files. It can provide a simple interface to choose the kernel or loader - to run.</para> - - <para>However, &man.loader.8; is much more sophisticated and - provides a boot configuration which is run by - <filename>boot2</filename>.</para> + to run. It runs <application>loader</application>, which is much more sophisticated and + provides a boot configuration file. If the boot process is + interrupted at stage two, the following interactive screen is + displayed:</para> <example xml:id="boot-boot2-example"> <title><filename>boot2</filename> Screenshot</title> @@ -287,26 +253,23 @@ Default: 0:ad(0,a)/boot/loader boot:</screen> </example> - <para>&man.bsdlabel.8; can be used to replace the installed + <para>To replace the installed <filename>boot1</filename> and - <filename>boot2</filename>:</para> - - <screen>&prompt.root; <userinput>bsdlabel -B <replaceable>diskslice</replaceable></userinput></screen> - - <para>where <replaceable>diskslice</replaceable> is the disk and + <filename>boot2</filename>, use <command>bsdlabel</command>, + where <replaceable>diskslice</replaceable> is the disk and slice to boot from, such as <filename>ad0s1</filename> for the first slice on the first <acronym>IDE</acronym> - disk.</para> + disk:</para> - <warning> - <title>Dangerously Dedicated Mode</title> + <screen>&prompt.root; <userinput>bsdlabel -B <replaceable>diskslice</replaceable></userinput></screen> + <warning> <para>If just the disk name is used, such as - <filename>ad0</filename>, &man.bsdlabel.8; will create a - <quote>dangerously dedicated</quote> disk, without slices. + <filename>ad0</filename>, <command>bsdlabel</command> will create the disk in + <quote>dangerously dedicated mode</quote>, without slices. This is probably not the desired action, so double check the - <replaceable>diskslice</replaceable> passed to - &man.bsdlabel.8; before pressing + <replaceable>diskslice</replaceable> + before pressing <keycap>Return</keycap>.</para> </warning> </sect2> @@ -316,16 +279,16 @@ boot:</screen> <indexterm><primary>boot-loader</primary></indexterm> - <para>The loader is the final stage of the three-stage - bootstrap, and is located on the file system, usually as + <para>The <application>loader</application> is the final stage of the three-stage + bootstrap process. It is located on the file system, usually as <filename>/boot/loader</filename>.</para> - <para>The loader is intended as an interactive method for + <para>The <application>loader</application> is intended as an interactive method for configuration, using a built-in command set, backed up by a more powerful interpreter which has a more complex command set.</para> - <para>During initialization, the loader will probe for a + <para>During initialization, <application>loader</application> will probe for a console and for disks, and figure out which disk it is booting from. It will set variables accordingly, and an interpreter is started where user commands can be passed from @@ -334,7 +297,7 @@ boot:</screen> <indexterm><primary>loader</primary></indexterm> <indexterm><primary>loader configuration</primary></indexterm> - <para>The loader will then read + <para>The <application>loader</application> will then read <filename>/boot/loader.rc</filename>, which by default reads in <filename>/boot/defaults/loader.conf</filename> which sets reasonable defaults for variables and reads @@ -343,166 +306,135 @@ boot:</screen> these variables, loading whichever modules and kernel are selected.</para> - <para>Finally, by default, the loader issues a 10 second wait + <para>Finally, by default, <application>loader</application> issues a 10 second wait for key presses, and boots the kernel if it is not interrupted. If interrupted, the user is presented with a prompt which understands the command set, where the user may adjust variables, unload all modules, load modules, and then - finally boot or reboot.</para> + finally boot or reboot. <xref + linkend="boot-loader-commands"/> lists the most + commonly used <application>loader</application> commands. For + a complete discussion of all available commands, refer to + &man.loader.8;.</para> - <sect3 xml:id="boot-loader-commands"> + <table xml:id="boot-loader-commands" frame="none" pgwide="1"> <title>Loader Built-In Commands</title> - <para>These are the most commonly used loader commands. For a - complete discussion of all available commands, refer to - &man.loader.8;.</para> - - <variablelist> - <varlistentry> - <term>autoboot <replaceable>seconds</replaceable></term> - - <listitem> - <para>Proceeds to boot the kernel if not interrupted + <tgroup cols="2"> + <thead> + <row> + <entry>Variable</entry> + <entry>Description</entry> + </row> + </thead> + + <tbody> + <row> + <entry>autoboot <replaceable>seconds</replaceable></entry> + <entry>Proceeds to boot the kernel if not interrupted within the time span given, in seconds. It displays a countdown, and the default time span is 10 - seconds.</para> - </listitem> - </varlistentry> + seconds.</entry> + </row> - <varlistentry> - <term>boot + <row> + <entry>boot <optional><replaceable>-options</replaceable></optional> - <optional><replaceable>kernelname</replaceable></optional></term> - - <listitem> - <para>Immediately proceeds to boot the kernel, with any + <optional><replaceable>kernelname</replaceable></optional></entry> + <entry>Immediately proceeds to boot the kernel, with any specified options or kernel name. Providing a kernel name on the command-line is only applicable after an - <emphasis>unload</emphasis> command has been issued; - otherwise the previously-loaded kernel will be - used.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>boot-conf</term> - - <listitem> - <para>Goes through the same automatic configuration of + <command>unload</command> has been issued. + Otherwise the previously-loaded kernel will be + used.</entry> + </row> + + <row> + <entry>boot-conf</entry> + <entry>Goes through the same automatic configuration of modules based on specified variables, most commonly <envar>kernel</envar>. This only makes sense if <command>unload</command> is used first, before - changing some variables.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>help - <optional><replaceable>topic</replaceable></optional></term> + changing some variables.</entry> + </row> - <listitem> - <para>Shows help messages read from + <row> + <entry>help + <optional><replaceable>topic</replaceable></optional></entry> + <entry>Shows help messages read from <filename>/boot/loader.help</filename>. If the topic given is <literal>index</literal>, the list of - available topics is displayed.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>include <replaceable>filename</replaceable> - …</term> - - <listitem> - <para>Processes the file with the given filename. The - file is read in and interpreted line by line. An - error immediately stops the include command.</para> - </listitem> - </varlistentry> + available topics is displayed.</entry> + </row> - <varlistentry> - <term>load <optional>-t - <replaceable>type</replaceable></optional> - <replaceable>filename</replaceable></term> + <row> + <entry>include <replaceable>filename</replaceable> + …</entry> + <entry>Reads the specified file and interprets it line by line. An + error immediately stops the <command>include</command>.</entry> + </row> - <listitem> - <para>Loads the kernel, kernel module, or file of the + <row> + <entry>load <optional>-t + <replaceable>type</replaceable></optional> + <replaceable>filename</replaceable></entry> + <entry>Loads the kernel, kernel module, or file of the type given, with the specified filename. Any arguments after <replaceable>filename</replaceable> - are passed to the file.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>ls <optional>-l</optional> - <optional><replaceable>path</replaceable></optional></term> + are passed to the file.</entry> + </row> - <listitem> - <para>Displays a listing of files in the given path, or + <row> + <entry>ls <optional>-l</optional> + <optional><replaceable>path</replaceable></optional></entry> + <entry>Displays a listing of files in the given path, or the root directory, if the path is not specified. If <option>-l</option> is specified, file sizes will - also be shown.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>lsdev - <optional>-v</optional></term> + also be shown.</entry> + </row> - <listitem> - <para>Lists all of the devices from which it may be + <row> + <entry>lsdev + <optional>-v</optional></entry> + <entry>Lists all of the devices from which it may be possible to load modules. If <option>-v</option> is - specified, more details are printed.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>lsmod - <optional>-v</optional></term> - - <listitem> - <para>Displays loaded modules. If <option>-v</option> - is specified, more details are shown.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>more <replaceable>filename</replaceable></term> - - <listitem> - <para>Displays the files specified, with a pause at each - <varname>LINES</varname> displayed.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>reboot</term> - - <listitem> - <para>Immediately reboots the system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>set <replaceable>variable</replaceable></term> - <term>set - <replaceable>variable</replaceable>=<replaceable>value</replaceable></term> - - <listitem> - <para>Sets the loader's environment variables.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>unload</term> - - <listitem> - <para>Removes all loaded modules.</para> - </listitem> - </varlistentry> - </variablelist> - </sect3> + specified, more details are printed.</entry> + </row> + + <row> + <entry>lsmod + <optional>-v</optional></entry> + <entry>Displays loaded modules. If <option>-v</option> + is specified, more details are shown.</entry> + </row> + + <row> + <entry>more <replaceable>filename</replaceable></entry> + <entry>Displays the files specified, with a pause at each + <varname>LINES</varname> displayed.</entry> + </row> + + <row> + <entry>reboot</entry> + <entry>Immediately reboots the system.</entry> + </row> + + <row> + <entry>set <replaceable>variable</replaceable>, set + <replaceable>variable</replaceable>=<replaceable>value</replaceable></entry> + <entry>Sets the specified environment variables.</entry> + </row> + + <row> + <entry>unload</entry> + <entry>Removes all loaded modules.</entry> + </row> + </tbody> + </tgroup> + </table> + </sect2> - <sect3 xml:id="boot-loader-examples"> + <sect2 xml:id="boot-loader-examples"> <title>Loader Examples</title> <para>Here are some practical examples of loader usage:</para> @@ -547,7 +479,6 @@ boot:</screen> <screen><userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput></screen> </listitem> </itemizedlist> - </sect3> </sect2> <sect2 xml:id="boot-kernel">
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404212251.s3LMp2Te075010>