文档章节

initrd.img、System.map学习札记

China_OS
 China_OS
发布于 2011/12/14 22:36
字数 749
阅读 1179
收藏 1

       initrd是“initial RAM disk”的简写,是一个启动时加载进内存的小型系统,initrd在内核2.5之前和2.5之后有些不一样,2.5之后的采用cpio格式,一般称为cpio-initrd,本文以2.5以后的版本为例,initrd并不是必须的,如果不想要initrd,就在编译内核时必须把所有模块都静态编译进内核中,这样内核会变得很大,更会引入一些不必要的模块,启动加载会很慢,如果不想内核变得十分臃肿,就要减少打入的模块,这就需要initrd发威了,initrd把内核的启动分成两个阶段,boot loader把内核和initrd加载到内存中,内核在加载真正的文件系统前会先访问内存中的initrd,然后把initrd中的内容释放到rootfs中,initrd解压后里面的目录就像一个小型系统,然后会执行initrd中的init脚本,init脚本主要是加载一些驱动模块,initrd执行完成后开始挂载真正的文件系统,这样系统就成功的启动了。

   怎样解开initrd.img,一般常用以下方法:

   1 采用zcat

  2 采用gunzip


  以上方法即可解开initrd.img文件

 解开后怎样打包initrd.img文件呢 ,采用以下办法:

  

  这样把解开的initrd.img又打包回去了。

  生成一个当前系统的initrd.img文件,在centos下有个工具叫mkinitrd,在debian下此工具改名为mkinitramfs

  不同的内核默认的initrd.img里面的内容以及次级目录结构都有变化,但主要的一级目录没什么变化。

  System.map就像一个索引文件,他是内核内部文件的索引,可以让外部程序知道内核内部文件的位置。System.map索引的是内核中的变量和函数名称,这样可以方便程序员在写程序时可以直接参照这一份Symbol的索引文件,找到所需要的kernel信息,目前较常使用到的内核索引文件有两个,即/proc/kallsyms和system.map,System.map是静态的,在内核编译好安装后就一直没有变化了,每次重新编译内核安装后此文件都会改变,而/proc/kallsyms是动态变化的,随着模块的变化里面的内容是会实时变动的

  vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory”。Linux 支持虚拟内存。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接,内核编译时通过命令make bzImage创建,然后通过:cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz产生。bzImage是压缩的内核映像,需要注意,bzImage是用gzip压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”。 bzImage中的b是“big”意思

© 著作权归作者所有

China_OS
粉丝 428
博文 463
码字总数 520158
作品 0
静安
技术主管
私信 提问
ubuntu命令安装内核源码及升级内核源码

  1.将下载过来linux源代码包(tar.bz2包)解压到/usr/src下。如果你还不知道怎么解压,请google之~解压完毕后可以在/usr/src目录下看到一个linux-2.6.31.6的文件夹   2.转移目录至lin...

蜗牛TT
2012/07/21
187
1
/boot分区空间不足,清理老内核所占空间

没记得从哪里搜到的了。。 经常升级Linux内核,导致更新时警告/boot分区空间不足。这是以为多次升级内核后,导致内核版本太多,清理一下没用的内核文件就行了。命令如下: zht@zht-Ubuntu:~...

王起飞
2017/10/22
0
0
INUX下三个内核文件详解(vmlinuz/initrd.img/System.map)

在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个...

Dicky
2012/08/22
323
0
ubuntu下boot分区空间不足解决办法

很多同学都是在自己的机器上安装双系统,也就是说用来装linux的空间不会很多。在装的过程中都喜欢把boot挂单独挂分区,一般设置100M, 可随着linux升级,往往会攒下好几个内核,某一天系统会...

天外飞鱼
2013/12/16
843
0
Ubuntu 编译 Linux 3.0-rc4

Linux 内核经过漫长的 2.6 版本之后终于主版本+1了,现在已放出 3.0 RC4 版,最近又有消息称 3.0 会比 2.6.39 快,喜欢折腾的你又不介意当小白鼠的话不妨试试下载 Linux Kernel 3.0 的源代码...

鉴客
2011/06/27
2.1K
2

没有更多内容

加载失败,请刷新页面

加载更多

BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
23分钟前
5
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
4
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
5
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
6
1
正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置

正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置 今天要用正则表达式实现匹配一个词出现一次或者不出现的情况,但是又不仅仅是这么简单的需求。先详细说下我这种情况吧,也许有...

Airship
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部