In einigen Fällen möchten Sie möglicherweise die initramfs-Image-Datei extrahieren, um integrierte Inhalte zu überprüfen. Dieser Beitrag enthält Schritte zum Extrahieren von initramfs-Bilddateien für RHEL 6.
Schritte
1. Suchen Sie Ihr initramfs-Image und überprüfen Sie den Dateityp.
# 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. Erstellen Sie ein Verzeichnis in /tmp und kopieren Sie die initramfs-Image-Datei in dieses Verzeichnis (bitte überprüfen Sie, ob /tmp genügend Platz hat, um initramfs zu speichern):
# mkdir /tmp/initrmafs # cp /boot/initramfs-$(uname -r).img /tmp/initramfs
3. Gehen Sie zu /tmp/initramfs und führen Sie
aus# cd /tmp/initramfs # gzip -dc /boot/initramfs-2.6.32-358.el6.x86_64.img | cpio -id 90556 blocks
Der obige Befehl sollte das initramfs-Image extrahieren und Verzeichnisse erstellen, die Sie untersuchen können
# 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
Jetzt können Sie das initramfs-Image überprüfen und bearbeiten, zum Beispiel befinden sich Boot-Protokolle in /var/log Verzeichnis. Sie können auch überprüfen, welche Module in initramfs geladen sind, dafür überprüfen Sie bitte /lib/modules oder /lib/dracut .Es ist auch möglich, beliebige Dateien in /etc/ zu bearbeiten, wenn zum Beispiel /etc/multipath.conf geändert werden muss.
4. Wenn jetzt Änderungen vorgenommen werden, um das initramfs-Image neu zu erstellen, führen Sie es aus
# 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. Jetzt können Sie dieses initramfs-Image ersetzen (/tmp/initramfs-2.6.32-358.el6.x86_64.img ) mit einem in /boot/
# cp /tmp/initramfs-2.6.32-358.el6.x86_64.img /boot/
Anzeigen des initramfs-Bildinhalts
Um nur den Inhalt einer initramfs-Bilddatei aufzulisten, können Sie Folgendes ausführen:
# 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 :So extrahieren Sie das initramfs-Image und bearbeiten/anzeigen es