Domanda: Come posso visualizzare, modificare e ricreare il nuovo initrd.img su distribuzioni Ubuntu, Debian, CentOS, Fedora, Red-Hat, Arch Linux o SUSE?
1. Come visualizzare il contenuto del file initrd.img?
initrd.img è in formato gzip. Quindi sposta initrd.img in initrd.gz come mostrato di seguito.
# cp /tftpboot/el5/initrd.img . # ls cdrom initrd.img # mv initrd.img initrd.gz
Decomprimi il file initrd.gz come mostrato di seguito.
# gunzip initrd.gz # ls cdrom initrd
Dopo aver decompresso il file initrd.gz, initrd è ulteriormente in formato cpio 'newc'. Quindi estrai i file da initrd usando il formato cpio 'newc' come mostrato di seguito.
Nota: Informazioni tipo fornirà maggiori informazioni sul formato "newc".
# mkdir tmp2 # cd tmp2/ # cpio -id < ../initrd 16524 blocks
Ora puoi visualizzare il contenuto del file initrd.img
# ls bin dev etc init modules proc sbin selinux sys tmp var
2. Come modificare il contenuto dell'immagine e ricreare una nuova immagine?
Dopo aver estratto il file come mostrato di seguito, apportare le modifiche appropriate a uno qualsiasi di questi file. Quindi imballare nuovamente i file nell'archivio utilizzando i seguenti comandi. Riporta i file modificati nel 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
Gzippa il file di archivio.
# 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
Sposta il file come file immagine. Puoi usare newinitrd.img come nuova immagine di avvio.
# mv newinitrd.gz newinitrd.img # ls -l newinitrd.img -rw-r--r-- 1 root root 6649867 Jul 2 14:50 newinitrd.img