<!--
     The FreeBSD Documentation Project

     $FreeBSD$
     $FreeBSDes: doc/es_ES.ISO8859-1/books/handbook/boot/chapter.sgml,v 1.3 2004/10/08 18:39:51 jesusr Exp $
-->

<chapter id="boot">
  <title>El Proceso de Arranque en FreeBSD</title>

  <sect1 id="boot-synopsis">
    <title>Sin&oacute;psis</title>
    <indexterm><primary>iniciando</primary></indexterm>
    <indexterm><primary>mecanismo de arranque (bootstrap)</primary></indexterm>

    <para>Al proceso de inicio del sistema y carga del sistema operativo
      se le conoce como <quote>mecanismo de arranque</quote> (bootstrap), 
      o simplemente
      <quote>arranque</quote> (booting). El proceso de arranque de FreeBSD
      provee de gran flexibilidad al configurar lo que ocurre cuando se
      inicia el sistema, permitiendole seleccionar de diferentes sistemas
      operativos instalados en el mismo ordenador, o inclusive diferentes
      versiones del mismo sistema oprativo o kernels instalados.</para>

    <para>Este cap&iacute;tulo detalla las opciones de configuraci&oacute;n
      que puede manejar y como personalizar el proceso de arranque de
      FreeBSD.  Esto incluye todo lo que sucede hasta que el kernel de
      FreeBSD comienza con la comprobaci&oacute;n de dispositivos y se
      inicializa &man.init.8;.  En caso de que usted desconozca cuando ocurre
      todo esto, esto sucede cuando el color del texto que aparece al iniciar
      el sistema, cambia de blanco a gris.</para>

    <para>Una vez que concluya con la lectura de este cap&iacute;tulo, usted
      sabr&aacute;:</para>

    <itemizedlist>
      <listitem>
	<para>Cuales son los componentes del mecanismo de arranque de FreeBSD, 
	  y como es que interactuan entre s&iacute;.</para>
      </listitem>

      <listitem>
	<para>Las opciones que puede manejar con los componentes del mecanismo
	  de arranque de FreeBSD, para controlar el proceso de inicio
	  del sistema.</para>
      </listitem>
    </itemizedlist>

    <note>
      <title>S&oacute; x86</title>

      <para>El presente cap&iacute;tulo describe &uacute;nicamente el
        proceso de inicio, para sistemas FreeBSD que corren en plataformas
        Intel x86.</para>
    </note>
  </sect1>

  <sect1 id="boot-introduction">
    <title>El Problema que representa Arrancar el Sistema</title>

    <para>El encender una computadora e iniciar el sistema operativo, trae
      consigo un dilema interesante.  Por definici&oacute;n, la computadora 
      no sabe hacer nada, hasta que el sistema operativo ha sido cargado.  Esto
      incluye la ejecuci&oacute;n de programas desde el disco duro.  As&iacute;
      que este es el dilema; si la computadora no sabe hacer nada hasta que se
      cargue el sistema operativo, y el sistema operativo es un conjunto de
      programas que residen en el disco duro, &iquest;C&oacute;mo es que
      arranca el sistema operativo?</para>

    <para>Este problema se asemeja a un problema del libro <citetitle>Las
      Aventuras del Bar&oacute;n Munchausen</citetitle>.  Donde un personaje ha
      caido parcialmente en un hoyo, y ha podido salir al tomarse de las cintas
      de sus botas y jalarse hacia fuera.  En los a&ntilde;os mozos de la
      computaci&oacute;n, el t&eacute;rmino utilizado para hablar sobre el
      proceso de carga del sistema operativo era <firstterm>mecanismo de
      arranque</firstterm> (bootstrap), que por efectos de simplificaci&oacute;n
      ahora conocemos como <quote>arranque</quote> (booting).</para>

    <para>En equipos con arquitectura x86, el Sistema B&aacute;sico de 
      Entrada/Salida (BIOS) es el responsable de cargar el sistema
      operativo.  Para hacer esto, el BIOS busca en el disco duro el Registro
      Maestro de Arranque (RMA) (N de T. Conocido como MBR&mdash;Master Boot 
      Record), el cual debe localizarse en un lugar espec&iacute;fico del disco.
      El BIOS cuenta con suficiente informaci&oacute;n, para cargar y ejecutar
      el RMA, y asumir que el RMA puede encargarse del resto de las tareas
      necesarias en la carga del sistema operativo.</para>

    <indexterm>
      <primary>BIOS</primary>
      <secondary>Sistema B&aacute;sico de Entrada/Salida</secondary>
    </indexterm>

    <para>Si usted s&oacute;lo cuenta con un sistema operativo instalado en
      su disco duro, el RMA est&aacute;ndar ser&aacute; suficiente.  Este RMA
      buscar&aacute; la primer partici&oacute;n del disco que pueda arrancar, y
      posteriormente ejecutar&aacute; el c&oacute;digo restante de dicha 
      partici&oacute;n, para efecto de completar la carga del sistema
      operativo.</para>

    <para>Si usted cuenta con varios sistemas operativos instalados en su
      disco, entonces puede hacer uso de un RMA diferente, uno que despliegue
      una lista de los diferentes sistemas operativos, y le permita escoger
      cual de ellos desea que se cargue.  FreeBSD cuenta con un RMA de este
      tipo que puede ser instalado, as&iacute; como otros distribuidores de
      sistemas operativos cuentan con RMAs alternativos.</para>

    <para>En el caso de FreeBSD, el resto del mecanismo de arranque, est&aacute;
      dividido en tres etapas.  La primer etapa es ejecutada por al RMA, que
      sabe lo suficiente como para poner a la computadora en un estado
      espec&iacute;fico y ejecutar la segunda etapa.  La segunda etapa puede
      hacer un poco m&aacute;s que esto, antes de ejecutar la tercer etapa.  La
      tercer etapa finaliza el trabajo de carga del sistema operativo.  El 
      trabajo es dividido en tres etapas, debido a las limitantes que tiene
      una PC, en cuanto al tama&ntilde;o de los programas a ejecutar, durante
      las etapas uno y dos.  El encadenar estas tareas, le permiten a FreeBSD
      contar con un arrancador m&aacute;s flexible.</para>

    <indexterm><primary>kernel</primary></indexterm>
    <indexterm><primary><command>init</command></primary></indexterm>

    <para>Posteriormente el kernel es inicializado y comienza con la
      comprobaci&oacute;n de dispositivos, y prepararlos para su uso.  Una
      vez que el proceso de arranque del kernel ha finalizado, el kernel
      transfiere el control al proceso de usuario &man.init.8;, quien se
      asegura de que los discos se encuentren en buen estado para su
      uso.  Posteriormente &man.init.8; inicia la configuraci&oacute;n
      fuente a nivel de usuario, que monta los sistemas de ficheros,
      configura las tarjetas de red para que pueden comunicarse en la red,
      y comunmente inicia todos los procesos que normalmente son ejecutados
      en un sistema FreeBSD al arrancar el mismo.</para>
  </sect1>

  <sect1 id="boot-blocks">
    <title>El RMA, y las Etapas de Arranque Uno, Dos y Tres</title>

    <sect2 id="boot-boot0">
      <title>RMA, <filename>/boot/boot0</filename></title>
      <indexterm><primary>Registro Maestro de Arranque (RMA)</primary></indexterm>

      <para>El RMA de FreeBSD, se localiza en <filename>/boot/boot0</filename>.  
        Este es una <emphasis>copia</emphasis> del RMA, ya que el RMA real
        debe localizarse en una parte especial del disco duro, fuera de la
        &aacute;rea de FreeBSD.</para>

      <para>El fichero <filename>boot0</filename> es muy simple, dado que el
        programa en el <abbrev>RMA</abbrev> s&oacute;lo puede ser de 512 bytes.  
        Si usted ha instalado el RMA de FreeBSD y ha instalado varios sistemas
        operativos en sus discos duros, entonces al momento de arrancar el
        sistema, visualizar&aacute; una pantalla similar a la siguiente.</para>

      <example id="boot-boot0-example">
	<title>Pantalla <filename>boot0</filename></title>

	<screen>F1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1

