解压Ubuntu的initrd.img的方法

  Ubuntu的initrd.img可以在/boot中找到,通常文件名后面还跟有很长的一串版本号。

  为了保险起见,不直接操作原文件,而是把它复制到自己的家目(home)录中。如果你是用root帐号登录的,家目录就在/root中,如果是用wsxx登录的,家目录一般就在/home/wsxx中,通常登录之后自动就到了家目中。我们把initrd.img复制但家目中进行解压:

  cp /boot/initrd.img-2.6.15-ubuntu-r6 ./initrd.img.gz

  上面这个命令把/boot区中的文件复制到当前目录,并更名为initrd.img.gz。一方面改成短文件名好一点好操作,另一方面加上gz的后缀更清楚表明它原本就是一个gzip压缩出来的文件。http://www.ccthere.com/article/825480

  然后解压:

  gunzip initrd.img.gz

  也可以:http://www.ccthere.com/article/825480

  gzip -d initrd.img.gz

  两者结果是相同的,都是在当前目录得到一个解压后的initrd.img,原来的initrd.img.gz被删除掉了(这也许是linux整洁的优点)。

  现在这个更大的initrd.img要用cpio解开,成为一系列目录和文件。为了不与当前目录中现有的文件搞混,我们有必要新建一个目录,把initrd.img解压到新目录中去。将来把里面的文件修改好之后,还要把所有的目录文件再打包起来:http://www.ccthere.com/article/825480

  mkdir initrd #建立目录

  cd initrd  #进入目录

  cpio -i -d < ../initrd.img #解开上层目录中的initrd.img http://www.ccthere.com/article/825480

  因为已经进入到initrd中,../initrd.img表示上层目录中的initrd.img。

  现在就可以看到initrd中各目录中有很多新的目录和文件了。在这里我们可以窥视到ubuntu是如何装配起来的。可以对其中的内容进行修改了。

  http://www.ccthere.com/article/825480

  修改文本文件没有什么好多说的了。

  修改之后,就是压缩回去,用它来启动,检验是否可以正常启动,是否达到预期的修改目的。先用cpio打包:

  http://www.ccthere.com/article/825480

  find . | cpio -o -H newc > ../myinitrd.img #打包当前目录中的所有目录和文件,到上层目录中的myinitrd.img

  cd .. #回到上层目录

  gzip -9 myinitrd.img #gzip的最高级压缩http://www.ccthere.com/article/825480

  得到的myinitrd.img.gz就是新的Ubuntu启动文件了。

  做到这里,要有必要停下来看看一看,比较一下重新压缩之后的文件,是否和原来的initrd.img.gz差不多大小?都应该是4M多的文件。如果文件大小相差太多,可能就有问题。我用Ubuntu文件解压后在压缩回来,用不同的文件名,最后比较,大小完全一致,心里就踏实了。

  http://www.ccthere.com/article/825480

  再用Gentoo的initramfs文件进行同样方法的操作,2M多的文件解压再压缩回来,只剩下不到1K了。

原文地址:https://www.cnblogs.com/meilong/p/10352523.html

时间: 02-05

解压Ubuntu的initrd.img的方法的相关文章

PHP解压函数gzdecode和gzinflate使用方法

PHP解压函数gzdecode和gzinflate使用方法技术 maybe yes 发表于2015-01-21 00:11 原文链接 : http://blog.lmlphp.com/archives/65  来自 : LMLPHP后院 PHP 5.4 之后新增的 gzip 解压函数 gzdecode 使用方法,gzdecode - Decodes a gzip compressed string,解压一个使用 gzip 压缩的字符串,这是官网手册上面写到的. 目前很多的空间服务商的 PHP 版

window mysql 解压版安装

================================安装版本=======================================mysql安装版本需要用到如下两个软件:提示:.net 4 FrameWork相关的,先安装-->net4_框架.rar提示:microsoft visual c++ 2010 32相关的,安装vcredist2010_x86.rar ================================绿色版本=====================

golang zip 压缩,解压(含目录文件)

每天学习一点go src. 今天学习了zip包的简单使用,实现了含目录的压缩与解压. 写了两个方法,实现了压缩.解压. package ziptest import ( "archive/zip" "io" "os" "strings" ) //压缩文件 //files 文件数组,可以是不同dir下的文件或者文件夹 //dest 压缩文件存放地址 func Compress(files []*os.File, dest str

[转]unzip解压windows zip乱码的处理

[转]unzip解压windows zip乱码的处理 http://blog.sina.com.cn/s/blog_6c9d65a101012gz0.html 朋友从windows传过来的zip文件,我解压之后就乱码,很郁闷. 之前有一个方法,用命令行把文件的编码变成utf8,之后再解压或解压后再转. 具体方法:http://blog.sina.com.cn/s/blog_6c9d65a10100nev8.html 不过很麻烦,今天找到一个更快捷的方法: unzip -O 字符集   xxx.z

ubuntu 下rar解压工具安装方法

1.压缩功能安装 sudo apt-get install rar卸载 sudo apt-get remove rar2.解压功能安装 sudo apt-get install unrar卸载 sudo apt-get remove unrar压缩解压缩.rar 解压:rar x FileName.rar压缩:rar a FileName.rar DirName

ubuntu解压文件命令大全

ubuntu 下rar解压工具安装方法: 压缩功能 安装 sudo apt-get install rar 卸载 sudo apt-get remove rar 解压功能 安装 sudo apt-get install unrar 卸载 sudo apt-get remove unrar ubuntu 下rar解压工具命令详解: 用法:   rar <命令> -<选项1> ….-<选项N>   <操作文档>    <文件…> <@文件列表…

ubuntu解压rar

一般通过默认安装的ubuntu是不能解压rar文件的,只有在安装了rar解压工具之后,才可以解压.其实在ubuntu下安装rar解压工具是非常简 单的,只需要两个步骤就可以迅速搞定. ubuntu 下rar解压工具安装方法: 压缩功能 安装 sudo apt-get install rar 卸载 sudo apt-get remove rar 解压功能 安装 sudo apt-get install unrar 卸载 sudo apt-get remove unrar .rar 解压:rar x

[转]Ubuntu Linux 安装 .7z 解压和压缩文件

原文网址:http://blog.csdn.net/zqlovlg/article/details/8033456 安装方法: sudo apt-get install p7zip-full 解压文件: 7z x manager.7z -r -o /home/xx解释如下:x 代表解压缩文件,并且是按原始目录解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)manager.7z 是压缩文件,这里大家要换成自己的.如果不在当前目录下要带上完整的目录-r

ubuntu 解压 windows 生成的 zip 文件乱码问题

在windows上压缩的文件,是以系统默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 有两种方式解决问题:(建议采用方法一) 1. 通过unzip行命令解压,指定字符集:(用GBK, GB18030也可以) unzip -O CP936 xxx.zip 有趣的是unzip的manual中并无这个选项的说明, unzip --help对这个参数有一行简单的说明,如下: -O CHARSET  specify a cha

对一个deb包的解压、修改、重新打包全过程方法

/*********************************************************************  * Author  : Samson  * Date    : 07/03/2014  * Test platform:  *              3.11.0-12-generic #19-Ubuntu  *              GNU bash, version 4.2.45  * ****************************