本文主要是介绍linux系统启动小解:initrd、MBR,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文针对windows和linux的双操作系统。
当按下电源键的那一刻,就算是正式开启了你的linux操作系统。
关于扇区的问题这里不再多说。
紧接着的是你来到了电脑前的启动界面,这里需要你做出选择是进入windows还是linux,然后你选择了ubuntu,这里所发生的事情是:
BIOS在接受到你的答案后开始执行MBR(master boot record),主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。
(由于bootloader的原因,你可以在windows的原生电脑上安装linux,但是你不会想在linux的原生系统里安装windows,因为这样一开机就只会默认直接进入windows)
之后MBR会开始加载grub文件,也就是开始执行boot-loader程序,这个程序会完成对于linux内核以及一个叫做initrd的文件的加载。
initrd所要解决的是一个linux虚拟根目录的问题。
加载磁盘需要驱动,这个驱动所在的文件夹位于根目录下的/lib/module中,驱动加载好后就可以正常挂载磁盘,完成linux环境的搭建。
但是现在是linux并没有办法加载该驱动,因为这个驱动在所要挂载的一个子文件夹里面,但是不加载该驱动就无法挂载这个文件夹。
所以initrd做的就是将生成一个虚拟根目录,他会帮助boot-loader完成一个程序的执行,
没错,也就是各个驱动的加载。
这样就可以正常启动linux环境了。
之后,根据所默认的启动等级runlevel以决定加载/etc/rc*.d中 脚本,完成linux操作系统的配置。
本篇文章仅仅是大致解释一下linux系统启动的过程。想要非常详细的还是建议看专门的参考书,但是还是希望对你有帮助。
这篇关于linux系统启动小解:initrd、MBR的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!