Default: F2</screen>
      </example>

      <para>Es sabido que otros sistemas, en particular Windows 95, sobreescriben
        el RMA con el suyo.  Si esto le sucede, o bien desea reemplazar su RMA
        actual con el RMA de FreeBSD, entonces puede utilizar los siguientes 
        comandos.</para>

      <screen>&prompt.root; <userinput>fdisk -B -b /boot/boot0 <replaceable>dispositivo</replaceable></userinput></screen>

     <para>Donde <replaceable>dispositivo</replaceable> es aquel, desde el
        cual usted pretende arrancar el sistema, tal como 
        <devicename>ad0</devicename> para el disco conectado al primer IDE, 
        <devicename>ad2</devicename> para el disco maestro conectado al IDE
        secundario, <devicename>da0</devicename> para el primer disco SCSI, y
        as&iacute; sucesivamente.</para> 

     <para>Por otro lado, si usted es un usuario de Linux, y prefiere que
        la aplicaci&oacute;n <application>LILO</application> controle el
        proceso de arranque, puede editar el fichero 
        <filename>/etc/lilo.conf</filename> para incluir a FreeBSD, o bien
        seleccionar la opci&oacute;n 
        <option>Leave The Master Boot Record Untouched</option> durante
        el proceso de instalaci&oacute;n.  Si ha instalado el gestor de 
        arranque de FreeBSD, puede arrancar Linux y modificar el fichero
        de configuraci&oacute;n de <application>LILO</application>,
        <filename>/etc/lilo.conf</filename>, a&ntilde;adiendo la
        siguiente opci&oacute;n:</para>

      <programlisting>other=/dev/hdXY
