Frage: Wie kann ich die neue initrd.img auf Ubuntu-, Debian-, CentOS-, Fedora-, Red-Hat-, Arch Linux- oder SUSE-Distributionen anzeigen, ändern und neu erstellen?
1. Wie wird der Inhalt der initrd.img-Datei angezeigt?
initrd.img ist im gzip-Format. Verschieben Sie also initrd.img nach initrd.gz, wie unten gezeigt.
# cp /tftpboot/el5/initrd.img . # ls cdrom initrd.img # mv initrd.img initrd.gz
Entpacken Sie die initrd.gz-Datei wie unten gezeigt.
# gunzip initrd.gz # ls cdrom initrd
Nach dem Entpacken der initrd.gz-Datei liegt die initrd weiterhin im cpio ‚newc‘-Format vor. Extrahieren Sie also die Dateien aus der initrd im cpio ‚newc‘-Format wie unten gezeigt.
Hinweis: info cpio gibt weitere Informationen über das ‚newc‘-Format.
# mkdir tmp2 # cd tmp2/ # cpio -id < ../initrd 16524 blocks
Jetzt können Sie den Inhalt der Datei initrd.img
anzeigen# ls bin dev etc init modules proc sbin selinux sys tmp var
2. Wie ändere ich den Inhalt eines Bildes und erstelle ein neues Bild?
Nehmen Sie nach dem Extrahieren der Datei wie unten gezeigt entsprechende Änderungen an einer dieser Dateien vor. Packen Sie dann die Dateien mit den folgenden Befehlen wieder in das Archiv. Packen Sie die geänderten Dateien zurück in das cpio-'newc'-Format.
# 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 die Archivdatei.
# 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
Datei als Bilddatei verschieben. Sie können die Datei newinitrd.img als Ihr neues Boot-Image verwenden.
# mv newinitrd.gz newinitrd.img # ls -l newinitrd.img -rw-r--r-- 1 root root 6649867 Jul 2 14:50 newinitrd.img