V některých případech můžete chtít extrahovat obrazový soubor initramfs a zkontrolovat vestavěný obsah. Tento příspěvek obsahuje kroky k extrahování obrazových souborů initramfs pro RHEL 6.
Kroky
1. Najděte svůj obraz initramfs a zkontrolujte typ souboru.
# 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. Vytvořte adresář v /tmp a zkopírujte soubor obrazu initramfs do tohoto adresáře (zkontrolujte, zda má /tmp dostatek místa pro uložení initramfs):
# mkdir /tmp/initrmafs # cp /boot/initramfs-$(uname -r).img /tmp/initramfs
3. Přejděte do /tmp/initramfs a proveďte
# cd /tmp/initramfs # gzip -dc /boot/initramfs-2.6.32-358.el6.x86_64.img | cpio -id 90556 blocks
Výše uvedený příkaz by měl extrahovat obraz initramfs a vytvořit adresáře, které můžete prozkoumat
# 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
Nyní můžete zkontrolovat a upravit obraz initramfs, například spouštěcí protokoly jsou umístěny v /var/log adresář. Můžete také zkontrolovat, jaké moduly jsou načteny v initramfs , pro to prosím zkontrolujte /lib/modules nebo /lib/dracut .Je také možné upravit libovolné soubory v /etc/, pokud je třeba změnit například /etc/multipath.conf.
4. Nyní, když jsou provedeny změny pro opětovné vytvoření obrazu initramfs, proveďte
# 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. Nyní můžete tento obrázek initramfs nahradit (/tmp/initramfs-2.6.32-358.el6.x86_64.img ) s jedním umístěným v /boot/
# cp /tmp/initramfs-2.6.32-358.el6.x86_64.img /boot/
Zobrazení obsahu obrázku initramfs
Chcete-li pouze vypsat obsah souboru obrazu initramfs, můžete spustit:
# 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 :Jak extrahovat obrázek initramfs a upravit/zobrazit jej