8.2.2 initrd.img映像文件
initrd.img是一个内核映像文件,即"initrd RAM disk"。对vmlinuz内核文件解压之后,在真正的根文件系统(/)启动之前,initrd.img文件会被加载到内存中。initrd.img文件主要用于制作LiveCD及系统初始化的操作,比如加载内核模块、挂载根文件系统(/)等。
1. 制作initrd.img映像文件
方法如下,使用mkinitrd命令来实现:
(1) 使用mkinitrd命令手动生成,如下所示:
1. [root@rhel5 boot]# mkinitrd /boot/initrd-'uname -r'.1.img 'uname -r'
2. [root@rhel5 boot]# ls initrd-2.6.18-8.el5.1.img
3. initrd-2.6.18-8.el5.1.img
(2) 使用file命令来查看initrd.img的文件类型,如下所示:
1. [root@rhel5 boot]# file /boot/ initrd-2.6.18-8.el5.1.img
2. initrd-2.6.18-8.el5.1.img: gzip compressed data,
from Unix, last modified: Sat Jun 13 12:43:08 2009, max compression
2. 查看2.4内核版本的initrd.img映像文件的内容
不同内核版本的映像文件会有一定的差别,在Linux 2.4及之前版本中,initrd.img映像文件是一个基于loop设备的压缩文件。查看initrd.img映像文件的步骤如下:
(1) 创建解压目录:
1. [root@rhel3 boot]#mkdir /tmp/test
2. [root@rhel3 boot]#cp /boot/initrd.'uname -r'.img /tmp
(2) 挂载文件:
1. [root@rhel3 boot]#cd /tmp
2. [root@rhel3 boot]#mv initrd. 'uname -r'.img initrd. 'uname -r'.img.gz
3. [root@rhel3 boot]#gzip -d initrd. 'uname -r'.img.gz
4. [root@rhel3 boot]#mount -o loop initrd.'uname -r'.img /tmp/test
(3) 查看文件内容:
1. [root@rhel3 boot]#cd /tmp/test
2. [root@rhel3 boot]#ls
3. 查看2.6内核版本的initrd.img映像文件的内容
Linux 2.6内核版本中有了initramfs文件系统,通过initramfs文件系统制作映像文件即可,制作出的initrd.img映像文件是一个基于cpio文件格式的gzip压缩文件,不需要挂载即可直接打开,从而查看initrd.img映像文件的内容。具体的查看步骤如下所示:
(1) 创建显示目录,并将映像文件复制到/tmp/test目录下:
1. [root@rhel5 tmp]# cd /tmp/
2. [root@rhel5 tmp]# mkdir /tmp/test
3. [root@rhel5 tmp]# cp /boot/initrd-2.6.18-8.el5.img /tmp/test
4. [root@rhel5 tmp]# cd /tmp/test
(2) 重命名映像文件,并对其解压:
1. [root@rhel5 test]# mv initrd-2.6.18-8.el5.img
initrd-2.6.18-8.el5.img.gz
2. [root@rhel5 test]# file initrd-2.6.18-8.el5.
img.gz//显示映像文件的类型为gzip
3. 压缩文件
4. initrd-2.6.18-8.el5.img.gz: gzip compressed data,
from Unix, last modified: Sun May 24 09:15:32 2009, max compression
5. [root@rhel5 test]# gzip -d initrd-2.6.18-8.el5.img.gz
6. [root@rhel5 test]# file initrd-2.6.18-8.el5.img
//解压缩后,显示映像文件的类
7. 型为cpio归档文件
8. initrd-2.6.18-8.el5.img: ASCII cpio archive (SVR4 with no CRC)
(3) 恢复映像文件,并查看恢复后的文件:
1. [root@rhel5 test]# cpio -i < initrd-2.6.18-8.el5.
img //恢复映像文件
2. 10288 blocks
3. [root@rhel5 test]# ls
//显示映像文件恢复后的内容
4. bin dev etc init initrd-2.6.18-8.el5.img
lib proc sbin sys sysroot
5. [root@rhel5 test]# ls -R
6. .:
7. bin dev etc init initrd-2.6.18-8.el5.img lib
proc sbin sys sysroot
8. ./bin:
9. insmod lvm modprobe nash
10. ./dev:
11. console null ram ram1 systty tty0 tty10 tty12
tty3 tty5 tty7 tty9 ttyS1 ttyS3 mapper ptmx
ram0 rtc tty tty1 tty11 tty2 tty4 tty6
tty8 ttyS0 ttyS2 zero
12. ./dev/mapper:
13. ./etc:
14. lvm
15. ./etc/lvm:
16. lvm.conf
17. ./lib:
18. dm-mirror.ko dm-snapshot.ko ehci-hcd.ko jbd.ko
mptscsih.ko ohci-hcd.ko scsi_transport_spi.ko
uhci-hcd.ko dm-mod.ko dm-zero.ko ext3.ko
mptbase.ko mptspi.ko scsi_mod.ko sd_mod.ko
19. ./proc:
20. ./sys:
21. ./sysroot: