装Ubuntu操作系统的电脑
lsinitramfs工具
gzip工具
cpio工具
file工具
通过file命令可以得知相应的文件格式为:
xinu@slam:~$ file /boot/initrd.img-3.13.6
/boot/initrd.img-3.13.6: gzip compressed data, from Unix, last modified: Thu Mar 27 20:19:38 2014
可以看到是GZIP文件,我们对其解压:
xinu@slam:~$ gzip -d /boot/initrd.img-3.13.6
gzip: initrd.img-3.13.6: unknown suffix -- ignored
按提示是后缀的问题,那么接下来复制一份并修改下文件名:
xinu@slam:~$ cp /boot/initrd.img-3.13.6 initrd.img.gz
修改文件名后再次解压:
xinu@slam:~$ gzip -d initrd.img.gz
解压出来的文件是initrd.img,还被包了一层,我们看下它是什么内涵:
xinu@slam:~$ file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)
原来是cpio格式的,我们先创建一个目录:
xinu@slam:~$ mkdir initrd
再进入该目录:
xinu@slam:~$ cd initrd/
再次解压:
xinu@slam:~/initrd$ cpio -i < ../initrd.img
此时会有如下内容输出:
1038959 blocks
成功了,我们接下来看看解压出来的是什么?
xinu@slam:~/initrd$ ls
bin conf etc init lib lib64 run sbin scripts
OK,我们终于看到了initrd.img的真面目了。
这也太麻烦了,有时候我不想解压,我只是想知道里面有什么文件,这要怎么办?
那么在Ubuntu下,我发现了有lsinitramfs这一命令,该命令如何使用呢?
且看HELP:
xinu@slam:~/initrd$ lsinitramfs --help
Usage: lsinitramfs
那么这命令也太简单了吧,我们试试看吧:
xinu@slam:~$ lsinitramfs /boot/initrd.img-3.13.6
此时一片狂刷而过,没事,我们可以使用管道和more:
xinu@slam:~$ lsinitramfs /boot/initrd.img-3.13.6 | more
此时看得舒服多了,只需按“空格”或“Enter”来按页或按行刷了。
但我们仅仅看到完成的路径和文件名,属性呢?
lsinitramfs还可以带-l参数,可以查看到完整的属性,相当于ls加上-l参数后的效果。
更详细的帮助信息可以使用man lsinitramfs命令查看。END