|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令。
1.甚么是initrd
initrd的英文寄义是bootloaderinitializedRAMdisk,就是由bootloader初始化的内存盘。在linux内核启动前,bootloader会将存储介质中的initrd文件加载到内存,内核启动时会在会见真实的根文件体系前先会见该内存中的initrd文件体系。在bootloader设置了initrd的情形下,内核启动被分红了两个阶段,第一阶段先实行initrd文件体系中的某个文件,完成加载驱动模块等义务,第二阶段才会实行真实的根文件体系中的/sbin/init历程。
2.Linux2.4内查对initrd的处置流程
Linux2.4内核的initrd的格局是文件体系镜像文件initrd.img,罕见的文件体系格局为EXT2。
linux2.4内查对initrd的处置流程以下:
1)bootloader把内核和/dev/initrd的内容加载到内存,/dev/initrd是由bootloader初始化的设备,存储着initrd。
2)在内核初始化过程当中,内核把/dev/initrd设备的内容解紧缩并拷贝到/dev/ram0设备上。
3)内核以可读写的体例把/dev/ram0设备挂载为原始的根文件体系。
4)假如/dev/ram0被指定为真实的根文件体系,那末内核跳至最初一步一般启动。
5)实行initrd上的/linuxrc文件,linuxrc一般是一个剧本文件,卖力加载内核会见根文件体系必需的驱动,和加载根文件体系。
6)/linuxrc实行终了,真实的根文件体系被挂载。
7)假如真实的根文件体系存在/initrd目次,那末/dev/ram0将从/挪动到/initrd。不然假如/initrd目次不存在,/dev/ram0将被卸载。
8)在真实的根文件体系长进行一般启动历程,实行/sbin/init。
linux2.4内核的initrd的实行是作为内核启动的一其中间阶段,也就是说initrd的/linuxrc实行今后,内核会持续实行初始化代码。
3.initrd文件的创立及修正
传统initrd的制造历程对照烦琐,必要以下六个步骤
#假定以后目次位于筹办好的initrd文件体系的根目次下
/*初始化内存文件体系块*/
bash#ddif=/dev/zeroof=../initrd.imgbs=512kcount=5
/*创立文件体系*/
bash#mkfs.ext2-F-m0../initrd.img
/*挂载新文件体系*/
bash#mount-text2-oloop../initrd.img/mnt
/*拷贝文件体系所需的/bin、/dev等目次文件*/
bash#cp-r*/mnt
/*卸载文件体系*/
bash#umount/mnt
/*打包为.gz格局*/
bash#gzip../initrd.img
为了复杂起见,我们次要针关于完成关于现有体系中initrd.img文件机制的修正:
体系中的initrd.img文件年夜多位于/boot目次下,此文件为initrd.gz的标记链接。
为完成修正,我们起首将initrd.gz拷贝到用户目次下。
gunzipinitrd.gz解压后天生initrd的文件
fileinitrd可知,initrd:Linuxrev1.0ext2filesystemdata
为了检察其文件内容,mount-oloopinitrd/mnt/initrd(想要挂载的目次,可恣意选择)
cd/mnt/initrd,接上去就可以检察initrd内存文件体系中的内容了
其文件体系的中心事情流程为linuxrc的剧本文件,此剧本完成以下功效:
1)挂载体系启动所必需的设备驱动
2)挂载真实的文件体系
这个时分,我们就可以够对此文件体系举行必需的修正了,假如设置完全的话,在这里也可以构成不亚于Linux的一个新体系呢。。
修正完后,umount/mnt/initrd,所作修正就可以够保留进initrd的文件中
gzipinitrd,天生新的initrd.gz文件
创立软毗连new.initrd.img
修正lilo大概grub的启动项,使之失效
reboot后,就可以启动新的initrd文件体系了
4.nashcommand
nash是initrd中的命令注释器,次要为了运转/linuxrc剧本,其经常使用命令有:
echo:将字符串输入到尺度输入,只是功效上没有体系内里echo那末多。
find:显现指定路径下所婚配称号的文件,即只撑持linux体系里find命令中的-name参数。
losetup:将文件帮定到回环设备/dev/loopdev上
mkdevices:指定创立的块设备文件寄存路径,如:mkdevices/dev
mknod:创立设备文件
mkrootdev:创立根文件体系的设备节点,依据内核传送参数傍边的“root=”来创立对应当设备的节点,节点的称号是/dev/root,它不但可以依据root=/dev/xxx来天生对应的设备节点,还可以在碰着root=LABEL=/的情形下探测一切的硬盘分区,以便找到对应着卷标为/的分区。
pivot_root<newroot><oldroot>:把挂载在<newroot>下的文件体系当做新的/文件体系,而以后的/文件体系被挪动到<oldroot>下
raidautorun:主动检测一切的raid设备
showlabe
12下一页
尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。 |
|