從事linux的工作有乙個多月了。在這乙個多月裡,我主要在做與系統安裝相關的工作--建立乙個安裝環境,讓我們的安裝程式可以在這個環境裡面完成安裝系統的工作。在建立這個安裝環境的過程當中,我學習了一點關於linux啟動過程的東西,現在把它分享在這裡,也給我的工作做乙個階段性的總結。
一.livecd-tools的使用
安裝環境和安裝程式都是做在乙個光碟裡的--所謂的livecd。為了做出這樣一張光碟,我首先用livecd-creator這個工具做出乙個iso,然後再把這個iso刻成光碟。livecd-creator是livecd-tools這個軟體包裡的乙個工具,使用這個工具的時候,我需要寫出乙個配置檔案--ks檔案,在這個ks檔案裡面我可以定製我將要做出的安裝環境,這個安裝環境實際上是乙個縮減版的linux作業系統;在ks檔案裡,我可以配置安裝環境將會裝哪些軟體包,selinux的策略,系統的語言環境,時區,分割槽的劃分策略等等資訊;我還可以在%post域來定製系統啟動以後執行的一些服務。
二.linux的啟動過程
我所理解的計算機由power off到使用者介面的過程大體是這樣的:
1.上電,alw plane --> sus plane --> run plane,上電的過程跟ec密切相關;
2.初始化,所有的電都好了以後,會有powergood訊號發出,cpu將執行bios的程式,bios檢查硬體的狀態並初始化硬體;
3.由bios讀取磁碟的主引導扇區,選擇作業系統,並將控制權交給作業系統;
4.接下來就是各個作業系統的啟動過程了;
階段1和2是我以前的工作主要涉及的事情,階段3和4則是我現在的工作所要涉及的,也是我正在學習的東西。在階段3會有乙個叫做bootloader的東西,通過它我們可以選擇我們要啟動哪個作業系統和怎樣啟動這個作業系統。windows系統中,我們有以前xp上的ntldr和現在的win7上的bootmgr。在接觸linux的過程中,我接觸了grub,grub4dos,isolinux,syslinux這樣的bootldr;前兩個用在硬碟上比較多,而後兩個用在光碟上和u盤上比較多。在利用livecd-creator所製作出來的iso中所用的bootloader就是isolinux,isolinux還可以通過配置檔案來設定某些東西,這個後面再說。
在linux系統的啟動過程中,bootloader將會載入kernel和initrd到記憶體中,在2.6以後的kernel中,kernel完成自己的工作後,它將呼叫initrd,由initrd來負責接下來的工作,initrd實際上是乙個小系統,initrd將會執行其目錄下的init指令碼,來完成載入驅動,mount檔案系統等等工作,接著chroot到實際的根目錄下,在這個根目錄下,根據/etc/inittab中配置的runlevel的不同,系統將會執行相應的指令碼,載入相應的服務。這些指令碼位於/etc/rc?.d中(?代表runlevel)。在上面所說的livecd-creator的ks檔案中,我們可以通過指令碼在/etc/rc?.d目錄中新增指令碼或修改已經存在的指令碼來達到我們的目的。
以上就是我目前所理解的linux的啟動過程,其中一些細節還有待繼續研究。
rhel系統啟動過程 Linux 系統啟動過程
按下系統的電源開關,過一會就可以看到linux的登入介面了。你是否曾經想過,從按下電源開關到登入介面出現,這後面到底發生了什麼?linux 系統在啟動過程中,首先是韌體 pc 上大多是 cmos bios 的物理檢測,諸如檢測系統的顯示卡 cpu 和硬碟等,可從系統按下電源後看到此檢測資訊 檢測無問...
rhel系統啟動過程 Linux系統啟動過程簡介
1 bios加電自檢 計算機啟動後,首先會進行韌體bios的自檢,即所謂的post,然後把保持在mbr主引導記錄中的主引導引導程式到記憶體中 2 載入主引導引導程式 mbr 主引導引導程式通過分割槽表查詢活動分割槽,然後將活動分割槽的次引導引導程式從裝置讀入記憶體並執行 3 載入次引導引導程式 gr...
rhel系統啟動過程 Linux 系統啟動過程
linux系統啟動過程 linux啟動時我們會看到許多啟動資訊。核心的引導。執行 init。系統初始化。建立終端 使用者登入系統。init程式的型別 sysv init,centos 5之前,配置檔案 etc inittab。upstart init,centos 6,配置檔案 etc initta...