Centos7系統(tǒng)啟動(dòng)流程 1、uefi或BIOS初始化,開(kāi)始post(power on self test)開(kāi)機(jī)自檢 ? 2、加載MBR到內(nèi)存,這里以BIOS為例,BIOS將會(huì)直接找硬盤(pán)的第一個(gè)扇區(qū),找到前446字節(jié),將MBR加載到內(nèi)存中,MBR將告訴程序下一階段去哪里找系統(tǒng)的grub引導(dǎo)。此階段屬于grub第一階段。grub還有1.5階段和2階段。 分區(qū)符MBR(512字節(jié))三部分組成: 引導(dǎo)程序: 446字節(jié)(bootloader) 分區(qū)表: 64字節(jié) 魔數(shù): 2字節(jié)(55AA) ? 3、GRUB階段 grub第1.5和第2階段,信息默認(rèn)存放在扇區(qū)中,如果使用grub-install生成的第2階段的文件是存放在/boot分區(qū)中的。 為了加載內(nèi)核系統(tǒng),不得不加載/boot分區(qū),而加載/boot分區(qū),要有/boot分區(qū)的驅(qū)動(dòng),/boot分區(qū)驅(qū)動(dòng)是放在/boot分區(qū)中的啊,我們好像進(jìn)入死循環(huán)了,Linux是怎么解決的呢?就是靠放在1.5階段中的數(shù)據(jù),放在第一個(gè)扇區(qū)后的后續(xù)扇區(qū)中,第1.5階段和2階段總共27個(gè)扇區(qū)。 第1.5階段:mbr之后的扇區(qū),識(shí)別stage2所在的分區(qū)上的文件系統(tǒng)。 第2階段:開(kāi)機(jī)啟動(dòng)的時(shí)候看到Grub選項(xiàng)、信息,還有修改GRUB背景等功能都是stage2提供的,stage2會(huì)去讀入/boot/grub/grub.conf或者menu.lst等配置文件。 ? 4、加載內(nèi)核和initramfs模塊 加載內(nèi)核,核心開(kāi)始解壓,啟動(dòng)一些最核心的程序。 為了讓內(nèi)核足夠的輕小,硬件驅(qū)動(dòng)并沒(méi)放在內(nèi)核文件里面。 ? 5、內(nèi)核開(kāi)始初始化,使用systemd來(lái)代替centos6以前的init程序 (1)執(zhí)行initrd.target 包括掛載/etc/fstab文件中的系統(tǒng),此時(shí)掛載后,就可以切換到根目錄了 (2)從initramfs根文件系統(tǒng)切換到磁盤(pán)根目錄 (3)systemd執(zhí)行默認(rèn)target配置 centos7表面是有“運(yùn)行級(jí)別”這個(gè)概念,實(shí)際上是為了兼容以前的系統(tǒng),每個(gè)所謂的“運(yùn)行級(jí)別”都有對(duì)應(yīng)的軟連接指向,默認(rèn)的啟動(dòng)級(jí)別時(shí)/etc/systemd/system/default.target,根據(jù)它的指向可以找到系統(tǒng)要進(jìn)入哪個(gè)模式? 0 ==> runlevel0.target, poweroff.target 有沒(méi)有很眼熟?是的,在CentOS6上是被叫做rc.sysint程序,初始化系統(tǒng)及basic.target準(zhǔn)備操作系統(tǒng) (5)systemd啟動(dòng)multi-user.target下的本機(jī)與服務(wù)器服務(wù) (6)systemd執(zhí)行multi-user.target下的/etc/rc.d/rc.local ? 6、Systemd執(zhí)行multi-user.target下的getty.target及登錄服務(wù) getty.target我們也眼熟,它是啟動(dòng)終端的systemd對(duì)象。如果到此步驟,系統(tǒng)沒(méi)有被指定啟動(dòng)圖形桌面,到此就可以結(jié)束了,如果要啟動(dòng)圖形界面,需要在此基礎(chǔ)上啟動(dòng)桌面程序 ? 7、systemd執(zhí)行g(shù)raphical需要的服務(wù) CentOS6,7啟動(dòng)區(qū)別 系統(tǒng)啟動(dòng)和服務(wù)器守護(hù)進(jìn)程管理器,它不同于centos5的Sysv init,centos6的Upstart(Ubuntu制作出來(lái)),systemd是由Redhat的一個(gè)員工首先提出來(lái)的,它在內(nèi)核啟動(dòng)后,服務(wù)什么的全都被systemd接管,kernel只是用來(lái)管理硬件資源,相當(dāng)于內(nèi)核被架空了,因此linus很不滿(mǎn)意Redhat這種做法。 來(lái)源:http://www./content-3-190201.html |
|
來(lái)自: 印度阿三17 > 《開(kāi)發(fā)》