In alcuni casi potresti voler estrarre il file immagine initramfs per controllare i contenuti incorporati. Questo post fornisce i passaggi per estrarre i file di immagine initramfs per RHEL 6.
Passaggi
1. Individua la tua immagine initramfs e controlla il tipo di file.
# ls -la /boot/initramfs-$(uname -r).img -rw-r--r--. 1 root root 16196566 Feb 4 2015 /boot/initramfs-2.6.32-358.el6.x86_64.img
# file /boot/initramfs-2.6.32-358.el6.x86_64.img /boot/initramfs-2.6.32-358.el6.x86_64.img: gzip compressed data, from Unix, last modified: Wed Feb 4 18:31:54 2015, max compression
2. Crea una directory in /tmp e copia il file immagine initramfs in quella directory (controlla se /tmp ha spazio sufficiente per contenere initramfs):
# mkdir /tmp/initrmafs # cp /boot/initramfs-$(uname -r).img /tmp/initramfs
3. Vai su /tmp/initramfs ed esegui
# cd /tmp/initramfs # gzip -dc /boot/initramfs-2.6.32-358.el6.x86_64.img | cpio -id 90556 blocks
Il comando sopra dovrebbe estrarre l'immagine initramfs e creare directory che puoi esaminare
# ls -lrt total 15924 -rw-r--r-- 1 root root 16196566 Feb 4 2015 initramfs-2.6.32-358.el6.x86_64.img drwxr-xr-x 2 root root 4096 Sep 2 11:01 pre-udev drwxr-xr-x 2 root root 4096 Sep 2 11:01 cmdline drwxr-xr-x 2 root root 4096 Sep 2 11:01 bin drwxr-xr-x 2 root root 4096 Sep 2 11:01 proc drwxr-xr-x 4 root root 4096 Sep 2 11:01 var drwxrwxrwt 2 root root 4096 Sep 2 11:01 tmp drwxr-xr-x 2 root root 4096 Sep 2 11:01 sysroot drwxr-xr-x 2 root root 4096 Sep 2 11:01 sys drwxr-xr-x 7 root root 4096 Sep 2 11:01 etc -rw-r--r-- 1 root root 19 Sep 2 11:01 dracut-004-303.el6 drwxr-xr-x 2 root root 4096 Sep 2 11:01 pre-trigger drwxr-xr-x 2 root root 4096 Sep 2 11:01 mount drwxr-xr-x 2 root root 4096 Sep 2 11:01 initqueue-timeout drwxr-xr-x 2 root root 4096 Sep 2 11:01 emergency drwxr-xr-x 7 root root 4096 Sep 2 11:01 lib drwxr-xr-x 2 root root 4096 Sep 2 11:01 initqueue-settled drwxr-xr-x 2 root root 4096 Sep 2 11:01 initqueue-finished -rwxr-xr-x 1 root root 8879 Sep 2 11:01 init drwxr-xr-x 7 root root 4096 Sep 2 11:01 usr drwxr-xr-x 2 root root 4096 Sep 2 11:01 pre-pivot drwxr-xr-x 3 root root 4096 Sep 2 11:01 dev drwxr-xr-x 3 root root 4096 Sep 2 11:01 lib64 drwxr-xr-x 2 root root 4096 Sep 2 11:01 sbin drwxr-xr-x 2 root root 4096 Sep 2 11:01 initqueue
Ora puoi controllare e modificare l'immagine initramfs, ad esempio i log di avvio si trovano in /var/log directory. Puoi anche controllare quali moduli sono caricati in initramfs , per questo controlla /lib/modules o /lib/dracut .È anche possibile modificare qualsiasi file in /etc/ se ad esempio è necessario modificare /etc/multipath.conf.
4. Ora, quando vengono apportate modifiche per ricreare l'immagine initramfs, esegui
# cd /tmp/initramfs # rm initramfs-2.6.32-358.el6.x86_64.img # find . | cpio -H newc -o > initramfs-2.6.32-358.el6.x86_64.cpio # cat initramfs-2.6.32-358.el6.x86_64.cpio | gzip -9 > /tmp/initramfs-2.6.32-358.el6.x86_64.img
5. Ora puoi sostituire questa immagine initramfs (/tmp/initramfs-2.6.32-358.el6.x86_64.img ) con uno situato in /boot/
# cp /tmp/initramfs-2.6.32-358.el6.x86_64.img /boot/
Visualizzazione del contenuto dell'immagine initramfs
Per elencare solo il contenuto di un file immagine initramfs, puoi eseguire:
# lsinitrd /boot/initramfs-2.6.32-358.el6.x86_64.img /boot/initramfs-2.6.32-358.el6.x86_64.img: 16M ======================================================================== ======================================================================== drwxr-xr-x 24 root root 0 Feb 4 2015 . drwxr-xr-x 2 root root 0 Feb 4 2015 pre-udev -rwxr-xr-x 1 root root 1208 Jan 9 2013 pre-udev/30resume-genrules.sh -rwxr-xr-x 1 root root 149 Jan 15 2010 pre-udev/30mdmon-pre-udev.sh ....CentOS / RHEL 7:come estrarre l'immagine initramfs e modificarla/visualizzarla