Provided by: manpages-es_1.55-10_all bug

NOMBRE

       initrd - disco-RAM inicializado por el gestor de arranque

DESCRIPCI'ON

       El  fichero  especial  /dev/initrd es un dispositivo de bloques de solo
       lectura.   El  dispositivo  /dev/initrd  es  un  disco   RAM   que   es
       inicializado  (es  decir,  cargado)  por el gestor de arranque antes de
       cargar e iniciar el nucleo del sistema.  Asi, el nucleo puede  utilizar
       el  contenido  del dispositivo /dev/initrd para un arranque del sistema
       en dos fases.

       En la primera fase del arranque, el nucleo pone en marcha  y  monta  un
       sistema  de ficheros raiz inicial a partir del contenido de /dev/initrd
       (o sea, el disco-RAM inicializado por el gestor de  arranque).   En  la
       segunda fase, se cargan controladores adicionales u otros modulos desde
       el contenido del dispositivo raiz inicial.   Tras  cargar  los  modulos
       adicionales,  se  monta un nuevo sistema de ficheros raiz (es decir, el
       sistema de ficheros raiz habitual) desde un dispositivo diferente.

FUNCIONAMIENTO DEL ARRANQUE

       Cuando se arranca el sistema con initrd, ocurre lo siguiente:

         1. El gestor de  arranque  ('boot  loader')  carga  el  nucleo  y  el
         contenido de /dev/initrd en memoria.

         2.  En  la  puesta  en marcha del nucleo, este descomprime y copia el
         contenido del disp.  /dev/initrd en  el  dispositivo  /dev/ram0  y  a
         continuacion libera la memoria utilizada por /dev/initrd.

         3.  Seguidamente,  el  nucleo  monta el dispositivo /dev/ram0 en modo
         lectura/escritura como el sistema de ficheros raiz inicial.

         4. Si el sistema de ficheros raiz habitual indicado coincide  con  el
         sistema  de  ficheros raiz inicial (por ejemplo, /dev/ram0 ) entonces
         el nucleo salta directamente al ultimo  paso  para  la  secuencia  de
         arranque habitual.

         5.  Si  el fichero ejecutable /linuxrc esta presente en el sistema de
         ficheros raiz inicial, se ejecuta con uid (identificador de  usuario)
         0.  (El fichero /linuxrc debe tener permiso de ejecucion.  El fichero
         /linuxrc  puede  ser  cualquier  ejecutable  valido,  incluyendo  los
         guiones de cualquier procesador de ordenes -'shell scripts'.)

         6.  Si  no se ejecuta /linuxrc o cuando /linuxrc termina, se monta el
         sistema de ficheros raiz habitual.  (Si /linuxrc  termina  con  algun
         sistema   de  ficheros  montado  en  el  raiz  inicial,  entonces  el
         comportamiento  del  nucleo  es  INDETERMINADO.   (Vea   la   seccion
         OBSERVACIONES para consultar el comportamiento actual del nucleo.)

         7.  Si  el  sistema  de  ficheros  'habitual'  contiene el directorio
         /initrd, el dispositivo /dev/ram0 se mueve desde  /  a  /initrd.   En
         otro  caso,  si  el  directorio  /initrd  no  existe,  el dispositivo
         /dev/ram0  se  desmonta.   (Cuando  es  movido  desde  /  a  /initrd,
         /dev/ram0  no se desmonta, y por tanto los procesos pueden permanecer
         funcionando desde /dev/ram0.  Si el directorio /initrd no  existe  en
         el  sistema  de  ficheros  raiz  habitual  y  queda  algun proceso en
         funcionamiento  sobre   /dev/ram0   cuando   /linuxrc   termina,   el
         comportamiento  del  nucleo  es  INDETERMINADO.   Vea  la  seccion de
         OBSERVACIONES para consultar el comportamiento actual del nucleo.)

         8.  La  secuencia  de  arranque/inicio  habitual  (por  ejemplo,   la
         ejecucion  de  /sbin/init)  se  realiza  en  el  sistema  de ficheros
         habitual.

OPCIONES

       Las siguientes opciones del gestor de arranque, cuando se utilizan  con
       initrd, alteran el proceso de puesta en marcha del nucleo:

       initrd=nombre_de_fichero
              Especifica el fichero a cargar como el contenido de /dev/initrd.
              Para LOADLIN esta es una opcion de linea de ordenes.  Para  LILO
              tiene  que utilizar este orden en el fichero de configuracion de
              LILO, /etc/lilo.config.  El nombre de fichero indicado con  esta
              opcion  sera  normalmente  una  imagen  del  sistema de ficheros
              comprimida con GZip.

       noinitrd
              Esta opcion de arranque deshabilita la operacion de arranque  en
              dos  fases.  El nucleo realiza la secuencia de arranque habitual
              como si /dev/initrd no  hubiera  sido  inicializado.   Con  esta
              opcion, cualquier contenido de /dev/initrd cargado en la memoria
              por el 'boot loader' es preservado.   Esta  opcion  permite  que
              /dev/initrd contenga cualquier clase de datos y no este limitado
              a una  imagen  de  sist.  de  ficheros.   De  todas  formas,  el
              dispositivo  /dev/initrd  es  de  solo-lectura y puede ser leido
              solo una vez tras la puesta en marcha del sistema.

       root=nombre-de-dispositivo
              Especifica el dispositivo que sera  utilizado  como  sistema  de
              ficheros  normal  (raiz).   Para  LOADLIN  esta es una opcion de
              linea de ordenes.  Para LILO esta es una opcion para el  momento
              de  arranque  o  puede  utilizarse  como  linea  de opcion en el
              fichero  de  configuracion  de   LILO,   /etc/lilo.config.    El
              dispositivo  indicado  por  la  opcion  debe  ser un dispositivo
              'montable', y contener un sistema de ficheros raiz adecuado.

CAMBIAR EL SISTEMA DE FICHEROS RA'IZ HABITUAL

       Por defecto, las opciones establecidas del nucleo (p. ej.  establecidas
       en  el fichero del nucleo mediante rdev o compiladas dentro del mismo),
       o el establecimiento de opciones del 'boot loader' se utiliza para  los
       sistemas  de  ficheros normales.  Para un sistema de fich. raiz montado
       como NFS, debemos utilizar las opciones  de  arranque  nfs_root_name  y
       nfs_root_addrs  para proporcionar/establecer las opciones de NFS.  Para
       mas informacion sobre sistemas raiz montados como NFS, vea  el  fichero
       de documentacion del nucleo nfsroot.txt.  Para mas informacion sobre el
       establecimiento del sistema de ficheros raiz, vea tambien  la  doc.  de
       LILO y LOADLIN.

       Tambien   es   posible  para  el  ejecutable  de  /linuxrc  cambiar  el
       dispositivo  raiz  por  defecto.   Para  que   /linuxrc   cambie   este
       dispositivo,  /proc  debe  ser  montado.   Tras  montar /proc, /linuxrc
       cambia  el  disp.   raiz   habitual   escribiendo   en   los   ficheros
       /proc/sys/kernel/real-root-dev,    /proc/sys/kernel/nfs-root-name,    y
       /proc/sys/kernel/nfs-root-addrs.  Para un dispositivo raiz fisico, este
       se  cambia  haciendo que /linuxrc escriba el nuevo numero de sistema de
       ficheros en /proc/sys/kernel/real-root-dev.  Para un sistema raiz  NFS,
       el  disp. raiz se cambia haciendo que /linuxrc escriba la opcion de NFS
       en los ficheros /proc/sys/kernel/nfs-root-name y  /proc/sys/kernel/nfs-
       root-addrs   y  despues  escriba  0xff  (p.ej.  el  numero  de  pseudo-
       dispositivo-NFS) en  el  fichero  /proc/sys/kernel/real-root-dev.   Por
       ejemplo,  la  siguiente  linea  de ordenes del shell cambiaria el disp.
       raiz a /dev/hdb1:
               echo 0x365 >/proc/sys/kernel/real-root-dev
       Como ejemplo para  sistemas  NFS,  las  siguientes  lineas  de  ordenes
       cambiarian  el  dispositivo  raiz  al directorio NFS /var/nfsroot en un
       servidor NFS local con direccion IP 193.8.232.7  para  un  sistema  con
       direccion 193.8.232.7 llamado 'idefix':
            echo /var/nfsroot >/proc/sys/kernel/nfs-root-name
            echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \
              >/proc/sys/kernel/nfs-root-addrs
            echo 255 >/proc/sys/kernel/real-root-dev

UTILIZACI'ON

       La  principal motivacion para implementar initrd fue la de permitir una
       configuracion modular del nucleo en el momento de la instalacion.

       Aqui se describe un posible escenario de la instalacion del sistema:

         1. El programa cargador arranca desde disquete u otro  medio  con  un
         nucleo  minimo  (p.ej.  con  soporte para /dev/ram, /dev/initrd, y el
         sistema de  ficheros  ext2)  y  carga  /dev/initrd  con  una  version
         comprimida (con gzip) del sistema de ficheros inicial.

         2.  El  ejecutable /linuxrc determina lo que se necesita para montar,
         mount(1),  el  sistema  de  ficheros  raiz  normal  (p.ej.  tipo   de
         dispositivo, controladores, sistema de ficheros) y (2) el formato 'de
         distribucion' (p.ej. CD-ROM, red, cinta, ...). Esto  se  puede  hacer
         preguntando   al   usuario,   tanteando/probando  automaticamente,  o
         mediante una aproximacion mixta.

         3. El ejecutable /linuxrc  carga  los  modulos  necesarios  desde  el
         sistema de ficheros inicial.

         4.  El  ejecutable  /linuxrc  crea y 'expande' el sistema de ficheros
         raiz. (En esta etapa, el sistema raiz no tiene por  que  ser  aun  un
         sistema completo.)

         5.  El  ejecutable /linuxrc establece /proc/sys/kernel/real-root-dev,
         desmonta /proc, el sistema de ficheros raiz y cualquier otro sist. de
         ficheros que hubiese montado, y entonces termina.

         6. El nucleo entonces monta el sistema de ficheros definitivo.

         7. Ahora que el sist. de ficheros esta accesible e intacto, el gestor
         de arranque puede ser instalado.

         8.  El  gestor  de  arranque  esta  configurado  para   cargarse   en
         /dev/initrd,  un  sistema  de ficheros con el conjunto de modulos que
         fue utilizado para poner en marcha el sistema.  (p.ej. El dispositivo
         /dev/ram0  puede ser modificado, despues desmontado, y finalmente, la
         imagen es escrita desde /dev/ram0 a un fichero.)

         9. El sistema es ahora capaz de arrancar, y se pueden abordar  nuevas
         tareas de la instalacion.

       El  papel  clave  de  /dev/initrd en el proceso es el de reutilizar los
       datos de configuracion durante el funcionamiento habitual  del  sistema
       sin  que  se  requiera  una  seleccion  inicial del nucleo, o un nucleo
       generico demasiado grande, o recompilarlo.

       Un segundo escenario se presenta para instalaciones en  las  que  Linux
       corre  en  sistemas  con  diferentes  configuraciones 'hardware' en una
       misma red.  En estos casos, puede ser deseable utilizar solo un pequeno
       conjunto de nucleos (idealmente, uno) y mantener la parte especifica de
       la configuracion de cada sistema tan pequena como sea posible.  En este
       caso,  se  crea  un  fichero  comun  con  todos los modulos requeridos.
       Entonces, solo el fichero /linuxrc o un fichero ejecutado por  /linuxrc
       seria diferente.

       Un  tercer ejemplo es mas conveniente para discos 'de rescate'.  Debido
       a que cierta informacion como  la  localizacion  de  la  particion  del
       sistema  de ficheros raiz no se necesita en el momento del arranque, el
       sistema  cargado  desde  /dev/initrd  puede  utilizar  un  dialogo  y/o
       autodeteccion  seguido  posiblemente  de  un  chequeo a este sistema de
       ficheros.

       Por ultimo, pero no menos importante, las distribuciones  de  Linux  en
       CD-ROM  pueden  utilizar  initrd para facilitar la instalacion desde el
       CD-ROM.   La  distribucion   puede   utilizar   LOADLIN   para   cargar
       directamente /dev/initrd desde el CD-ROM sin necesitar ningun disquete.
       La distribucion podria tambien utilizar un disco de arranque con LILO y
       despues cargar un disco-ram mas grande a traves de /dev/initrd desde el
       CD-ROM.

CONFIGURACI'ON

       El dispositivo de bloques /dev/initrd es de solo lectura, al que se  le
       asigna  como  numero  mayor  1  y  como  numero  menor 250. Tipicamente
       /dev/initrd es propiedad de root:disk con  modo  0400  (con  acceso  de
       lectura   solo  para  el  'root').   Si  el  sistema  no  tiene  creado
       /dev/initrd todavia, puede crearse con las siguientes ordenes:
               mknod -m 400 /dev/initrd b 1 250
               chown root.disk /dev/initrd
       Tambien, el soporte tanto para "disco RAM" y "disco RAM Inicial" (p.ej.
       CONFIG_BLK_DEV_RAM=y  y  CONFIG_BLK_DEV_INITRD=y  )  debe ser compilado
       directamente en el nucleo de Linux para utilizar  /dev/initrd.   Cuando
       se  usa  /dev/initrd,  el  controlador del disco RAM no se puede cargar
       como modulo.

FICHEROS

       /dev/initrd
       /dev/ram0
       /linuxrc
       /initrd

V'EASE TAMBI'EN

       chown(1), mknod(1), /dev/ram(4), freeramdisk(8), rdev(8), El fichero de
       documentacion  initrd.txt  en  el paquete de los fuentes del nucleo, la
       documentacion de LILO, la documentacion de LOADLIN, la documentacion de
       SYSLINUX.

OBSERVACIONES

       1.  Con  el nucleo actual, cualquier sistema de ficheros que permanezca
       montado cuando /dev/ram0 es movido desde / a  /initrd  continua  siendo
       accesible.   Sin   embargo,   la  informacion  en  /proc/mounts  no  es
       actualizada.

       2. Con el nucleo actual, si el directorio /initrd no  existe,  entonces
       /dev/ram0  no  sera  completamente  desmontado si /dev/ram0 esta siendo
       utilizado por algun  proceso  o  mantiene  algun  sistema  de  ficheros
       montado  en  el.   Si no se desmonta completamente /dev/ram0 , entonces
       /dev/ram0 permanecera en memoria.

       3. Los usuarios de /dev/initrd no deberian depender del  comportamiento
       indicado en las notas anteriores.  Este comportamiento puede cambiar en
       futuras versiones del nucleo de Linux.

AUTOR

       El codigo del nucleo para el dispositivo initrd  ha  sido  escrito  por
       Werner     Almesberger    <almesber@lrc.epfl.ch>    y    Hans    Lermen
       <lermen@elserv.ffm.fgan.de>.  El codigo para initrd se anadio al codigo
       basico del nucleo en la version de desarrollo 1.3.73.