Provided by: manpages-es_4.27.0-1_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

       •  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.

       •  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.

       •  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.

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.

Páginas de Manual de Linux 6.9.1                  15 Junio 2024                                        initrd(4)