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部分精彩推荐

Linux系统初学者的常见问题解决集结

Linux挂载U

linux 下的挂载

redhatubuntu系统下挂载ntfs文件系统的方法(转载)

疯狂挂载:Linux连接常用外部设备的方法

ubuntu 重装系统备份数据   ubuntu安装kde桌面

ubuntu全局配置文件

ubuntu安装rpm的方法

ubuntu设置全攻略

Linux 常用C函数说明-文件权限控制篇

rpm deb命令集合

rc.local自启动学习

init.drc.d详解 Linux运行时详解

linuxtar gz bz2 tgz z等众多压缩文件的解压方法

tar命令用法详述

使用tar进行磁带备份的命令汇总

LINUX:解压问题tar: Child returned status 1

Linux系统服务自启动设置_Tomcat

Linux操作系统下SSH默认22端口修改方法

Linux启动级别:init 0,1,2,3,4,5,6

linux服务开机启动和运行级别

linux服务自动启动功能

新手学堂:Linux操作系统的启动步骤说明

xinit启动X Window System过程初探

构建小型Linux跟文件系统镜像(Ext2 Ext3

linux内核源码目录结构

简述 Linux 文件系统的目录结构

Linux目录结构及解释

Linux 内核源代码的结构

linux文件系统的目录结构

linux 端口 操作

Linux操作系统下软件的安装与卸载

vim 实用的经验

网络管理:超级详细Tcpdump 的用法

Linux系统下网卡网络配置基础

vsFTPd自架Linux网络安装服务器,以及Redhat局域网安装的解决办法

网络管理:超级详细Tcpdump 的用法

[]tcpdump 教程 用法 使用

Linuxtelnet配置

linux 任务计划 cron

YUM 库的安装

Linux环境变量的设置和查看方法

Linux命令速查手册

关于linux系统中命令的使用详解

简单而常用的shell 命令

rpm常用命令集合

[常用命令]diff

vi指令大全

LINUX/UNIX vi全屏幕编辑器

Linux操作系统Ifconfig命令详细解析

linux top命令详解

chmod命令使用详解

Linux主要shell命令详解

linux ps命令使用详解

Linux下设置和修改IP

Linuxfind用法整理

Fedora 中的 Yum 命令详解

rpm常用命令集合

Linux cat 命令用法

chmod命令详细用法

linux redhat命令大全

Linux操作系统下/etc/hosts文件

LINUX PATH环境变量

如何安装无签名认证的rpm

LINUX关于休眠、待机和睡眠的问题

initrd.img处理

Linux字符集的修改方法

Awk学习笔记

shell取得文件行数6

正则表达式

shell中单引号、双引号、反引号、反斜杠的使用

Linux开机过程(转)

LINUX中注销其他已登陆帐户

学习 Linux LVM

shell 中的参数替换

mkswap 把一个分区格式化成为swap交换区

rsh的配置

修复GRUB

Linux自动注销登录的帐户

linux下的/dev/shm/  以及与swap目录的区别

Redhat Linux配置远程桌面

Linux截图工具import使用说明

LinuxUNIX下磁带机的管理和使用

Linux 磁带机备份完全攻略

gnome桌面环境 kde桌面环境的区别

linux i18n修改,中文版英文版体现

linux命令-locale字符显示

linux命令-locale字符显示

RedHat 8.0软件包组--桌面类

让英文版的LINUX 支持中文显示

Linux  shell内核使用

RedHat Enterprise Linux Oracle 9i的安装配置与调优

Linux下安装mysql后无法启动的解决方法

百度最全的LINUXRedhat学习教程下载帖大全

Redhat linux 安装 gcc编译器,Gcc源码包,rpm包安装方法!

RHCE题库

Redhat Enterprise Linux 6 正式版已经发布!

VMWare虚拟机安装RedHat Linux全过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值