- 发帖可能变空内容,邪门暂不知所以然
- 『稷下学宫』新认证方式,24年网站打算和努力目标
主题:【原创】如何解开Ubuntu的initrd.img和Gentoo的initramfs -- wsxx
在外链出处这篇文章中说到,Gentoo的initramfs文件中有TRAILER的问题,cpio碰到这些东西就停止了解压。该作者写了一个小小的脚本,用来修理TRAILER:
awk '
BEGIN{RS="07070"}
{
if(/TRAILER\!\!\!/){y=""}else{y=RT}
if(RT!=""){x=x gensub(/^.*TRAILER\!\!\!.*$/,"",1) y}else{x=x $0}
}
END{print x}' $1
这个脚本的正则表达式使用得出神入化,我们恐怕一时难以搞明白,先这么使用着吧,等有空再回来琢磨。
我们使用的时候,可以把以上内容保存为一个文本文件,按照作者的方法,命名为fixcpio,保存在家目录中。要让这个脚本可以被执行,还必须给它加上可执行的属性:
然后就可以用它来做为解包过程中的一环:
cd initrd #进入工作目录
cpio -id <../initramfs-fixed # 解压上层目录的文件到本目录中
initramfs-fixed就是修理过的cpio格式的文件,最后一步就和普通的cpio解包过程相同了。
总结一下,可以把两步合并成一步,如果已经进入工作目录,只要这样就可以了:
同理,修改init之后,再打包回去,只要这样一步就可以了:
重新打包当然就没有修理一说了。在上层家目录里将会得到myinitramfs.gz,这是可以用来启动的文件了。
简化的方法也是用于Ubuntu。
(完)
- 相关回复 上下关系8
🙂【后记】我们应该养成好习惯 3 wsxx 字1127 2006-08-30 10:38:49
🙂很佩服您的钻研精神 1 泰让 字3 2006-09-01 10:18:48
🙂(续二)解压Gentoo中的initramfs的方法 4 wsxx 字1853 2006-08-29 05:56:19
🙂(续三)解压Gentoo中的initramfs的详细方法
😁静心学习,花,呵呵,一花双宝,好爽! 1 住在乡下 字0 2006-08-29 20:48:55
🙂(续一)解压Ubuntu的initrd.img的方法 3 wsxx 字2675 2006-08-28 04:19:13
🙂受教了,花催 1 住在乡下 字0 2006-08-29 01:53:30
🙂很有兴趣,花催下文 1 住在乡下 字0 2006-08-27 21:55:49