linux挂镜像文件作用是什么,Linux下Initrd映像文件的作用

by falcon & heihaier

2009-08-22

(07:20:11) 黑孩儿:

为什么使用pmon引导不需要initrd.img呢?

(09:51:52) falcon:

initrd.img不是必须的,可以不要的

(09:52:11) falcon:

initrd.img里头也是一个基本的文件系统,可以直接使用硬盘上的rootfs

(10:09:31) 黑孩儿:

那为什么那么多的系统用initrd呢?

(10:16:02) falcon:

呵呵,这个实际上是这样的

(10:16:25) falcon:

initrd的作用是预先加载一些驱动

(10:16:49) falcon:

这些驱动是以模块的形式编译,而不是直接编译在内核里头

(10:17:23) falcon:

例如,我们有一个ide的硬盘,如果相关驱动没有编译到内核里头,那么我们的内核将不能访问该硬盘,也就不能挂载硬盘上的文件系统

(10:17:30) falcon:

那么系统就起不了

(10:17:43) falcon:

initrd就是为了满足这种需求的

(10:18:11) falcon:

目前龙芯上把一些基本的驱动都编译进内核了,没有使用initrd,所以也能启动

(10:19:02) 黑孩儿:

哦。明白了。

(10:20:29) falcon:

在livecd里头,initrd是必须的

(10:21:02) 黑孩儿:

为什么?

(10:22:08) falcon:

这个跟可启动光盘的限制有关系了

(10:22:54) 黑孩儿:

哦。我知道了。

(10:23:12) falcon:

可启动光盘的开头一部分是可以直接访问的,这个地方的大小受限,使得内核的大小受到限制,不能把额外的各种都放进去,所以放到了initrd.img里头

(10:23:28) falcon:

各种驱动

(10:23:32) 黑孩儿:

Initrd 用于加载cd中的映像做根文件系统。

(10:24:16) falcon:

因为livecd一般都支持大量的硬件,即使能够把某一个驱动放到内核里头,其他的就访问不了了,但是放在initrd里头就比较方便了,可以按需加载

(10:25:09) falcon:

另外,initrd适合一些无盘系统,比如有些嵌入式的系统,只有一个很小的flash card,这个时候只要一个内核+一个initrd(ramdisk)就可以了。

(10:25:25) falcon:

有时候可以把内核跟initrd制作成一个img.

(10:27:02) 黑孩儿:

哦。原来是这样。

(10:28:53) falcon:

不是这种系统不能存东西,除非存放在网络上,不过这个东西很适合做一些KIOSK,内容是固定的,呵呵

(10:29:03) falcon:

系统重启后,一切恢复如初

(10:29:45) 黑孩儿:

恩。

(10:30:36) 黑孩儿:

但它启动时都要加载到内存,也不能太大。

(10:31:34) falcon:

补充,龙芯上使用initrd的配置文件写法(把vmlinux和ramdisk.img放到第一个分区的根目录下即可):

timeout 5

default 0

showmenu 1

title Linux 2.6.27 with initrd

kernel /dev/fs/ext2@wd0/boot/vmlinux

initrd /dev/fs/ext2@wd0/boot/ramdisk.img

args console=tty root=/dev/ram0 no_auto_cmd

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值