在某些情况下,我们希望提取 initramfs 镜像文件以检查它里面的内容。
操作步骤
- 找到 initramfs 镜像并检查文件类型。
# ls -la /boot/initramfs-$(uname -r).img -rw-r--r--. 1 root root 16196566 Nov 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 Nov 4 18:31:54 2015, max compression
- 在 /tmp 中创建一个目录,并将 initramfs 镜像文件复制到该目录中(请检查 /tmp 是否有足够的空间来容纳 initramfs):
# mkdir /tmp/initrmafs # cp /boot/initramfs-$(uname -r).img /tmp/initramfs
- 进入/tmp/initramfs并执行
# cd /tmp/initramfs # gzip -dc /boot/initramfs-2.6.32-358.el6.x86_64.img | cpio -id 90556 blocks
上面的命令应该提取 initramfs 图像并创建我们可以调查的目录
# ls -lrt total 15924 -rw-r--r-- 1 root root 16196566 Nov 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 ..
现在我们可以检查和编辑 initramfs 镜像,例如引导日志位于 /var/log 目录中。
我们还可以检查 initramfs 中加载了哪些模块,为此请检查 /lib/modules 或者 /lib/dracut 。
也可以编辑 /etc/ 中的任何文件,例如 /etc/multipath.conf 需要改变了。
- 现在当进行更改以重新创建 initramfs 镜像时执行
# 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
- 现在我们可以将这个 initramfs 镜像(/tmp/initramfs-2.6.32-358.el6.x86_64.img)替换为 /boot/
# cp /tmp/initramfs-2.6.32-358.el6.x86_64.img /boot/
on It Road.com
查看 initramfs 镜像内容
要仅列出 initramfs 镜像文件的内容,我们可以运行:
# 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 Nov 4 2015 . drwxr-xr-x 2 root root 0 Nov 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 ....
日期:2020-09-17 00:11:57 来源:oir作者:oir