企業(yè)網(wǎng)站經(jīng)典案例合肥今天的最新消息
傳統(tǒng)BIOS啟動流程
1. BIOS
BIOS 啟動,BIOS程序是燒進(jìn)主板自帶的ROM里的,所以無硬盤也可以啟動。BIOS先進(jìn)行自檢,檢查內(nèi)存、顯卡、磁盤等關(guān)鍵設(shè)備是否存在功能異常,會有蜂鳴器匯報錯誤,無錯誤自檢飛快結(jié)束。
硬件自檢完成后,BIOS把控制權(quán)轉(zhuǎn)交給下一階段的啟動程序。需要有一個外部儲存設(shè)備的排序,排在前面的設(shè)備就是優(yōu)先轉(zhuǎn)交控制權(quán)的設(shè)備。這種排序叫做啟動順序??梢栽贐IOS中設(shè)置。
2. 主引導(dǎo)
BIOS按照"啟動順序"讀取第一位的儲存設(shè)備。判斷有沒有MBR,如果有就讀取。MBR:存儲設(shè)備中的第一個扇區(qū),磁盤最前面的512Byte,稱為“主引導(dǎo)扇區(qū)”(Master boot record,縮寫為MBR)
MBR很小,只有512字節(jié),存放程序很小,其主要作用是:告訴計算機(jī)在哪一個位置去找操作系統(tǒng)。
MBR由三個部分組成:調(diào)用操作系統(tǒng)的機(jī)器碼、硬盤分區(qū)表(Partition table)、主引導(dǎo)記錄簽名(0x55和0xAA)(用于判斷這段程序是不是主引導(dǎo),不是的話就按啟動順序往下繼續(xù)找)
3. 硬盤啟動
這時,計算機(jī)的控制權(quán)就要轉(zhuǎn)交給硬盤的某個分區(qū)了。分成三種情況:情況A:卷引導(dǎo)記錄、情況B:擴(kuò)展分區(qū)和邏輯分區(qū)、情況C:啟動管理器。
Linux環(huán)境中,目前最流行的啟動管理器是Grub。Windows是Windows Boot Manager。
4. 操作系統(tǒng)
控制權(quán)轉(zhuǎn)交給操作系統(tǒng)后,操作系統(tǒng)的內(nèi)核首先被載入內(nèi)存。最后完成所有啟動流程。
UEFI啟動
UEFI:UEFI 是 BIOS 的升級版本,是一種更現(xiàn)代的固件接口,逐漸取代傳統(tǒng) BIOS?,F(xiàn)在的華碩主板的BIOS界面都很好看,還能支持鼠標(biāo)操作,這就是UEFI了。
UEFI 使用 GPT 分區(qū)標(biāo)準(zhǔn),取代了舊的 MBR 標(biāo)準(zhǔn)。這讓 UEFI 可以從超過 2TB 的大容量硬盤啟動,而且理論上也沒有磁盤大小限制。它支持 32 位和 64 位系統(tǒng)啟動,并提供了安全啟動 (Secure Boot) 等功能,不僅啟動速度更快,還能檢測惡意軟件,確保啟動過程未被篡改。
UEFI與BIOS的主要區(qū)別:
區(qū)別 | BIOS | UEFI |
---|---|---|
分區(qū)表 | 使用主引導(dǎo)記錄 (MBR) | 使用全局唯一標(biāo)識分區(qū)表 (GPT) |
數(shù)據(jù)存儲 | 存儲在主板的 BIOS 芯片上 | 存儲在存儲設(shè)備的 EFI 文件中 |
運(yùn)行模式 | 只能在 16 位模式下工作 | 可以在 64 位模式下運(yùn)行,可尋址內(nèi)存更大 |
用戶界面 | 僅支持鍵盤導(dǎo)航的文本界面 | 提供更直觀的圖形界面,支持鼠標(biāo)操作 |
網(wǎng)絡(luò)支持 | 無網(wǎng)絡(luò)功能 | 有些具備網(wǎng)絡(luò)功能,可在線更新固件,遠(yuǎn)程排除故障 |
UEFI 最終也是需要啟動一個引導(dǎo)程序(如 GRUB 或 Windows Boot Manager)來完成操作系統(tǒng)的啟動過程。
在啟動了GRUB之后,是可以編輯啟動配置項的。比如可以禁用一些驅(qū)動(例如nouvea)來解決bug。
UEFI是怎么處理雙系統(tǒng)的
在UEFI系統(tǒng)的硬盤上,有一個專門的分區(qū)叫做 EFI 系統(tǒng)分區(qū)(ESP),這里存放著每個操作系統(tǒng)的引導(dǎo)程序,比如 Windows 的 bootmgfw.efi
和 Linux 的 grubx64.efi
。
如果你的電腦裝了雙系統(tǒng),比如 Windows 和 Linux,當(dāng)你安裝操作系統(tǒng)時,它們都會在 ESP 中添加自己的引導(dǎo)程序,同時告訴 UEFI 固件這個啟動文件的位置。Windows 會創(chuàng)建自己的引導(dǎo)程序 bootmgfw.efi
,默認(rèn)直接啟動 Windows。而 Linux 安裝時,通常會使用 GRUB 作為引導(dǎo)程序,并把 GRUB 設(shè)置為默認(rèn)的啟動項。GRUB 很強(qiáng)大,它不僅能加載 Linux 系統(tǒng),還能自動檢測到 Windows 的存在,并在啟動時提供一個菜單,讓你選擇啟動 Windows 或 Linux。
如果安裝順序是先裝 Windows 再裝 Linux,Linux 的 GRUB 通常會接管啟動流程。這意味著當(dāng)你開機(jī)時,電腦會優(yōu)先加載 GRUB,然后你可以從菜單里選擇想進(jìn)入的操作系統(tǒng)。但如果 Windows 后來更新系統(tǒng),它可能會覆蓋 GRUB,把自己設(shè)為默認(rèn)啟動項。這時你會發(fā)現(xiàn)電腦直接進(jìn)入 Windows,而看不到 GRUB 的菜單。這種情況下,可以通過調(diào)整 UEFI 的啟動順序,或者用 Linux 的工具(比如 sudo update-grub
)重新修復(fù)啟動菜單。
如果先裝 Linux 再裝 Windows,大概率會把 Linux 的引導(dǎo)程序(通常是 GRUB)覆蓋掉,導(dǎo)致開機(jī)時直接進(jìn)入 Windows 系統(tǒng),而無法看到 Linux 的啟動菜單。這是因為 Windows 安裝程序在處理引導(dǎo)設(shè)置時,不會主動識別或保留其他操作系統(tǒng)的引導(dǎo)程序。Windows 安裝完成后,會覆蓋原來的引導(dǎo)加載程序(GRUB),導(dǎo)致無法直接啟動 Ubuntu。這時需要修復(fù) GRUB 來恢復(fù)雙系統(tǒng)啟動選項。可以使用 Ubuntu 安裝介質(zhì)(U盤)啟動計算機(jī),進(jìn)入 Ubuntu 的 “試用” 模式(在安裝界面選擇 “試用 Ubuntu” 而不是 “安裝 Ubuntu”)。然后打開終端,使用命令來重新安裝和修復(fù) GRUB。例如,在終端中輸入 “sudo mount /dev/sdaX/mnt”(其中 sdaX 是 Ubuntu 系統(tǒng)分區(qū)的設(shè)備名稱,需要根據(jù)實際情況替換),將 Ubuntu 分區(qū)掛載到 /mnt 目錄下,接著輸入 “sudo grub - install – root - directory=/mnt/dev/sda”(假設(shè)硬盤設(shè)備名稱是 sda)來重新安裝 GRUB,這樣就可以恢復(fù)雙系統(tǒng)啟動選項,在啟動時可以選擇進(jìn)入 Ubuntu 或者 Windows。