正在加载...

Linux 下压缩和解压.img文件

[ 2010/11/12 10:08 | by selboo ]

一.内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包

cp /boot/initrd-***.img initrd.img.gz
gunzip initrd.img.gz
mkdir initrd
mv initrd.img initrd
cd initrd
cpio -ivmd < initrd.img

通过以上命令就将initrd.img解压了,现在就可以对其进行编辑,完成后使用以下命令重新压制

find . | cpio -cv -o > ../initrd.new.img
gzip ../initrd.new.img

再将其改名拷贝至/boot目录,重启就可以观察修改后的效果
装载自:http://hi.baidu.com/mnkee/blog/item/a2d3d7394d5feefa3a87ce0e.html/>


说明:当cpio无法进行压缩都时候,我们可以尝试使用mount命令,比如install.img文件就无法实现cpio都解压缩,但使用mount命令就可以了。

在经过解压initrd.img和install.img后,我发现基本信息都配置并不在这两个文件中,比较郁闷啊。那个类kickstart究竟在哪里进行配置的呢?赶紧解决问题啊!!!


二.解压cramfs文件
简要说,就是把cramfs文件当成一个分区挂载到本地系统,然后就可以对它进行操作了。

假设要解压的文件是LJD2440-II.cramfs
(1) 将 LJD2440-II.cramfs 拷贝到任意目录下
(2) 在该目录下建立两个文件:
mkdir roms
mkdir tmp
(3)将LJD2440-II.cramfs 挂接到 roms 目录
mount LJD2440-II.cramfs roms –o loop
(4)将 roms 目录下的内容压缩
tar –cvf 1.tar roms
这样将在 roms 的上一级目录产生一个 1.tar 的包
60
(5) 将包解压到 tmp 目录下。
umount roms ;卸载挂载
cd.. ;进入上一级目录
mv 1.tar tmp ;
cd tmp ;
tar –xvf 1.tar ;将打包的根文件系统里的内容解压
rm 1.tar
最后编辑: selboo 编辑于2012/03/22 09:52
Tags: , , ,
,
发表评论
表情
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]