|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!人人都晓得initrd是linux启动的内存文件体系,那他外面有都是甚么呢?明天就看看若何翻开这个文件体系!
initrd=initramdisk,是一个启动时存在于内存的文件体系。initrd的最后的目标是为了把kernel的启动分红两个阶段:在kernel中保存起码最根本的启动代码,然后把对各类各样硬件装备的支撑以模块的方法放在initrd中,如许就在启动过程当中可以从initrd所mount的根文件体系中装载须要的模块。如许的一个利益就是在坚持kernel不变的情形下,经由过程修正initrd中的内容就能够灵巧的支撑分歧的硬件。在启动完成的最初阶段,根文件系统可以从新mount到其他装备上。
Linux启动必定要用initrd么?
不用,假如把须要的功效全都编译到内核中(非模块方法),只须要一个内核文件便可,initrd可以或许减小启动内核的体积并增长灵巧性。假如你的内核以模块方法支撑某种文件体系(例如ext3,UFS),而启动阶段的驱动模块(如jbd)放在这些文件体系上,内核是没法读取文件体系的,从而只能经由过程initrd的虚拟文件体系来装载这些模块。
这里有些人会问:既然内核此时不克不及读取文件体系,那内核的文件是怎样装入内存中的呢?谜底很简略,Grub是file-systemsensitive的,可以或许辨认罕见的文件体系。
initrd文件是怎样生成的?
应用mkinitrd敕令,这个敕令实际上是一个Bash剧本
#file`whichmkinitrd`
/sbin/mkinitrd:Bourne-Againshellscripttextexecutable
该剧本先树立一个8M的空文件,并在此上树立一个文件体系,并拷贝响应的的文件。
一个默许RedHatFedoraCore2,它的initrd是甚么内容
(跟体系的硬件相干)?
#fileinitrd-2.6.5-1.358.img
initrd-2.6.5-1.358.img:gzipcompresseddata,fromUnix,maxcompression
#mvinitrd-2.6.5-1.358.imginitrd-2.6.5-1.358.gz
#gzip-dinitrd-2.6.5-1.358.gz
#ll
-rw-r--r--1rootroot8192000Jan1411:32initrd-2.6.5-1.358
#mkdir/mnt/loop
#mount-oloopinitrd-2.6.5-1.356/mnt/loop
…………中央修正此文件体系,等等…………
#umountloop
#cd/boot
#gzip-9initrd-2.6.5-1.356
#mvinitrd-2.6.5-1.356.gzinitrd-2.6.5-1.356.img
办法2:
mvinitrd-2.6.5.13.58.imginitrd.gz
gzip-dinitrd.gz(这时候候会解开文件包。酿成一个initrd的文件)
mount-tprocinitrd/mnt
cd/mnt
ls就能够看到外面的内容了!
欢迎大家来到仓酷云论坛! |
|