table=/dev/hdb
loader=/boot/chain.b
label=FreeBSD</programlisting>

      <para>lo que permitir&aacute; el arranque de FreeBSD y Linux, por
        medio de <application>LILO</application>.  En nuestro ejemplo
        hemos utilizado <replaceable>XY</replaceable> para especificar
        el disco utilizado y su partici&oacute;n.  Si usted utiliza un
        sistema <acronym>SCSI</acronym>, deber&aacute; cambiar
        <replaceable>/dev/hdXY</replaceable> por algo similar a
        <replaceable>/dev/sdXY</replaceable>, que nuevamente utiliza
        la sint&aacute;xis <replaceable>XY</replaceable>.  La opci&oacute;n
        <option>loader=/boot/chain.b</option> puede omitirse si usted
        cuenta con ambos sistemas operativos en el mismo disco.  Una vez
        que esto se ha completado, puede ejecutar 
        <command>/sbin/lilo -v</command> para que se actualicen los cambios
        en el sistema, lo cual deber&aacute; verificarse con los
        mensajes que aparezcan en pantalla.</para>

      <note>
        <para>N de T: La opci&oacute;n mencionada como;
	    <option>Leave The Master Boot Record Untouched</option>, se
	    mostrar&aacute; <quote>tal cual</quote> aparece en este 
	    documento, una vez que ha terminado la fase de 
	    partici&oacute;n del disco duro.</para>
      </note>
    </sect2>
  
    <sect2 id="boot-boot1">
      <title>Etapa Uno, <filename>/boot/boot1</filename>, y Etapa Dos,
	<filename>/boot/boot2</filename></title>
      
      <para>Conceptualmente las estapas uno y dos, son parte del mismo
        programa, en la misma &aacute;rea del disco.  Por cuestiones de
        espacio se han dividido en dos, pero estas siempre se instalaran
        de manera conjunta.</para>

      <para>Estas son localizadas en el sector de arranque, de la
        partici&oacute;n de arranque, que es donde <link
        linkend="boot-boot0">boot0</link>, o cualquier otro programa
        del <abbrev>RMA</abbrev> espera encontrar el programa que
        dar&aacute; continuaci&oacute;n al proceso de arranque.  Los
        ficheros localizados bajo el directorio <filename>/boot</filename>
        son copias de los ficheros reales, que se localizan fuera del
        sistema de ficheros de FreeBSD.</para>

      <para>El fichero <filename>boot1</filename> es muy simple, en virtud
        de que s&oacute;lo puede tener un tama&ntilde;o de 512 bytes, y 
        conocer simplemente del etiquetador de discos de FreeBSD
        (<firstterm>disklabel</firstterm>), el cual almacena la
        informaci&oacute;n de las particiones, para efecto de localizar
        y ejecutar <filename>boot2</filename>.</para>
      
      <para>El fichero <filename>boot2</filename> es un poco m&aacute;s
        sofisticado, y comprende lo suficiente del sistema de ficheros de
        FreeBSD como para localizar ficheros en el, y puede proveer una
        interfaz simple, para seleccionar el kernel o cargador que
        deber&aacute; ejecutarse.</para>

      <para>En virtud de que el <link linkend="boot-loader">cargador</link>
        (loader) es mucho m&aacute;s sofisticado, y provee una 
        configuraci&oacute;n de arranque m&aacute;s sencilla de utilizar, 
        <filename>boot2</filename> la ejecuta normalmente, una vez que ha
        terminado de solicitar el arranque del kernel directamente.</para>

      <example id="boot-boot2-example">
	<title>Pantalla de <filename>boot2</filename></title>

	<screen>&gt;&gt; FreeBSD/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:</screen>
      </example>

      <para>Si alguna vez requiere reemplazar los ficheros
	    <filename>boot1</filename> y <filename>boot2</filename>
	    instalados, utilice &man.disklabel.8;.</para>
      
      <screen>&prompt.root; <userinput>disklabel -B <replaceable>partici&oacute;n</replaceable></userinput></screen>

      <para>Donde <replaceable>partici&oacute;n</replaceable> es el disco
        y partici&oacute;n del cual pretende arrancar el sistema, tal como
        <devicename>ad0s1</devicename> para la primer partici&oacute;n del
        disco Mastro&mdash;Primario.</para>

      <warning>
	<title>Modo Peligrosamente Dedicado</title>

	<para>Si s&oacute;lo utiliza el nombre del disco, tal como
	  <devicename>ad0</devicename>, al usar el comando &man.disklabel.8; 
	  crear&aacute; un disco peligrosamente dedicado, sin partici&oacute;n
	  alguna.  Seguramente esto no es lo que desea hacer, as&iacute; que
	  asegurese dos veces antes de presionar la tecla <keycap>Return</keycap>
	  cuando utilice &man.disklabel.8;.</para>
      </warning>
    </sect2>

  <sect2 id="boot-loader">
    <title>Etapa Tres, <filename>/boot/loader</filename> (cargador de arranque)</title>

    <indexterm><primary>cargador-de-arranque (boot-loader)</primary></indexterm>
    <para>El cargador es la etapa final de las tres etapas del mecanismo
      de arranque, y esta localizado en el sistema de ficheros, normalmente
      como <filename>/boot/loader</filename>.</para>
      
    <para>El cargador pretende ser un metodo amistoso de
      configuraci&oacute;n, utilizando una serie de comandos integrados
      de f&aacute;cil uso, respaldado por un int&eacute;rprete m&aacute;s
      poderoso, con una serie de comandos de mayor complejidad.</para>

    <sect3 id="boot-loader-flow">
      <title>Flujo del Programa Cargador</title>
      
      <para>Durante la inicializaci&oacute;n del sistema, el cargador
        har&aacute; una comprobaci&oacute;n en busca de una
        consola y discos, y sabra de que disco se encuentra
        arrancando.  Establecer&aacute; las variables necesarias, y
        posteriormente es iniciado el int&eacute;rprete donde se
        pueden ingresar comandos desde un fichero script o de manera
        interactiva.</para>

      <indexterm><primary>cargador</primary></indexterm>
      <indexterm><primary>configuraci&oacute;n del cargador</primary></indexterm>

      <para>Posteriormente el cargador leer&aacute; el fichero
        <filename>/boot/loader.rc</filename>, que por default lee
        la informaci&oacute;n del fichero
        <filename>/boot/defaults/loader.conf</filename> que a su
        vez, establece las variables correspondientes y verifica en
        el fichero <filename>/boot/loader.conf</filename> los cambios
        locales que se hayan hecho, para establecer valores de las
        variables modificadas.  Una vez llevado a cabo esto,
        <filename>loader.rc</filename> actua sobre estas variables, 
        cargando cualquier m&oacute;dulo y kernel seleccionado.</para>

      <para>Finalmente, y por default, el cargador hace una pausa contando
        10 segundos y en espera de que al presionar una tecla se
        interrumpa el proceso, de no ser as&iacute;, proceder&aacute; a
        arrancar el kernel.  En el caso de que al hacer esta pausa, se haya
        presionado una tecla (diferente de <keycap>Return</keycap>), el
        proceso ser&aacute; interrumpido y se nos mostrar&aacute; un 
        interprete de comandos (prompt), que entiende el conjunto de
        comandos de f&aacute;cil-uso, y donde el usuario puede ajustar
        ciertas variables, cargar y descargar todos los modulos, y finalmente
        arrancar o reiniciar el sistema.</para>
    </sect3>
    
    <sect3 id="boot-loader-commands">
      <title>Comandos Internos del Cargador</title>
      
      <para>A continuaci&oacute;n se presentan los comandos m&aacute;s
        comunes del cargador.  Para ver una descripci&oacute;n detallada
        de los mismos, por favor consulte la p&aacute;gina de ayuda
        &man.loader.8;</para>

      <variablelist>
	<varlistentry>
	  <term>autoboot <replaceable>segundos</replaceable></term>

	  <listitem>
	    <para>Procede a iniciar el arranque del sistema, si es que
	      no es interrumpido el periodo dado, en segundos.  Despliega
	      una cuenta regresiva, y el tiempo dado es de 10 segundos.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>boot
	    <optional><replaceable>-opciones</replaceable></optional>
	    <optional><replaceable>nombre_del_kernel</replaceable></optional></term>

	  <listitem>
	    <para>Procede a iniciar el kernel de manera inmediata, con
	      las opciones dadas, si es que fuera el caso y el kernel
	      especificado, si es que se especifica alguno.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>boot-conf</term>

	  <listitem>
	    <para>Rehace la configuraci&oacute;n autom&aacute;tica de
	      modulos en funci&oacute;n a las variables definidas, como 
	      sucede al arrancar.  Esta opci&oacute;n s&oacute;lo tiene
	      sentido utilizarla, si en primer lugar hemos usado el
	      comando <command>unload</command>, y hemos modificado alguna
	      variable, siendo lo m&aacute;s com&uacute;n el
	      <envar>kernel</envar>.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>help
	    <optional><replaceable>tema</replaceable></optional></term>

	  <listitem>
	    <para>Muestra la ayuda de un tema espec&iacute;fico, que lee
	      del fichero <filename>/boot/loader.help</filename>.  Si el
	      tema que se indica es <literal>index</literal>, entonces se
	      mostrar&aacute; una lista de todos los temas disponibles.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>include <replaceable>fichero</replaceable>
	    &hellip;</term>

	  <listitem>
	    <para>Procesa el fichero que se ha especificado.   
	      El fichero es 
	      leido e interpretado l&iacute;nea por l&iacute;nea.  Cualquier
	      error detendr&aacute; inmediatamente al comando include.</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term>load <optional><option>-t</option>
	    <replaceable>tipo</replaceable></optional>
	    <replaceable>fichero</replaceable></term>

	  <listitem>
	    <para>Carga el kernel, modulo del kernel, o el fichero
	      del tipo dado, en base al fichero especificado.  Cualquier
	      argumento que se a&ntilde;ada, ser&aacute; pasado al 
	      fichero.</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term>ls <optional><option>-l</option></optional>
	    <optional><replaceable>ruta</replaceable></optional></term>

	  <listitem>
	    <para>Despliega un listado de todos los ficheros que se
	      localizan en la ruta especificada, o en el directorio
	      ra&iacute;z, si es que no se le especifica ruta alguna.  Si
	      se utiliza la opci&oacute;n <option>-l</option>, tambi&eacute;n
	      se mostrara el tama&ntilde;o de los ficheros.</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term>lsdev <optional><option>-v</option></optional></term>

	  <listitem>
	    <para>Nos muestra una lista de todos los dispositivos desde
	      los cuales puede ser posible cargar modulos.  Si se
	      incluye la opci&oacute;n <option>-v</option>, el listado
	      que se obtiene cuenta con m&aacute;s detalle.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>lsmod <optional><option>-v</option></optional></term>

	  <listitem>
	    <para>Despliega los m&oacute;dulos cargados. Si se utiliza la
	      opci&oacute;n <option>-v</option>, se mostraran m&aacute;s
	      detalles.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>more <replaceable>fichero</replaceable></term>

	  <listitem>
	    <para>Despliega el contenido del fichero especificado, haciendo
	      una pausa a cada numero determinado de <varname>LINEAS</varname>
	      mostradas.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>reboot</term>

	  <listitem>
	    <para>Reinicia el sistema de forma inmediata.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>set <replaceable>variable</replaceable></term>
	  <term>set
	    <replaceable>variable</replaceable>=<replaceable>valor</replaceable></term>

	  <listitem>
	    <para>Especifica los valores de las variables de entorno del
	      cargador.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>unload</term>

	  <listitem>
	    <para>Remueve todos los m&oacute;dulos cargados.</para>
	  </listitem>
	</varlistentry>
      </variablelist>
    </sect3>

    <sect3 id="boot-loader-examples">
      <title>Ejemplos de Uso del Cargador</title>

      <para>He aqui unos ejemplos pr&aacute;cticos sobre el uso
        correcto del cargador.</para>

      <itemizedlist>
	<indexterm><primary>modo de arranque mono-usuario</primary></indexterm>
	<listitem>
	  <para>Para arrancar simplemente su kernel usual, pero en modo 
	    mono-usuario, deber&aacute; hacer lo siguiente:</para>

	  <screen><userinput>boot -s</userinput></screen>
	</listitem>

	<listitem>
	  <para>Para descargar su kernel usual y sus m&oacute;dulos 
	    correspondientes, y posteriormente cargar su kernel anterior
	    (o cualquier otro):</para>
    <indexterm>
      <primary><filename>kernel.old</filename></primary>
    </indexterm>

	  <screen><userinput>unload</userinput>
