Linux的啟動方式可以從軟碟或硬碟引導Linux。 從軟碟啟動Linux時,開機磁區包含的代碼唯讀前數百個數據塊(當然,依賴于內核的大小)到預定的記憶體位置。 Linux引導軟碟上,沒有系統,內核存在連續的磁區中,因為這樣簡化了引導過程。
軟碟引導Linux
Linux載入後,它初始化硬體和裝置驅動程式,然後運行 init。 init可啟動其他進程以HTTP://www.aliyun.com/zixun/aggregation/18736.html">允許使用者登錄並做其他事情。 這部分的細節在下面討論。
為了關閉一個Linux系統,首先所有進程被告知結束(這使他們關閉所有檔,完成必要的其他事情,使之整齊地結束),然後unmount 檔案系統和交換分區,最後列印可以關掉電源的資訊到主控台。 如果沒有遵循正確的過程,可怕的事情可能發生。 最重要的檔案系統緩衝Cache可能沒有回寫,這意味著其中的所有資料將丟失,磁片檔案系統不完整,並可能不可用。
硬碟引導
從硬碟引導時,主引導記錄的代碼檢查分區表(也在主引導記錄區中),確認使用中的磁碟分割(標記為可引導的分區),從該分區讀開機磁區,然後啟動該開機磁區的代碼。 該分區的開機磁區的代碼與軟碟所做的相同:從該分區讀入內核並啟動。 但細節不同,因為一般只給內核映射做一個單獨的分區是沒什麼用的,所以分區開機磁區中的代碼不能只順序地讀磁片,它必須找到檔案系統並把它們放在哪些磁區中。 有幾個方法可解決這個問題,但最通常的方法是使用GRUB。
用GRUB引導時,它讀入並引導預設內核。 也可以設置GRUB,使之能引導若干個內核之一,甚至其他作業系統。 也可以在引導時讓使用者選擇引導哪個內核或作業系統。
對比
從軟碟和硬碟啟動各有優勢,但通常從硬碟啟動較好,因為這避免了關於軟碟的衝突 ,而且快速。 然而,安裝相同從硬碟啟動可能有更多的麻煩,因此很多人先用軟碟引導,然後當系統工作很好後,再安裝GRUB從硬碟引導。
Linux內核被讀入記憶體後,才代表真正啟動了Linux,概述如下:
Linux內核是被壓縮安裝的,所以它首先得解壓自己。 內核映射開頭包括一個解壓的小程式。
然後,內核檢查還有什麼其他硬體(硬碟、軟碟、網卡...... ),並配置適當的裝置驅動程式。 同時,輸出查找結果的資料。 例如,我引導時得到類似如下的資料。
Loading Linux.
Console: colour EGA+ 80x25, 8 Virtual consoles
Serial driver version 3.94 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
lp_init: lp1 exists (0), using polling driver
Memory: 7332k/8192k available (300k kernel code, 384k reserved, 176k data)
Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
Loopback deVice init
Warning WD8013 board not found at i/o = 280.
Math coprocessor using irq13 error reporting.
Partition check:
hda: hda1 hda2 hda3
VFS: Mounted root (ext filesystem).
Linux version 2.4.18-12Thiz (root@haven) 05/01/2002 14:12:20