<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="ch-scripts-bootscripts" role="wrap">
  <?dbhtml filename="bootscripts.html"?>

  <title>Bootscripts for CLFS &bootscripts-clfs-version;</title>

  <indexterm zone="ch-scripts-bootscripts">
    <primary sortas="a-Bootscripts">Bootscripts</primary>
    <secondary>boot</secondary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>The Bootscripts package contains a set of scripts to
    start/stop the CLFS system at bootup/shutdown.</para>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Bootscripts</title>

    <para os="s1">Remove references to Makefile targets that do not need
    to be used at this time:</para>

<screen os="s2"><userinput>cp Makefile{,.orig}
sed -e '/^install-minimal/s/ udev_device_dirs udev_device_links//' \
    -e '/ mknod_devices/d' \
    Makefile.orig > Makefile</userinput></screen>

    <para os="a">Install the package:</para>

<screen os="b"><userinput>make DESTDIR=${CLFS} install-minimal</userinput></screen>

  <para os="c">The <command>setclock</command> script reads the time from the
  hardware clock, also known as the BIOS or the Complementary Metal Oxide
  Semiconductor (CMOS) clock. If the hardware clock is set to UTC, this
  script will convert the hardware clock's time to the local time using
  the <filename>/etc/localtime</filename> file (which tells the
  <command>hwclock</command> program which timezone the user is in). There
  is no way to detect whether or not the hardware clock is set to UTC, so
  this needs to be configured manually.</para>



  <para os="d">If you do not know whether or not the hardware clock is set to UTC,
  you can find out after you have booted the new machine by running the
  <userinput>hwclock --localtime  --show</userinput> command, and if
  necessary editing the <filename>/etc/sysconfig/clock</filename> script.
  The worst that will happen if you make a wrong guess here is that the
  time displayed will be wrong.</para>

  <para os="e">Change the value of the <envar>UTC</envar> variable below
  to a value of <option>0</option> (zero) if the hardware clock
  is <emphasis>not</emphasis> set to UTC time.</para>

<screen os="f"><userinput>cat &gt; ${CLFS}/etc/sysconfig/clock &lt;&lt; "EOF"
<literal># Begin /etc/sysconfig/clock

UTC=1

