Add first version of the boot chapter.

This commit is contained in:
Jesus Rodriguez Cuesta 2002-10-14 19:54:50 +00:00
parent c9a0e8232b
commit c6c62ff295
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=14641

View file

@ -0,0 +1,754 @@
<!--
The FreeBSD Documentation Project
$FreeBSD$
-->
<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="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:
-->