initrd.img处理
initrd (boot loader initialized RAM disk)
linux2.6 内核支持两种格式的 initrd,一种是 linux2.4 内核那种传统格式的文件系统镜像-image-initrd,它的制作方法同 Linux2.4 内核的 initrd 一样,其核心文件就是 /linuxrc.另外一种格式的 initrd 是 cpio 格式的,这种格式的 initrd 从 linux2.5 起开始引入,使用 cpio 工具生成,其核心文件不再是 /linuxrc,而是 /init,本文将这种 initrd 称为 cpio-initrd.尽管 linux2.6 内核对 cpio-initrd和 image-initrd 这两种格式的 initrd 均支持,但对其处理流程有着显著的区别。
第一种:gzip处理initrd.img
如果initrd.img是经过用gzip -9进行压缩过的ramdisk文件。直接用#mount initrd.img /mnt -o loop会失败,并报告你指定一个文件类型。 要先将其进行解压缩,然后再mount。具体操作如下:
#cd /boot
#mv initrd.img initrd.gz
#gunzip initrd.gz /tmp/initrd
#mv /tmp/initrd /tmp/initrd.img
#mount /tmp/initrd.img /mnt/ -o loop
反过来生成initrd.img过程如下:
#mkcramfs /tmp/ /boot/newinitrd
#gzip -9 /boot/newinitrd
#mv /tmp/newinitrd.gz /tmp/initrd.img
第二种:cpio处理initrd.img
2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包
cp /boot/initrd-2.6.15-prep.img initrd.img.gz
gunzip initrd.img.gz
mkdir initrd
mv initrd.img initrd
cd initrd
cpio -ivmd < initrd.img
通过以上命令就将initrd.img解压了,现在就可以对其进行编辑,完成后使用以下命令重新压制
find . | cpio -o -H newc | gzip > /mnt/sda1/boot/initrd-2.6.15-prep.img
(注:-H newc 是必须的,否则内核会认为是ramdisk,而不是initramfs)
gzip ../initrd.new.img
另外:initrd.*.img解压
今天看到些*.img文件解压的方法,于是尝试了下:
cp initrd.*.img . //拷贝*.img文件到当前文件下
mv initrd.*.img initrd.*.gz
file initrd.*.gz //查看该文件是否为gzip压缩文件
gzip -d initrd.*.gz //解压缩 如解压缩出的文件为initrd.*.i586
cpio -div < initrd.*.i586 //上一步解压出的文件
注意 “<”符号不能少。。
摘自:http://blog.csdn.net/jiazhen/article/details/4022800
相关文章推荐
Linux部分精彩文章推荐
|
initrd.img处理相关推荐
- 制作initrd(2):update-initramfs和mkinitramfs脚本分析
前一篇文章<制作initrd(1):向initrd内部更新驱动模块>提到更新initrd.img镜像时需要运行update-initramfs命令.起初以为是二进制文件,网上胡乱搜索一通发 ...
- linux内核生成img,linux内核探索:定制自己的initrd.img-转载并修改
1. 什么是initrd.img,它有什么用? initrd.img是Linux启 动过程中很重要的一个文件,如果你编译内核时将一部分功能编译为可加载模块.如果系统的一些设备的驱动编译为可加载模,那么 ...
- linux 替换内核 img,查看更改linux内核initrd.img-Go语言中文社区
2.6以前的版本采用的是ext2格式的initrd,2.6及以后是cpio包形式,具体来看下吧 2.6及以后版本内核 解包 查看ubuntu的grub.cfg文件 红框是root文件系统,挂载在根目录 ...
- linux xz 解压initrd.img,2016-8-28 linux基础学习——压缩解压缩及归档 while脚本
文件管理命令----压缩解压缩及归档基本工具 压缩.解压缩命令 压缩格式:gz, bz2, xz, zip, Z 压缩算法:算法不同,压缩比也会不同: 早期 压缩: compress(压缩比很小): ...
- initrd映像文档的作用和制作
RePrint:http://hi.baidu.com/wangpeng1314/blog/item/212e9e1752377f064b90a7f5.html 我们在安装新内核的时候,通常都会编辑l ...
- 解压Ubuntu的initrd.img的方法
Ubuntu的initrd.img可以在/boot中找到,通常文件名后面还跟有很长的一串版本号. 为了保险起见,不直接操作原文件,而是把它复制到自己的家目(home)录中.如果你是用root帐号登录的 ...
- 详解Linux Initrd
在Linux操作系统中,有一项特殊的功能--初始化内存盘INITRD(INITial Ram Disk)技术,而且内核支持压缩的文件系统映像.有了这两项功能,我们可以让Linux系统从小的初始化内存盘 ...
- 【每日一记3.21】initrd
initrd,既initial RAM disk(Linux出事RAM磁盘),实在系统引导过程中挂载的一个临时根文件系统.用来支持两阶段的引导过程.initrd文件中包含了各种可执行的程序和驱动,用来 ...
- 修改initrd做miniLinux
开始试着修改initrd做miniLinux,需要向其中添加命令,慢慢完善.但是用ldd命令查看哪些大串的库再拷贝实在是纠结~ 自动实现一下: 描述: 输入命令后,自动寻找命令位置,将命令拷到对应根位 ...
- fedora利用vmlinuz和initrd制作linux启动u盘,Fedora 17的U盘安装方法
使用U盘来安装Fedora 17,并使用Windows引导.以前写过U盘安装Fedora 16,http://www.linuxidc.com/Linux/2011-11/47296.htm .但是这 ...
最新文章
- jmeter测试webservice接口
- Linux last命令后面的时间
- 关于System.Web.Caching的“未将对象引用设置到对象的实例”错误
- 国内勒索病毒疫情严重 每天十多万台电脑被感染
- SAP-ABAP三种定义嵌套型结构的方法
- Rearrange an array of positive and negative integers
- linq 动态拼接where条件 类似 T_SQL And Or
- HashMap原理剖析
- 谭浩强C语言(第三版)习题5.7
- 前端在H5页面唤起微信支付(H5支付)
- Matlab如何多行添加注释和取消注释
- python条形堆积图_python – 带有中心标签的堆积条形图
- cdrom是什么意思_开启电脑时出现CDROM是什么意思
- 机器学习中的数学——点估计(三):极大似然估计/最大似然估计(Maximum Likelihood Estimate,MLE)
- Revit 项目基点和测量点
- 以index.wxml为例解析WXML
- 微信浏览器网页点击图片缩放
- 道周中学2012年高三地理寒假作业答案
- linux c alarm系统调用入门
- 不使用第三个变量,交换两个变量值
热门文章
- 百度,你拿什么和谷歌争?| 畅言
- 技术人不会学习,35 岁必然要焦虑!
- Google 亚马逊又双叒叕打架了!用户:我只想安静地用产品
- 第 25 章 策略模式
- linux chmod命令数字,菜鸟学Linux命令:chmod命令和数字文件权限
- java调用打印机打印excel linux_手把手教你嵌入式Linux系统驱动hp1020打印机
- java socket 中文乱码_java-Socket接受中文乱码的解决 | 学步园
- python发送邮件有逗号_Python发送邮件
- 学python编程好就业吗_学好python编程就业真的没有压力吗?
- python模型训练框架_Pytorch-Transformers 1.0发布,支持六个预训练框架,含27个预训练模型...