# End /etc/sysconfig/clock</literal>
EOF</userinput></screen>

  </sect2>

  <sect2 id="contents-bootscripts" role="content">
    <title>Contents of Bootscripts</title>

    <segmentedlist>
      <segtitle>Installed scripts</segtitle>

      <seglistitem>
        <seg>checkfs, cleanfs, console, functions, halt, ifdown,
        ifup, localnet, mountfs, mountkernfs, network, rc, reboot, sendsignals,
        setclock, static, swap, sysklogd, template, and udev.</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="checkfs-bootscripts">
        <term><command>checkfs</command></term>
        <listitem>
          <para>Checks the integrity of the file systems before they are
          mounted (with the exception of journal and network based file
          systems)</para>
          <indexterm zone="ch-scripts-bootscripts checkfs-bootscripts">
            <primary sortas="d-checkfs">checkfs</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="cleanfs-bootscripts">
        <term><command>cleanfs</command></term>
        <listitem>
          <para>Removes files that should not be preserved between reboots,
          such as those in <filename class="directory">/var/run/</filename>
          and <filename class="directory">/var/lock/</filename>; it re-creates
          <filename>/var/run/utmp</filename> and removes the possibly present
          <filename>/etc/nologin</filename>, <filename>/fastboot</filename>,
          and <filename>/forcefsck</filename> files</para>
          <indexterm zone="ch-scripts-bootscripts cleanfs-bootscripts">
            <primary sortas="d-cleanfs">cleanfs</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="console-bootscripts">
        <term><command>console</command></term>
        <listitem>
          <para>Loads the correct keymap table for the desired keyboard
          layout; it also sets the screen font</para>
          <indexterm zone="ch-scripts-bootscripts console-bootscripts">
            <primary sortas="d-console">console</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="functions-bootscripts">
        <term><command>functions</command></term>
        <listitem>
          <para>Contains common functions, such as error and status checking,
          that are used by several bootscripts</para>
          <indexterm zone="ch-scripts-bootscripts functions-bootscripts">
            <primary sortas="d-functions">functions</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="halt-bootscripts">
        <term><command>halt</command></term>
        <listitem>
          <para>Halts the system</para>
          <indexterm zone="ch-scripts-bootscripts halt-bootscripts">
            <primary sortas="d-halt">halt</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="ifdown-bootscripts">
        <term><command>ifdown</command></term>
        <listitem>
          <para>Assists the network script with stopping network devices</para>
          <indexterm zone="ch-scripts-bootscripts ifdown-bootscripts">
            <primary sortas="d-ifdown">ifdown</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="ifup-bootscripts">
        <term><command>ifup</command></term>
        <listitem>
          <para>Assists the network script with starting network devices</para>
          <indexterm zone="ch-scripts-bootscripts ifup-bootscripts">
            <primary sortas="d-ifup">ifup</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="localnet-bootscripts">
        <term><command>localnet</command></term>
        <listitem>
          <para>Sets up the system's hostname and local loopback device</para>
          <indexterm zone="ch-scripts-bootscripts localnet-bootscripts">
            <primary sortas="d-localnet">localnet</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="mountfs-bootscripts">
        <term><command>mountfs</command></term>
        <listitem>
          <para>Mounts all file systems, except ones that are marked
          <emphasis>noauto</emphasis> or are network based</para>
          <indexterm zone="ch-scripts-bootscripts mountfs-bootscripts">
            <primary sortas="d-mountfs">mountfs</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="mountkernfs-bootscripts">
        <term><command>mountkernfs</command></term>
        <listitem>
          <para>Mounts virtual kernel file systems, such as
          <systemitem class="filesystem">proc</systemitem></para>
          <indexterm zone="ch-scripts-bootscripts mountkernfs-bootscripts">
            <primary sortas="d-mountkernfs">mountkernfs</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="network-bootscripts">
        <term><command>network</command></term>
        <listitem>
          <para>Sets up network interfaces, such as network cards, and sets up
          the default gateway (where applicable)</para>
          <indexterm zone="ch-scripts-bootscripts network-bootscripts">
            <primary sortas="d-network">network</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="rc-bootscripts">
        <term><command>rc</command></term>
        <listitem>
          <para>The master run-level control script; it is responsible for
          running all the other bootscripts one-by-one, in a sequence
          determined by the name of the symbolic links being processed</para>
          <indexterm zone="ch-scripts-bootscripts rc-bootscripts">
            <primary sortas="d-rc">rc</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="reboot-bootscripts">
        <term><command>reboot</command></term>
        <listitem>
          <para>Reboots the system</para>
          <indexterm zone="ch-scripts-bootscripts reboot-bootscripts">
            <primary sortas="d-reboot">reboot</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="sendsignals-bootscripts">
        <term><command>sendsignals</command></term>
        <listitem>
          <para>Makes sure every process is terminated before the system reboots
          or halts</para>
          <indexterm zone="ch-scripts-bootscripts sendsignals-bootscripts">
            <primary sortas="d-sendsignals">sendsignals</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="setclock-bootscripts">
        <term><command>setclock</command></term>
        <listitem>
          <para>Resets the kernel clock to local time in case the hardware clock
          is not set to UTC time</para>
          <indexterm zone="ch-scripts-bootscripts setclock-bootscripts">
            <primary sortas="d-setclock">setclock</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="static-bootscripts">
        <term><command>static</command></term>
        <listitem>
          <para>Provides the functionality needed to assign a static Internet
          Protocol (IP) address to a network interface</para>
          <indexterm zone="ch-scripts-bootscripts static-bootscripts">
            <primary sortas="d-static">static</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="swap-bootscripts">
        <term><command>swap</command></term>
        <listitem>
          <para>Enables and disables swap files and partitions</para>
          <indexterm zone="ch-scripts-bootscripts swap-bootscripts">
            <primary sortas="d-swap">swap</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="sysklogd-bootscripts">
        <term><command>sysklogd</command></term>
        <listitem>
          <para>Starts and stops the system and kernel log daemons</para>
          <indexterm zone="ch-scripts-bootscripts sysklogd-bootscripts">
            <primary sortas="d-sysklogd">sysklogd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="template-bootscripts">
        <term><command>template</command></term>
        <listitem>
          <para>A template to create custom bootscripts for other
          daemons</para>
          <indexterm zone="ch-scripts-bootscripts template-bootscripts">
            <primary sortas="d-template">template</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="eudev-bootscripts">
        <term><command>udev</command></term>
        <listitem>
          <para>Starts and stops the Eudev daemon</para>
          <indexterm zone="ch-scripts-bootscripts eudev-bootscripts">
            <primary sortas="d-eudev">udev</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