<userinput>load <replaceable>kernel.old</replaceable></userinput></screen>

	  <para>Puede utilizar <filename>kernel.GENERIC</filename> para
	    referirse al kernel generico actual que viene con la
	    instalaci&oacute;n, o bien puede utilizar 
	    <filename>kernel.old</filename> para hacer referencia al 
	    kernel anterior (por ejemplo, cuando ha actualizado su
	    sistema o ha recompilado su propio kernel).</para>

	  <note>
	    <para>Utilice lo siguiente para cargar sus m&oacute;dulos
	      actuales con otro kernel:</para>

	    <screen><userinput>unload</userinput>
<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput>
<userinput>boot-conf</userinput></screen></note>
	</listitem>

	<listitem>
	  <para>Para cargar un escrito de configuraci&oacute;n (script que
	    de forma autom&aacute;tica har&aacute; todo lo que normalmente
	    hace usted de forma manual al momento de ejecutarse el
	    configurador de arranque):</para>

	  <screen><userinput>load -t escrito_de_configuraci&oacute;n <replaceable>/boot/kernel.conf</replaceable></userinput></screen>
	</listitem>
      </itemizedlist>
  </sect3>
    </sect2>
  </sect1>

  <sect1 id="boot-kernel">
    <title>Interacci&oacute;n con el Kernel Durante el Arranque</title>
    <indexterm>
      <primary>kernel</primary>
      <secondary>interacci&oacute;n de arranque</secondary>
    </indexterm>
    
    <para>Una vez que el kernel ha sido iniciado, ya sea por
      el <link linkend="boot-loader">cargador</link> (que es lo
      com&uacute;n) o bien por <link
      linkend="boot-boot1">boot2</link> (sobrepasando el cargador), 
      examinar&aacute; las opciones de arranque, en busca de cambios, 
      y ajustar su comportamiento en caso de ser necesario.</para>

    <sect2 id="boot-kernel-bootflags">
      <indexterm>
        <primary>kernel</primary>
        <secondary>opciones de arranque</secondary>
      </indexterm>
      <title>Opciones de Arranque del Kernel</title>

      <para>He aqui las opciones de arranque m&aacute;s comunes:</para>

      <variablelist id="boot-kernel-bootflags-list">
	<varlistentry>
	  <term><option>-a</option></term>

	  <listitem>
	    <para>durante la inicializaci&oacute;n del kernel, pregunta por 
	      los dispositivos a utilizar, para montar el sistema de ficheros
	      ra&iacute;z.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-C</option></term>

	  <listitem>
	    <para>arranque desde una unidad de CDROM.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-c</option></term>

	  <listitem>
	    <para>ejecuta UserConfig, la utilidad de configuraci&oacute;n
	      de arranque del kernel.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-s</option></term>

	  <listitem>
	    <para>arranca el sistem en modo mono-usuario.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-v</option></term>

	  <listitem>
	    <para>imprime mensajes informativos durante el arranque del kernel</para>
	  </listitem>
	</varlistentry>
      </variablelist>

      <note>
	    <para>Existen otras opciones de arranque, por favor vea la p&aacute;gina 
	      de ayuda &man.boot.8; para m&aacute;s informaci&oacute;n al respecto.
	    </para>
	  </note>
    </sect2>

