Provided by: manpages-es_4.13-4_all bug

NOMBRE

       initrd - disco-RAM inicializado por el gestor de arranque

CONFIGURACIÓN

       El dispositivo de bloques  /dev/initrd es de sólo lectura, al que se le asigna como número mayor 1 y como
       número  menor 250. En general, /dev/initrd es propiedad de root:disk con modo 0400 (con acceso de lectura
       sólo para el 'root'). Si el sistema Linux no  tuviese  ya  creado  /dev/initrd,  puede  crearse  con  las
       siguientes órdenes:

           mknod -m 400 /dev/initrd b 1 250
           chown root:disk /dev/initrd

       También,  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 núcleo de Linux para utilizar /dev/initrd.
       Cuando se usa /dev/initrd, el controlador del disco RAM no se puede cargar como módulo.

DESCRIPCIÓN

       El archivo especial dev/initrd es un dispositivo de bloques de sólo 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 núcleo del sistema. Así, el núcleo puede utilizar el  contenido  del  dispositivo  /dev/initrd
       para el inicio del sistema en dos fases.

       En  la primera fase del inicio, el núcleo pone en marcha y monta un sistema de ficheros raíz 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  módulos  desde el contenido del dispositivo raíz
       inicial. Tras cargar los módulos adicionales, se monta un nuevo sistema de ficheros raíz  (es  decir,  el
       sistema de ficheros raíz habitual) desde un dispositivo diferente.

   Operación de Iniciado
       Cuando se arranca el sistema con initrd, ocurre lo siguiente:

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

       2. En  la  puesta en marcha del núcleo, éste descomprime y copia el contenido del dispositivo /dev/initrd
          en el dispositivo /dev/ram0 y a continuación libera la memoria utilizada por /dev/initrd.

       3. Seguidamente, el núcleo monta el dispositivo /dev/ram0 en modo lectura/escritura como  el  sistema  de
          ficheros raíz inicial.

       4. Si el sistema de ficheros raíz habitual indicado coincide con el sistema de ficheros raíz inicial (por
          ejemplo, /dev/ram0) entonces el núcleo salta directamente al último paso para la secuencia de arranque
          habitual.

       5. Si el fichero ejecutable /linuxrc está presente en el sistema de ficheros raíz inicial, se ejecuta con
          UID  (identificador  de  usuario)  0. (El fichero /linuxrc debe tener permiso de ejecución. El fichero
          /linuxrc puede ser cualquier ejecutable válido, incluyendo los  guiones  de  cualquier  procesador  de
          órdenes -'shell scripts'.)

       6. Si  no  se  ejecuta /linuxrc o cuando /linuxrc termina, se monta el sistema de ficheros raíz habitual.
          (Si /linuxrc termina  con  algún  sistema  de  ficheros  montado  en  el  raíz  inicial,  entonces  el
          comportamiento  del  núcleo  es  INDETERMINADO.  (Vea  la  sección  OBSERVACIONES  para  consultar  el
          comportamiento actual del núcleo.)

       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  raíz  habitual  y  queda  algún  proceso  en  funcionamiento sobre /dev/ram0 cuando /linuxrc
          termina, el comportamiento del núcleo es INDETERMINADO. Vea la sección de OBSERVACIONES para consultar
          el comportamiento actual del núcleo.)

       8. La secuencia de arranque/inicio habitual (por ejemplo, la ejecución 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 núcleo:

       initrd=nombre_de_fichero
              Especifica el fichero a cargar como el contenido de /dev/initrd. Para LOADLIN esta es  una  opción
              de  línea  de  órdenes.  Para LILO tiene que utilizar este orden en el fichero de configuración de
              LILO, /etc/lilo.config. El nombre de fichero indicado con esta opción será normalmente una  imagen
              del sistema de ficheros comprimida con GZip.

       noinitrd
              Esta  opción  de  arranque deshabilita la operación de arranque en dos fases. El núcleo realiza la
              secuencia de arranque habitual como si /dev/initrd no hubiera sido inicializado. Con esta  opción,
              cualquier  contenido de /dev/initrd cargado en la memoria por el 'boot loader' es preservado. Esta
              opción permite que /dev/initrd contenga cualquier clase de datos y no esté limitado a  una  imagen
              de  sist.  de ficheros. De todas formas, el dispositivo /dev/initrd es de sólo-lectura y puede ser
              leído sólo una vez tras la puesta en marcha del sistema.

       root=nombre-de-dispositivo
              Especifica el dispositivo que será utilizado como sistema de ficheros normal (raíz). Para  LOADLIN
              esta es una opción de línea de órdenes. Para LILO esta es una opción para el momento de arranque o
              puede utilizarse como línea de opción en el fichero de configuración de LILO, /etc/lilo.config. El
              dispositivo  indicado  por  la opción debe ser un dispositivo 'montable', y contener un sistema de
              ficheros raíz adecuado.

   Modificando el sistema de archivos raiz habitual.
       Por defecto, las opciones establecidas del núcleo (p. ej. establecidas en el fichero del núcleo  mediante
       rdev(8)  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  archivos  raíz  montado  como  NFS,  debemos
       utilizar  las  opciones  de  arranque  nfs_root_name  y  nfs_root_addrs  para proporcionar/establecer las
       opciones de NFS. Para más  información  sobre  sistemas  raíz  montados  como  NFS,  vea  el  fichero  de
       documentación          del          núcleo          Documentation/filesystems/nfs/nfsroot.txt          (o
       Documentation/filesystems/nfsroot.txt  antes  de  Linux  2.6.33).   Para   más   información   sobre   el
       establecimiento del sistema de archivos raíz, vea también la documentación de LILO y LOADLIN.

       También  es  posible  para  el  ejecutable  de /linuxrc cambiar el dispositivo raíz por defecto. Para que
       /linuxrc cambie este dispositivo, /proc debe estar montado. Tras montar /proc, /linuxrc cambia  el  disp.
       raíz 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 raíz físico, éste se cambia haciendo que /linuxrc
       escriba el nuevo número de sistema de ficheros en /proc/sys/kernel/real-root-dev. Para  un  sistema  raíz
       NFS,  el  disp.  raíz  se  cambia  haciendo  que  /linuxrc  escriba  la  opción  de  NFS  en los ficheros
       /proc/sys/kernel/nfs-root-name y /proc/sys/kernel/nfs-root-addrs y después escriba 0xff (p.ej. el  número
       de  pseudo-dispositivo-NFS)  en el fichero /proc/sys/kernel/real-root-dev.Por ejemplo, la siguiente línea
       de órdenes del shell cambiaría el disp. raíz a /dev/hdb1:

           echo 0x365 >/proc/sys/kernel/real-root-dev

       Como ejemplo para sistemas NFS, las siguientes líneas  de  órdenes  cambiarían  el  dispositivo  raíz  al
       directorio  NFS  /var/nfsroot  en  un servidor NFS local con dirección IP 193.8.232.7 para un sistema con
       dirección 193.8.232.2 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

       Nota: el empleo de /proc/sys/kernel/real-root-dev  para  modificar  el  sistema  de  archivos  raiz  está
       obsoleto.  Consulte  el archivo Documentation/admin-guide/initrd.rst (o Documentation/initrd.txt antes de
       Linux 4.10) asi como pivot_root(2) y pivot_root(8) para ver un método más reciente de hacerlo.

   Modo de empleo
       La principal motivación para implementar initrd fue la de permitir una configuración modular  del  núcleo
       en el momento de la instalación.

       Aquí se describe un posible escenario de la instalación del sistema:

       1. El  programa  cargador arranca desde disquete u otro medio con un núcleo mínimo(p.ej. con soporte para
          /dev/ram, /dev/initrd, y el sistema de ficheros ext2) y carga /dev/initrd con una  versión  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 raíz
          normal  (p.ej.  tipo  de  dispositivo,  controladores,  sistema  de  ficheros)  y  (2)  el formato 'de
          distribución'  (p.ej.  CD-ROM,  red,  cinta,  ...).  Esto  se  puede  hacer  preguntando  al  usuario,
          tanteando/probando automáticamente, o mediante una aproximación mixta.

       3. El ejecutable /linuxrc carga los módulos necesarios desde el sistema de ficheros inicial.

       4. El  ejecutable  /linuxrc crea y 'expande' el sistema de ficheros raíz. (En esta etapa, el sistema raíz
          no tiene por qué ser aún un sistema completo.)

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

       6. El núcleo entonces monta el sistema de ficheros definitivo.

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

       8. El  gestor  de  arranque  está configurado para cargarse en /dev/initrd, un sistema de ficheros con el
          conjunto de módulos que fue utilizado para poner en marcha el sistema. (p.ej. El dispositivo /dev/ram0
          puede ser modificado, después 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 instalación.

       El  papel  clave  de  /dev/initrd en el proceso es el de reutilizar los datos de configuración durante el
       funcionamiento habitual del sistema sin que se requiera una selección inicial del  núcleo,  o  un  núcleo
       genérico 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 sólo un  pequeño
       conjunto  de núcleos (idealmente, uno) y mantener la parte específica de la configuración de cada sistema
       tan pequeña  como  sea  posible.  En  este  caso,  se  crea  un  fichero  común  con  todos  los  módulos
       requeridos.Entonces, sólo el fichero /linuxrc o un fichero ejecutado por /linuxrc sería diferente.

       Un  tercer  ejemplo  es más conveniente para discos 'de rescate'. Debido a que cierta información como la
       localización de la partición del sistema de ficheros raíz no se necesita en el momento del  arranque,  el
       sistema  cargado desde /dev/initrd puede utilizar un diálogo y/o autodetección seguido posiblemente de un
       chequeo a este sistema de ficheros.

       Por último, pero no menos importante, las distribuciones de Linux en CD-ROM pueden utilizar  initrd  para
       facilitar la instalación desde el CD-ROM. La distribución puede utilizar LOADLIN para cargar directamente
       /dev/initrd  desde  el  CD-ROM  sin necesitar ningún disquete. La distribución podría también utilizar un
       disco de arranque con LILO y después cargar un disco-RAM más grande a  través  de  /dev/initrd  desde  el
       CD-ROM.

ARCHIVOS

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

NOTAS

       1. Con  el núcleo actual, cualquier sistema de ficheros que permanezca montado cuando /dev/ram0 es movido
          desde / a /initrd continúa siendo accesible.  Sin  embargo,  la  información  en  /proc/mounts  no  es
          actualizada.

       2. Con  el  núcleo  actual,  si el directorio /initrd no existe, entonces /dev/ram0 no será completamente
          desmontado si /dev/ram0 está siendo utilizado por algún proceso o mantiene algún sistema  de  ficheros
          montado en él. Si no se desmonta completamente /dev/ram0, entonces /dev/ram0 permanecerá en memoria.

       3. Los  usuarios de /dev/initrd no deberían depender del comportamiento indicado en las notas anteriores.
          Este comportamiento puede cambiar en futuras versiones del núcleo de Linux.

VÉASE TAMBIÉN

       chown(1), mknod(1), ram(4), freeramdisk(8), rdev(8)

       Documentation/admin-guide/initrd.rst (o Documentation/initrd.txt antes de Linux 4.10) en la documentación
       del núcleo de Linux , la documentación de LILO, de LOADLIN y de SYSLINUX.

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
       proyecto,  información  sobre  cómo  informar  errores  y  la  última   versión   de   esta   página   en
       https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La   traducción   al   español   de   esta  página  del  manual  fue  creada  por  Julio  González  Durán
       <jugonzalez@mx3.redestb.es>, Juan Piernas <piernas@ditec.um.es> y Marcos Fouces <marcos@debian.org>

       Esta traducción es documentación libre;  lea  la  GNU General Public License Version 3  o  posterior  con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción  de esta página del manual, envíe un correo electrónico a
       debian-l10n-spanish@lists.debian.org.

Linux                                             6 Marzo 2019                                         INITRD(4)