Pregunta: ¿Cómo veo, modifico y vuelvo a crear el nuevo initrd.img en las distribuciones Ubuntu, Debian, CentOS, Fedora, Red-Hat, Arch Linux o SUSE?
1. ¿Cómo ver el contenido del archivo initrd.img?
initrd.img está en formato gzip. Así que mueva initrd.img a initrd.gz como se muestra a continuación.
# cp /tftpboot/el5/initrd.img . # ls cdrom initrd.img # mv initrd.img initrd.gz
Descomprima el archivo initrd.gz como se muestra a continuación.
# gunzip initrd.gz # ls cdrom initrd
Después de descomprimir el archivo initrd.gz, el initrd está en formato cpio 'newc'. Así que extraiga los archivos de initrd usando el formato cpio 'newc' como se muestra a continuación.
Nota: info cpio dará más información sobre el formato 'newc'.
# mkdir tmp2 # cd tmp2/ # cpio -id < ../initrd 16524 blocks
Ahora puede ver el contenido del archivo initrd.img
# ls bin dev etc init modules proc sbin selinux sys tmp var
2. ¿Cómo modificar el contenido de la imagen y recrear una nueva imagen?
Después de extraer el archivo como se muestra a continuación, realice la modificación adecuada en cualquiera de esos archivos. A continuación, vuelva a empaquetar los archivos en el archivo utilizando los siguientes comandos. Vuelva a empaquetar los archivos modificados al formato cpio 'newc'.
# find . | cpio --create --format='newc' > /tmp/newinitrd 16524 blocks # ls /tmp/ cdrom initrd newinitrd tmp2 # ls -l /tmp/newinitrd -rw-r--r-- 1 root root 8460288 Jul 2 14:50 /tmp/newinitrd
Gzip el archivo comprimido.
# gzip newinitrd # ls cdrom initrd newinitrd.gz tmp2 # ls -l newinitrd.gz -rw-r--r-- 1 root root 6649867 Jul 2 14:50 newinitrd.gz
Mover archivo como un archivo de imagen. Puede usar newinitrd.img como su nueva imagen de inicio.
# mv newinitrd.gz newinitrd.img # ls -l newinitrd.img -rw-r--r-- 1 root root 6649867 Jul 2 14:50 newinitrd.img