<!--    <sect2 id="boot-kernel-userconfig">
      <title>UserConfig: The boot-time kernel configurator</title>
      
      <para> </para>
    </sect2> -->
  </sect1>

  <sect1 id="device-hints">
    <sect1info>
      <authorgroup>
        <author>
          <firstname>Tom</firstname>
          <surname>Rhodes</surname>
          <contrib>Escrito por </contrib>
        </author>
      </authorgroup>
      <!-- 18 OCT 2002 -->
    </sect1info>
    <indexterm>
      <primary>device.hints</primary>
    </indexterm>
    <title>Device Hints</title>

    <para>Pendiente de Traducci&oacute;n</para>

  </sect1>

  <sect1 id="boot-init">
    <indexterm>
      <primary><command>init</command></primary>
    </indexterm>
    <title>Init: Inicializaci&oacute;n del Proceso de Control</title>
	
    <para>Ya que el kernel ha finalizado de arrancar, pasar&aacute; el
      control a un proceso de usuario llamado <command>init</command>, 
      el cual se localiza en <filename>/sbin/init</filename>, o bien
      en la ruta especificada por la variable de entorno
      <envar>init_path</envar> del cargador.</para>

    <sect2 id="boot-autoreboot">
      <title>Secuencia Autom&aacute;tica de Reinicio</title>
      
      <para>La secuencia autom&aacute;tica de reinicio se asegura
        de que los sistemas de ficheros disponibles en el sistema
        sean consistentes.  Si no lo son, y el programa
        <command>fsck</command> no puede arreglar estas
        inconsistencias, <command>init</command> envia el sistema
        a modo <link linkend="boot-singleuser">monousuario</link>, de
        tal forma que el administrador pueda ingresar en &eacute;l y
        arreglar los problemas directamente.</para>
    </sect2>

    <sect2 id="boot-singleuser">
      <title>Modo Mono-Usuario</title>
      <indexterm><primary>modo mono-usuario</primary></indexterm>
      <indexterm><primary>consola</primary></indexterm>
      
      <para>A este modo se puede llegar por medio de la <link
        linkend="boot-autoreboot">secuencia autom&aacute;tica de reinicio</link>,
        o por medio de la opci&oacute;n <option>-s</option> en el
        arranque de usuario o al establecer la variable
        <envar>boot_single</envar> en el cargador.</para>

      <para>Tambi&eacute;n desde el modo <link 
        linkend="boot-multiuser">multi-usuario</link> se puede acceder,
        al utilizar el comando <command>shutdown</command> sin la
        opci&oacute;n de reinicio (<option>-r</option>) o la de
        apagado (<option>-h</option>) del sistema.</para>

      <para>Si la consola del sistema esta configurada de modo
        <literal>inseguro</literal> en el fichero
        <filename>/etc/ttys</filename>, entonces el sistema
        solicitar&aacute; la contrase&ntilde;a del
        <username>superusuario</username> (root), antes de ingresar
        al sistema en modo mono-usuario.</para>

      <example id="boot-insecure-console">
	<title>Una Consola Insegura en /etc/ttys</title>

	<programlisting># name  getty                           type    status          comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none                            unknown off insecure</programlisting>
      </example>

      <note>
	  <para>Una consola <literal>insegura</literal> significa que usted
	    considera como insegura f&iacute;sicamente su consola, por lo
	    que desea asegurarse de que s&oacute;lo quien conoce la
	    contrase&ntilde;a del <username>superusuario</username> puede
	    ingresar al sistema en modo mono-usuario, y no que desea ejecutar
	    la consola inseguramente.  Esto es, si desea contar con seguridad
	    escoja la opci&oacute;n <literal>insecure</literal>, y no
	  <literal>secure</literal>.</para>
      </note>
    </sect2>
    
    <sect2 id="boot-multiuser">
      <title>Modo Multi-Usuario</title>
      <indexterm><primary>modo multi-usuario</primary></indexterm>
      
      <para>En el caso de que <command>init</command> encuentre en
        buen estado al sistema de ficheros, o una vez que el usuario
        ha terminado del modo <link 
        linkend="boot-singleuser">mono-usuario</link>, el sistema
        entrar&aacute; al modo multi-usuario, en donde comienzan
        los ficheros de configuraci&oacute;n-fuente del sistema.</para>

      <sect3 id="boot-rc">
      <indexterm><primary>ficheros rc</primary></indexterm>
	<title>Configuraci&oacute;n-Fuente(rc)</title>

	<para>La configuraci&oacute;n fuente lee la configuraci&oacute;n
	  por default del fichero
	  <filename>/etc/defaults/rc.conf</filename>, y detalles
	  espec&iacute;ficos del sistema desde el fichero
	  <filename>/etc/rc.conf</filename>, y posteriormente procede 
	  a montar los sistemas de ficheros del sistema, descritos en
	  <filename>/etc/fstab</filename>, iniciar servicios de red, 
	  as&iacute; como varios demonios del sistema, para finalmente
	  ejecutar los escritos (scripts) de configuraci&oacute;n 
	  instalados por paquetes, localmente.</para>

	<para>La p&aacute;gina de ayuda &man.rc.8; es una buena referencia
	  para conocer m&aacute;s de este tipo de ficheros, as&iacute; como
	  examinar los mismos ficheros.</para>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="boot-shutdown">
    <title>Secuencia de Apagado</title>
    <indexterm>
      <primary><command>apagado</command></primary>
    </indexterm>

    <para>Una vez que el apagado sea controlado, por medio del
      comando <command>shutdown</command>, <command>init</command>
      ejecutar&aacute; el escrito <filename>/etc/rc.shutdown</filename>, 
      para posteriormente enviar a todos los procesos la se&ntilde;al
      <literal>TERM</literal>, y subsecuentemente la se&ntilde;al
      <literal>KILL</literal> a cualquiera que no haya terminado en
      tiempo.</para>
  </sect1>
</chapter>

<!-- 
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->

