Chinaunix首页 | 论坛 | 博客
  • 博客访问: 470083
  • 博文数量: 83
  • 博客积分: 92
  • 博客等级: 民兵
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 13:33
文章分类

全部博文(83)

文章存档

2014年(3)

2013年(59)

2012年(16)

2011年(5)

我的朋友

分类: LINUX

2014-05-02 11:10:43

initrd-x.x.x.img是一个用gzip压缩的文件,这主要是为了制作启动盘,因为启动盘只有1.44M,这个文件的原始大小是几个M,压缩后大概3、4百K。这个文件使用mkinitrd命令产生。


要看到initrd-x.x.x.img里面的内容,首先是解压该文件,由于gunzip解压的文件有扩展名要求,所以:
0、首先把该文件复制到另一个目录下。(此步必须有,以防止下面的步骤会覆盖掉原文件。)
1、将initrd-x.x.x.img改名为initrd-x.x.x.img.gz
2、#>gunzip initrd-x.x.x.img.gz
3、#>file initrd-2.4.21-AS.2smp.img
initrd-2.4.21-AS.2smp.img: Linux rev 1.0 ext2 filesystem data
4、然后mount该文件:
#>mount -o loop initrd-2.4.21-AS.2smp.img /mnt/floppy/
5、去看看有些什么东西:
#>cd /mnt/floppy/
#>ls


使用cpio解压initrd.img
2.6内核中的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 -ov > ../initrd.new.img
gzip ../initrd.new.img
再将其改名拷贝至/boot目录,重启就可以观察修改后的效果。重启后无法成功引导。这是因为生成的initrd.img不对。解决如下:


生成initrd
find . | cpio -o -H newc | gzip > /mnt/sda1/boot/initrd.img-2.6.18-4-686
(注:-H newc 是必须的,否则内核会认为是ramdisk,而不是initramfs)



http://blog.sina.com.cn/s/blog_730edb930100rsml.html
阅读(2643) | 评论(0) | 转发(0) |
0

上一篇:GNU ARM 汇编指令

下一篇:yaffs2utils

给主人留下些什么吧!~~