檢視Linux2.6核心cpio格式的initrd鏡像檔案之備忘錄
蔣冬冬 2009-5-24
[email protected]
1. 将initrd解壓
gunzip initrd-2.6.16.37-0.9.img
2. 挂載initrd,
mount -o loop initrd-2.6.16.37-0.9-smp /mnt/loop
卻發現不能挂載,指令行顯示了如下錯誤資訊:
mount: you must specify the filesystem type
Linux2.6的initrd有兩種形式,一種是傳統的image格式(Linux 2.4核心使用這種格式),那時的initrd通常有個字尾,即.img.而另一種是cpio格式的,可以用file指令察看檔案類型
$file initrd-2.6.16.37-0.9.img
initrd-2.6.16.37-0.9.img: ASCII cpio archive (SVR4 with no CRC)
顯然是cpio格式,對于這種格式,不需要mount,直接解壓即可檢視
對于傳統的img格式檔案,mount -o loop initrd-2.6.16.37-0.9-smp /mnt/loop即可。
$mkdir rootfs
$cd rootfs
$cpio -id< ../initrd-2.6.16.37-0.9-smp
cpio的-i參數表示解壓,或者說extract.
這樣,在目前目錄下(rootfs中)就能看到解開來的initrd包了.