Mkinitcpio (Español)
zh-CN:Mkinitcpio mkinitcpio es un creador de initramfs de última generación.
Contents
Introducción
mkinitcpio es un script bash utilizado para generar un ramdisk inicial. En mkinitcpio man page:
- El ramdisk inicial es básicamente un entorno muy pequeño ("pre-userspace"), que carga varios módulos del kernel y establece los pasos preliminares necesarios antes de entregar el control a init. De esta manera usted puede tener, por ejemplo, sistemas de archivos cifrados y sistemas de archivos en el software RAID. Mkinitcpio también permite extensiones personalizadas con los hooks, la detección automática en tiempo de ejecución, y muchas otras características.
Tradicionalmente, el kernel es el responsable de la detección de hardware y las tareas de inicialización a principios del proceso de arranque, antes de montar el sistema de archivos root y pasar el control a init
. Sin embargo, con los avances de la tecnología, estas actividades se han vuelto cada vez más complejas.
A día de hoy, el sistema de ficheros root se puede instalar en una amplia gama de hardware, de SCSI a SATA pasando por USB, el cual es monitoreado por una serie de controladores de unidades de diferentes fabricantes. Además, el sistema de ficheros root se puede comprimir o cifrar, en un software RAID o grupo de volumen lógico. La forma más fácil de manejar este rango de complejidad, es pasar la gestión al entorno userspace: el ramdisk inicial.
Consulte: /dev/brain0 » Blog Archive » Early Userspace in Arch Linux.
mkinitcpio es un instrumento modular para la construcción de una imagen init ramfs cpio, que ofrece muchas ventajas en comparación con métodos alternativos, entre ellos:
- El uso de busybox, que proporciona una base mínima y ligera para el entorno de userspace (antes de la versión 0.6, se utilizó klibc).
- Apoyo de udev para detectar automáticamente el hardware durante la fase de ejecución, evitando así la carga de módulos innecesarios.
- Usar init script extensibles sobre la base hook; los hooks pueden ser fácilmente personalizados incluidos en los paquetes pacman.
- Apoyo de lvm2, dm-crypt, tanto para volúmenes legacy y LUKS, mdadm, swsusp y suspend2 para la recuperación y el arranque desde dispositivos USB de almacenamiento masivo.
- La capacidad de permitir que muchas características se puedan configurar desde la línea de comandos del kernel, sin la necesidad de reconstruir la imagen.
- Soporte a la inserción de la imagen en el kernel, haciendo, por lo tanto, la imagen del kernel autosuficiente.
mkinitcpio fue desarrollado por phrakture, tpowa y brain0 con diversas formas de ayuda de la comunidad. Recientemente, el desarrollo se lleva a cabo por falconindy.
Instalación
El paquete mkinitcpio está disponible en los repositorios oficiales, y se instala por defecto en tanto que se incluye en el grupo base.
Para los usuarios que prefieren instalar la última versión de desarrollo Git de mkinitcpio
:
$ git clone git://projects.archlinux.org/mkinitcpio.git
Creación de la imagen y activación
Por defecto, el script mkinitcpio genera dos imágenes después de instalar o actualizar el kernel: /boot/initramfs-linux.img
y /boot/initramfs-linux-fallback.img
. La imagen fallback utiliza el mismo archivo de configuración que la imagen predeterminada, con la excepción del hook autodetect que se omite durante la creación, incluyendo, por tanto, una amplia gama de módulos. El hook de detección (autodetect) detecta automáticamente los módulos necesarios y personaliza la imagen para un hardware específico, lo que reduce el initramfs.
Los usuarios pueden crear cuantas imágenes initramfs deseen, con perfiles de configuración diferentes. La imagen deseada se debe especificar para el gestor de arranque, a menudo en su archivo de configuración. Después de realizar los cambios en el fichero de configuración, la imagen debe ser regenerada. Para el valor del kernel de Arch Linux, linux, ésto se hace mediante la ejecución de este comando como root: mkinitcpio-p linux
.
La opción -p
indica un "preset" para ser utilizado; la mayoría de los paquetes kernel proveen un mkinitcpio predefinido, que se encuentra en /etc/mkinitcpio.d
(por ejemplo /etc/mkinitcpio.d/linux.preset
para linux
). Un preset es una definición por defecto de cómo crear una imagen initramfs en lugar de especificar el archivo de configuración y el archivo de salida en cada ocasión.
Los usuarios pueden crear manualmente una imagen con un archivo de configuración alternativo:
# mkinitcpio -c /etc/mkinitcpio-custom.conf -g /boot/linux-custom.img
Ésto va a generar la imagen initramfs para el kernel actualmente en ejecución y guardarlo en /boot/linux-custom.img
.
Para crear la imagen de un kernel diferente al actualmente en ejecución, agregar la versión del kernel a la línea del comando:
# mkinitcpio -g /boot/linux.img -k 3.0.0-ARCH
Configuración
El archivo de configuración principal de mkinitcpio es /etc/mkinitcpio.conf
. Además, las definiciones de los presets son proporcionados por los paquetes del kernel en el directorio /etc/mkinitcpio.d
(por ejemplo /etc/mkinitcpio.d/linux.preset
). linux.preset}}).
/etc/mkinitcpio.conf
. De lo contrario, la posición de la partición root puede variar, dando lugar a kernel panic. Una alternativa más plausible sería usar nombres de los dispositivos que no cambien Persistent block device naming, para asegurar que vengan siempre correctamente montados.Los usuarios pueden modificar seis variables en el fichero de configuración:
-
MODULES
- Módulos del kernel que se cargan antes de que los hooks se ejecuten al inicio.
-
BINARIES
- Binarios suplementarios para incluir la imagen initramfs.
-
FILES
- Los archivos adicionales que se incluirán en la imagen initramfs.
-
HOOKS
- Los hooks son los scripts que se ejecutan en el ramdisk inicial.
-
COMPRESSION
- Se utiliza para comprimir la imagen initramfs.
-
COMPRESSION_OPTIONS
- Las opciones de la línea de comandos para el programa
COMPRESSION
.
MÓDULOS
La cadena MODULES se utiliza para especificar los módulos a cargar antes de ejecutar cualquier otra cosa. Para acelerar el proceso de arranque, puede optar por desactivar el hook udev y hacer una lista de los módulos necesarios:
MODULES="piix ide_disk reiserfs" [...] HOOKS="base autodetect ide filesystems"
Los módulos con el sufijo '?' no devuelven un error si no se les encuentra. Esto puede ser muy útil si está compilando un núcleo personalizado que compile los módulos escritos explícitamentes en los Hooks, o en el archivo de configuración.
Módulos que se cargan durante el proceso de arranque (stock kernel 2.6.18): scsi_transport_sas
, ultrastor
, qlogicfas
, eata
, BusLogic
, pas16
, wd7000
, sym53c416
, g_NCR5380_mmio
, fdomain
, u14-34f
, dtc
, initio
, in2000
, imm
, t128
, aha1542
, aha152x
, atp870u
, g_NCR5380
, NCR53c406a
, qlogicfas408
, megaraid_mm
, advansys
.
Si alguno de los módulos anteriores se requiere para el dispositivo raíz (root), añadir específicamente en /etc/mkinitcpio.conf
para evitar un eventual kernel panic.
BINARIOS y ARCHIVOS
Estas opciones permiten al usuario añadir archivos a la imagen. Tanto BINARIES
como FILES
se agregan antes de que los hooks se ejecutan, y se puede usar para sobrescribir los archivos utilizados o suministrados por el hook. Los binarios son auto-localizados, ya que deben ser almacenados en un PATH
estándar y son analizadores de dependencias, por lo que las necesidades de cada biblioteca y dependencias se sumarán en consecuencia. Los FILES
se agregarán como están. Por ejemplo:
FILES="/etc/modprobe.d/modprobe.conf"
BINARIES="kexec"
HOOKS
Hook es un script que pone en ejecución el ramdisk inicial. Los hooks se encuentran en el directorio /lib/initcpio/install
; para obtener una lista de los hooks disponibles, usar el comando:
$ mkinitcpio -L
Utilice la opción -H
para obtener más información acerca de cualquier hook específico. Por ejemplo, para obtener información acerca del hook base:
$ mkinitcpio -H base
Los hooks se enumeran en orden de ejecución, y se utiliza para añadir archivos o módulos a la imagen. De modo que los hooks pueden afectar a la instalación (cuando mkinitcpio se ejecute para generar la imagen; y/o durante el tiempo de ejecución) por medio de un script adjunto que se inicie durante el arranque. Los scripts pueden ser encontrados en el directorio /usr/lib/initcpio/hooks
.
La configuración por defecto funciona para la mayoría de los usuarios con los ajustes estándar:
HOOKS="base udev autodetect pata scsi sata filesystems"
Si utiliza la imagen en varios sistemas con hardware diferente, quitar el hook autodetect, ya que optimiza la imagen en la máquina donde se genera:
HOOKS="base udev pata scsi sata filesystems"
Para dar soporte a los volúmenes cifrados de los grupos LVM2:
HOOKS="base udev autodetect pata scsi sata lvm2 encrypt filesystems"
A continuación se muestra una tabla de hooks y sus características más comunes. Tenga en cuenta que esta tabla no es completa, ya que los paquetes pueden proporcionar hooks personalizados.
Hook | Instalación | Tiempo de ejecución |
---|---|---|
base | Establece todos los directorios de arranque e instala los servicios básicos y bibliotecas. Siempre agregue este hook a menos que sepa exactamente lo que está haciendo. | -- |
udev | Añade la imagen udev, udevadm y las reglas udev. | Udev se utiliza para crear el nodo del dispositivo root y detectar los módulos necesarios para el dispositivo de root. Debido a que simplifica las cosas, se recomienda utilizar udev. |
autodetect | Reduce el initramfs con detección automática de los módulos necesarios. Verifique que los módulos incluidos son los correctos. Este hook se debe iniciar antes que el subsistema de otro hook, para aprovechar al máximo la detección automática. Cada hook especificado antes de "autodetect" se instalará por completo. | -- |
pata | Añade nuevos módulos de libata/PATA a la imagen. Úsalo si el dispositivo raíz se encuentra en un disco PATA o IDE. Asimismo, el uso de autodetect puede reducir posiblemente el tamaño de imagen. | -- |
mmc | Adds MMC modules to the image. Use this if your root device is on a MultiMediaCard such as CompactFlash. Also use the autodetect hook if you want to minimize your image size | -- |
sata | Añade los módulos Serial ATA a la imagen. Úsalo si el dispositivo raíz se encuentra en una unidad SATA. Asimismo, el uso de autodetect puede reducir posiblemente el tamaño de imagen. | -- |
scsi | Añade módulos SCSI a la imagen. Úsalo si el dispositivo raíz se encuentra en una unidad de disco SCSI. Asimismo, el uso de autodetect puede reducir posiblemente el tamaño de imagen. | -- |
usb | Añade módulos USB a la imagen. Úsalo si el dispositivo raíz se encuentra en un dispositivo de almacenamiento USB o si a través de USB debe disponer de otro tipo de acceso (montajes, chequeos, etc.) en el inicio. | -- |
usbinput | Agregar los módulos USB HID a la imagen. Úselo si tienes un teclado USB y sea necesario durante la primera fase del userspace (para introducir contraseña cifrada pra el modo seguro). | -- |
fw | Añade los módulos FireWire a la imagen. Úsalo si el dispositivo raíz se encuentra en un dispositivo de almacenamiento FW. | -- |
net | Agrega los módulos necesarios para un dispositivo de red. Para dispositivo PCMCIA agregue también el hook PCMCIA. | Proporciona control para un sistema de ficheros raíz basadas en NFS. |
pcmcia | Agregar los módulos necesarios para dispositivos PCMCIA. Usted también necesitará el paquete pcmciautils para usarlos. | -- |
filesystems | Esto incluye los módulos necesarios del sistema de archivos en la imagen. Este hook es necesario , a menos que especifique los módulos del sistema de archivos en MÓDULOS. | -- |
lvm2 | Agrega los módulos del dispositivo mapper kernel, y la herramienta lvm a la imagen. También tendrá que tener instalado el paquete lvm2. |
Habilita todos los grupos de los volúmenes LVM2. Esto es necesario si el sistema de archivos raíz está en LVM. |
dmraid | Proporciona soporte para fakeRAID del dispositivo root. Usted debe tener instalado el paquete dmraid para poder usar estos hooks | Localiza y monta los dispositivos de bloque fakeRAID usando mdassemble .
|
mdadm | Proporciona soporte para el montaje de las matrices de /etc/mdadm.conf , o la detección automática durante el arranque. Usted debe tener mdadm instalado para utilizar este hook. El hook mdadm_udev es preferible a aquél. |
Busca y monta el software de dispositivos de bloque RAID usando mdassemble .
|
madadm_udev | Proporciona soporte para el montaje de las matrices mediante udev. | Localiza y monta el software de dispositivos de bloque RAID usando udev y mdadm asegurando el montaje. Este es el método preferido de montaje mdadm (en lugar de utilizar el hook mdadm anterior). Es importante tener instalado mdadm.
|
encrypt | Agrega el módulo del kernel dm-crypt y la herramienta cryptsetup a la imagen. También tendrá que tener instalado el paquete cryptsetup. |
Detecta y desbloquea una partición de root encriptada. Vea # Personalizar el tiempo de ejecución para ajustar la configuración. |
resume | -- | Pretende volver a restaurar (resume) del estado de "suspendido". Funciona conjuntamente con swsusp y suspend2. Vea # Personalizar el tiempo de ejecución para ajustar configuración. |
keymap | Añadir keymap y consolefonts de rc.conf. | Carga keymap e consolefont especificado en rc.conf durante la primera fase de userspace.
|
fsck | Añade binarios de fsck y de ayudas para el sistema de archivos específico. Si se añaden después del hook autodetect sólo se añade la ayuda para el sistema de archivos raiz. Utilizar este hook es altamente recomendado, y es necesario con una partición /usr separada. |
Lanza fsck sobre el dispositivo de "root" (y /usr si son distintos) antes del montaje.
|
shutdown | Añade soporte al apagado en initramfs. Si usted tiene una partición /usr separada o root / cifrada este hook es fundamental. |
Desmonta y desmonta los dispositivos en el apagado. |
usr | Añade soporte para la partición /usr separada. |
Montar la partición /usr después de la raiz para que se monte adecuadamente.
|
Crear un hook personalizado
Un hook initcpio no es más que un script del shell que contiene la información necesaria para centrarse mkinitcpio con los ejecutables que deben cargarse y sus opciones. Puede ser útil en algunas raras ocasiones, cuando se necesita algo en el userspace inicial o final, y no es proporcionada por otros script ya instalados.
En primer lugar crear el propio script:
/lib/initcpio/install/hook
#!/bin/bash build() { add_binary /bin/bash #/bin/bash se da como un ejemplo, puede escribir el ejecutable deseado aquí add_runscript #determinará el nombre del script, y añadirá adecuadamente a /usr/lib/initcpio/hooks } help() { cat <<HELPEOF Line used as help information #Escribir mkinitcpio-H hook para mostrar esta información HELPEOF }
A continuación, cree el hook:
/lib/initcpio/hooks/hook
run_hook () { msg -n ":: Este es un hook de ejemplo" bash #su ejemplo ejecutable msg "done." }
Editar en consecuencia /etc/mkinitcpio.conf
para incluir su propio hook. También se puede incluir en /etc/rc.sysinit
para cargarlo en el userspace final.
COMPRESION
El kernel soporta varios formatos para la compresión de las initramfs, gzip, bzip2, lzma, xz (o lzma2) y lzo.. En la mayoría de los casos, gzip o lzop proporcionan el mejor equilibrio entre el tamaño de la imagen comprimida y la velocidad de descompresión.
COMPRESIÓN = "gzip" COMPRESIÓN = "bzip2" # requiere el kernel 2.6.30 COMPRESIÓN = "lzma" # requiere el kernel 2.6.30 COMPRESIÓN = "lzop" # requiere el kernel 2.6.34 COMPRESIÓN = "xz" # requiere el kernel 2.6.38
La falta de parámetro COMPRESSION
dará como resultado un archivo initramfs comprimido en gzip . Para crear una imagen sin comprimir, especifica COMPRESSION=cat
en la configuración o uso de -z cat
en la línea de comandos.
OPCIONES DE COMPRESIÓN
Estos son indicadores ulteriores que se pueden pasar al programa especificado por COMPRESSION
, tales como:
COMPRESSION_OPTIONS='-9'
En general, ésto no debería ser necesario, en cuanto que mkinitcpio asegurará que cualquier método de compresión soportará los indicadores necesarios para producir una imagen funcional.
Personalizar el tiempo de ejecución
Las opciones de configuración en tiempo de ejecución pueden ser enviados a init
y algunos hooks a través de la línea de comandos del kernel. Los parámetros de la línea de comandos del kernel son a menudo proporcionados por el gestor de arranque. Las opciones que se exponen a continuación se puede añadir a la línea de comandos del kernel para modificar el comportamiento predefinido. Vea Kernel parameters y Arch Boot Process para más información.
init
init
en el entorno de initramfs. Vea /usr/lib/initcpio/init
para obtener más información-
root
- Este es el parámetro más importante a especificar al kernel. Determina qué dispositivo debe estar instalado como root. mkinitcpio es flexible y permite una sintaxis diferente. Por ejemplo
root=/dev/sda1 # /dev node root=LABEL=CorsairF80 # label root=UUID=ea1c4959-406c-45d0-a144-912f4e86b207 # UUID root=/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part1 # udev symlink (requiere el hook udev ) root=801 # hex-encoded major/minor number
-
break
- Si se especifica
break
obreak=premount
,init
hace una pausa inicial en el proceso de arranque (después de cargar el módulos pero antes de montar la raíz) y ejecuta un shell interactivo que se puede utilizar para resolver cualquier problema. Este shell puede ser lanzado después de montar la raíz especificandobreak=postmount
. La fase boot continúa después de cerrar la sesión.
-
disablehooks
- Deshabilita los hooks en tiempo de ejecución mediante la adición de
disablehooks=hook1{,hook2,...}
. Por ejemplo:disablehooks=resume
-
earlymodules
- Cambia el orden en que se carguen los módulos, especificando los módulos que debe cargar primero
earlymodules=mod1{,mod2,...}
. (Esto podría ser utilizado, por ejemplo, para asegurar el orden correcto de múltiples interfaces de red).
-
rootdelay=N
- Pausa durante
N
segundos antes de montar el sistema root, poniendorootdelay
. (Esto podría ser utilizado, por ejemplo, para el lanzamiento de un disco duro USB que es lento en la fase de arranque).
Vea también: Depurar con GRUB y init
Usar RAID
Primero se debe agregar el hook mdadm
a la lista de HOOKS
, y luego cada módulo raid que se requiera a la lista de MODULES en /etc/mkinitcpio.conf
.
Parámetros del kernel:
Con el hook mdadm
, ya no será necesario configurar la cadena RAID en los parámetros de GRUB. El hook mdadm
utilizará el archivo /etc/mdadm.conf
, o detectará automáticamente las matrices durante el arranque inicial.
Si este parámetro se configura a través de udev, debe utilizar el hook mdadm_udev
. Upstream prefiere este método de montaje /etc/mdadm.conf
en cuanto que lee el nombre de los dispositivos conectados, en su caso.
Uso de la red
Paquetes requeridos:
La red requiere que el paquete mkinitcpio-nfs-utils esté instalado de los repositorios oficiales.
Parámetros del kernel:
ip=
La especificación de una interfaz puede ser en formato corto, que es sólo el nombre de una interfaz ("eth0", o lo que sea), o un formato largo. El formato alargado puede estar constituido por siete elementos, separados por dos puntos:
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> nfsaddrs= es un alias para ip= y se puede utilizar también.
Explicación de los parámetros:
<client-ip> IP del cliente. Si está vacío, la dirección será determinada por RARP/BOOTP/DHCPP. El tipo de protocolo utilizado dependerá del parámetro <autoconf> . Si este parámetro no está vacío, se utiliza el autoconf. <server-ip> IP del servidor NFS. Si RARP se utiliza para determinar la dirección del cliente, y este parámetro no está vacío, será aceptada sólo si el servidor especificado responde. Para utilizar diferentes RARP y NFS especificar el servidor RARP aquí (o dejarlo en blanco), y especifique el servidor NFS, en "nfsroot", el parámetro (Ver a continuación). Si esta entrada está en blanco se utilizará la dirección del servidor RARP/BOOTP/DHCP que respondiera a la solicitud. <gw-ip> puerta de enlace si el servidor está en una subred diferente. Si está vacío, no se utilizarán las puertas de enlace y el servidor será, presumiblemente, el de la red local, a menos que no se reciba algún valor de BOOTP/DHCP. <netmask> Máscara de red para la interfaz de red local. Si se deja en blanco, la máscara de red se deriva de la dirección IP del cliente que asume el direccionamiento "classful", a menos que sea cancelado por respuesta de BOOTP/DHCP. <hostname> El nombre del cliente. Si está vacío, la dirección IP del cliente se utiliza en la notación ASCII, o el valor recibido por BOOTP/DHCP. <device> Nombre del dispositivo de red para su uso. Si está vacío, todos los dispositivos se utilizan para las solicitudes de RARP/BOOTP/DHCP, y el primero en recibir una respuesta se configura. Si está utilizando un solo dispositivo, puede dejar esta entrada en blanco. <autoconf> Método a utilizar para la configuración automática. Si incluye tanto "rarp", "bootp", como "dhcp" el protocolo especificado será utilizado. Si el valor es "both", "all" o vacío, todos los protocolos se utilizarán. "off", "static" o "none" significa no configurar automáticamente.
Ejemplos:
ip=127.0.0.1:::::lo:none --> Permitir interfaz de bucle invertido. ip=192.168.1.1:::::eth2:none --> Permitir la interfaz estática eth2. ip=:::::eth0:dhcp --> Habilitar el protocolo dhcp para configurar eth0.
BOOTIF=
Si tiene varias tarjetas de red, este parámetro puede incluir la dirección MAC de la interfaz que está arrancando. Esto suele ser útil cuando la interfaz puede cambiar de numeración, o en conjunción con pxelinux IPAPPEND 2 o la opción IPAPPEND 3. Si no se da, eth0 va a ser utilizado.
Ejemplo:
BOOTIF=01-A1-B2-C3-D4-E5-F6 # Note the prepended "01-" and capital letters.
nfsroot=
Si el parámetro "nfsroot" no se da en la línea de comandos, se utiliza el valor por defecto /tftpboot/%s
.
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
Explicación de los parámetros:
<server-ip> Especifica la dirección IP del servidor NFS. Si no se especifica, la dirección por defecto está determinado por "ip" variable (Ver abajo). Una utilidad de este valor es, por ejemplo la capacidad de utilizar diferentes servidores de RARP y NFS. En general, se puede dejar en blanco. <root-dir> nombre de la carpeta en el servidor para montar como root. Si hay un "%s" en la cadena, el símbolo será sustituido por la representación ASCII de la dirección IP del cliente. <nfs-options> Opciones estándar NFS. Todas las opciones están separadas por comas. Si ninguna opción se proporciona, se utilizará siguiendo las opciones por defecto: port = as given by server portmap daemon rsize = 1024 wsize = 1024 timeo = 7 retrans = 3 acregmin = 3 acregmax = 60 acdirmin = 30 acdirmax = 60 flags = hard, nointr, noposix, cto, ac
root=/dev/nfs
Si usted no utiliza los parámetros de nfsroot
debe configurar root=/dev/nfs
a partir de un NFS de root para la configuración automática.
Utilizar LVM
Si el dispositivo raíz se encuentra en LVM, usted tiene que agregar el hook lvm2, y cambiar el dispositivo raíz en la línea de comandos del kernel con el formato:
root=/dev/mapper/<volume group name>-<logical volume name>
por ejemplo:
root=/dev/mapper/myvg-root
Además, si el dispositivo root puede iniciar lentamente (por ejemplo, un dispositivo USB) y/o recibe un error de "volume group not found" ("grupo de volúmenes que no se encuentra") durante el arranque, es posible que deba añadir lo siguiente a la línea de comandos del kernel:
lvmwait=/dev/mapper/<volume group name><logical volume name>
por ejemplo:
lvmwait=/dev/mapper/myvg-root
Esto permite que el proceso de arranque espere hasta que LVM se las arregla para hacer que el dispositivo esté disponible.
Utilizar root encriptado
Si el volumen de la raíz está cifrada, debe agregar el hook encrypt
.
Para un root encriptado, use algo similar a:
root=/dev/mapper/root cryptdevice=/dev/sda5:root
En este caso, /dev/sda5
es el dispositivo cifrado, y le damos un nombre arbitrario de root
, lo que significa que nuestro dispositivo raíz, una vez desbloqueado, se monta como /dev/mapper/root
. En el arranque, se le pedirá la contraseña para desbloquear éste. Vea LUKS#Configuration_of_initcpio para más detalles sobre el uso de root encriptado.
/usr en una partición separada
Si durante la instalación de Arch Linux usted eligió montar /usr
en una partición separada, debe tener en cuenta varias cosas:
- Añadir el hook
shutdown
. Apagado, initscripts se basará en una copia guardada de initramfs y permitirá a/usr
(y a la raíz) ser debidamente desmontada desde el VFS. - Añadir el hook
fsck
. Recomendado para todos, fundamental si quiere un fsck al iniciar la partición/usr
. Sin este hook,/etc/rc.sysinit
comenzará fsck con/usr
montada y en consecuencia fallará. - A partir de mkinitcpio 0.9.0: Agregue el hook
usr
, además de los hooks de arriba. Esto montará la partición/usr
después de que la partición raíz está montada. Antes de 0.9.0, el montaje de/usr
sería automática si se encuentra en la raíz real/etc/fstab
.
Solución de problemas
Extraer la imagen
Si usted es curioso y quiere saber qué hay dentro de la imagen initrd, se puede extraer, para una mirada al interior de los archivos.
La imagen initrd es un archivo SVR4 CPIO, generado por el comando find
y bsdcpio
y se comprime con un de los formatos de compresión compatibles con el kernel, llamados gzip, bzip2, lzma, lzo o xz.
mkinitcpio incluye una herramienta llamada lsinitcpio
, que muestra y extrae el contenido de la imagen initramfs.
Usted puede listar los archivos de la imagen con:
$ lsinitcpio /boot/initramfs-linux.img
Y extraerlos en la carpeta actual:
$ lsinitcpio -x /boot/initramfs-linux.img
Usted también puede tener una lista un poco más amigable de las partes más importantes de la imagen:
$lsinitcpio -a /boot/initramfs-linux.imq
Vea también
- Boot Debugging - Depurar con GRUB