此頁面是免費瀏覽的,沒有煩人的外部廣告;然而,我的確花了時間準備,網(wǎng)站托管也花了錢。如果您發(fā)現(xiàn)此頁面幫到了您,請考慮進行小額捐款[1],以幫助保持網(wǎng)站的運行。謝謝! 原著于 2013/10/19;最后修改于 2015/3/16
引言
幾年來,一種新的固件技術(shù)悄然出現(xiàn),而大多數(shù)普通用戶對此并無所知。該技術(shù)被稱為 可擴展固件接口[2](EFI), 或更新一些的統(tǒng)一可擴展固件接口(Unified EFI,UEFI,本質(zhì)上是 EFI 2.x),它已經(jīng)開始替代古老的 基本輸入/輸出系統(tǒng)[3](BIOS)固件技術(shù),有經(jīng)驗的計算機用戶或多或少都有些熟悉 BIOS。
本頁面是給 Linux 用戶使用 EFI 技術(shù)的一個快速介紹,其中包括有關(guān)開始將 Linux 安裝到此類計算機上的建議。不幸的是,EFI 是一個龐雜的話題;EFI 軟件本身是復雜的,許多實現(xiàn)有系統(tǒng)特定的怪異行為甚至是缺陷。因此,我無法在一個頁面上描述在 EFI 計算機上安裝和使用 Linux 的一切知識。我希望你能將本頁面作為一個有用的起點,不管怎么說,每個部分以及末尾“參考文獻”部分的鏈接可以指引你找到更多的文檔。
你的計算機是否使用 EFI 技術(shù)?
EFI 是一種固件,意味著它是內(nèi)置于計算機中處理低級任務(wù)的軟件。最重要的是,固件控制著計算機的引導過程,反過來說這代表著基于 EFI 的計算機與基于 BIOS 的計算機的引導過程不同。(有關(guān)此規(guī)律的例外之處稍后再說。)這種差異可能使操作系統(tǒng)安裝介質(zhì)的設(shè)計超級復雜化,但是一旦安裝好并運行之后,它對計算機的日常操作幾乎沒有影響。請注意,大多數(shù)制造商使用術(shù)語 “BIOS” 來表示他們的 EFI。我認為這種用法很混亂,所以我避免了;在我看來,EFI 和 BIOS 是兩種不同類型的固件。
注意:蘋果公司的 Mac 使用的 EFI 在許多方面是不同尋常的。盡管本頁面的大部分內(nèi)容同樣適用于 Mac,但有些細節(jié)上的出入,特別是在設(shè)置 EFI 引導加載程序的時候。這個任務(wù)最好在 OS X 上進行,使用 Mac 的 bless utility[4]工具,我不在此做過多描述。
自從 2006 年第一次推出以來,EFI 已被用于基于英特爾的 Mac 上。從 2012 年底開始,大多數(shù)安裝 Windows 8 或更高版本系統(tǒng)的計算機就已經(jīng)默認使用 UEFI 啟動,實際上大多數(shù) PC 從 2011 年中期就開始使用 UEFI,雖然默認情況下它們可能無法以 EFI 模式啟動。2011 年前銷出的 PC 也有一些支持 EFI,盡管它們大都默認使用 BIOS 模式啟動。
如果你不確定你的計算機是否支持 EFI,則應(yīng)查看固件設(shè)置實用程序和參考用戶手冊關(guān)于 EFI、UEFI 以及 legacy booting 的部分。(可以通過搜索用戶手冊的 PDF 文件來快速了解。)如果你沒有找到類似的參考,你的計算機可能使用老式的(“l(fā)egacy”) BIOS 引導;但如果你找到了這些術(shù)語的參考,幾乎可以肯定它使用了 EFI 技術(shù)。你還可以嘗試只有 EFI 模式的引導加載器的安裝介質(zhì)。使用 rEFInd[5] 制作的 USB 閃存驅(qū)動器或 CD-R 鏡像是用來測試不錯的選擇。
在繼續(xù)之前,你應(yīng)當了解大多數(shù) x86 和 x86-64 架構(gòu)的計算機上的 EFI 都包含一個叫做兼容支持模塊(CSM)的組件,這使得 EFI 能夠使用舊的 BIOS 風格的引導機制來引導操作系統(tǒng)。這會非常方便,因為它向后兼容;但是這樣也導致一些意外情況的發(fā)生,因為計算機不論以 EFI 模式引導還是以 BIOS (也稱為 CSM 或 legacy)模式引導,在控制時沒有標準的使用規(guī)范和用戶界面。特別地,你的 Linux 安裝介質(zhì)非常容易意外的以 BIOS/CSM/legacy 模式啟動,這會導致 Linux 以 BIOS/CSM/legacy 模式安裝。如果 Linux 是唯一的操作系統(tǒng),也可以正常工作,但是如果與在 EFI 模式下的 Windows 組成雙啟動的話,就會非常復雜。(反過來問題也可能發(fā)生。)以下部分將幫助你以正確模式引導安裝程序。如果你在閱讀這篇文章之前就已經(jīng)以 BIOS 模式安裝了 Linux,并且希望切換引導模式,請閱讀后續(xù)章節(jié),“哎呀:將傳統(tǒng)模式下安裝的引導轉(zhuǎn)為 EFI 模式下的引導”。
UEFI 的一個附加功能值得一提:安全啟動。此特性旨在最大限度的降低計算機受到 boot kit 病毒感染的風險,這是一種感染計算機引導加載程序的惡意軟件。Boot kits 很難檢測和刪除,阻止它們的運行刻不容緩。微軟公司要求所有帶有支持 Windows 8 標志的臺式機和筆記本電腦啟用 安全啟動。這一配置使 Linux 的安裝變得復雜,盡管有些發(fā)行版可以較好的處理這個問題。不要將安全啟動和 EFI 或 UEFI 混淆;支持 EFI 的計算機不一定支持 安全啟動,而且支持 EFI 的 x86-64 的計算機也可以禁用 安全啟動。微軟同意用戶在 Windows 8 認證的 x86 和 x86-64 計算機上禁用安全啟動功能;然而對裝有 Windows 8 的 ARM 計算機而言卻相反,它們必須不允許用戶禁用 安全啟動。幸運的是,基于 ARM 的 Windows 8 計算機目前很少見。我建議避免使用它們。
你的發(fā)行版是否支持 EFI 技術(shù)?
大多數(shù) Linux 發(fā)行版已經(jīng)支持 EFI 好多年了。然而,不同的發(fā)行版對 EFI 的支持程度不同。大多數(shù)主流發(fā)行版(Fedora,OpenSUSE,Ubuntu 等)都能很好的支持 EFI,包括對安全啟動的支持。另外一些“自行打造”的發(fā)行版,比如 Gentoo,對 EFI 的支持較弱,但它們的性質(zhì)使其很容易添加 EFI 支持。事實上,可以向任意 Linux 發(fā)行版添加 EFI 支持:你需要安裝 Linux(即使在 BIOS 模式下),然后在計算機上安裝 EFI 引導加載程序。有關(guān)如何執(zhí)行此操作的信息,請參閱“哎呀:將傳統(tǒng)模式下安裝的引導轉(zhuǎn)為 EFI 模式下的引導”部分。
你應(yīng)當查看發(fā)行版的功能列表,來確定它是否支持 EFI。你還應(yīng)當注意你的發(fā)行版對安全啟動的支持情況,特別是如果你打算和 Windows 8 組成雙啟動。請注意,即使正式支持安全啟動的發(fā)行版也可能要求禁用此功能,因為 Linux 對安全啟動的支持通常很差勁,或者導致意外情況的發(fā)生。
準備安裝 Linux
下面幾個準備步驟有助于在 EFI 計算機上 Linux 的安裝,使其更加順利:
1、 升級固件
有些 EFI 是有問題的,不過硬件制造商偶爾會發(fā)布其固件的更新。因此我建議你將固件升級到最新可用的版本。如果你從論壇的帖子知道自己計算機的 EFI 有問題,你應(yīng)當在安裝 Linux 之前更新它,因為如果安裝 Linux 之后更新固件,會有些問題需要額外的操作才能解決。另一方面,升級固件是有一定風險的,所以如果制造商提供了 EFI 支持,最好的辦法就是按它們提供的方式進行升級。
2、 了解如何使用固件
通常你可以通過在引導過程之初按 Del 鍵或功能鍵進入固件設(shè)置實用程序。按下開機鍵后盡快查看相關(guān)的提示信息,或者嘗試每個功能鍵。類似的,ESC 鍵或功能鍵通??梢赃M入固件的內(nèi)置引導管理器,可以選擇要進入的操作系統(tǒng)或外部設(shè)備。一些制造商把這些設(shè)置隱藏的很深。在某些情況下,如此頁面[6]所述,你可以在 Windows 8 內(nèi)做到這些。
3、調(diào)整以下固件設(shè)置
快速啟動 — 此功能可以通過在硬件初始化時使用快捷方式來加快引導過程。這很好用,但有時候會使 USB 設(shè)備不能初始化,導致計算機無法從 USB 閃存驅(qū)動器或類似的設(shè)備啟動。因此禁用快速啟動可能有一定的幫助,甚至是必須的;你可以讓它保持激活,而只在 Linux 安裝程序啟動遇到問題時將其停用。請注意,此功能有時可能會以其它名字出現(xiàn)。在某些情況下,你必須啟用 USB 支持,而不是禁用快速啟動功能。
安全啟動 — Fedora,OpenSUSE,Ubuntu 以及其它的發(fā)行版官方就支持安全啟動;但是如果在啟動引導加載程序或內(nèi)核時遇到問題,可能需要禁用此功能。不幸的是,沒辦法具體描述怎么禁用,因為不同計算機的設(shè)置方法也不同。請參閱我的安全啟動頁面[7]獲取更多關(guān)于此話題的信息。
注意: 一些教程說安裝 Linux 時需要啟用 BIOS/CSM/legacy 支持。通常情況下,這樣做是錯的。啟用這些支持可以解決啟動安裝程序涉及的問題,但也會帶來新的問題。以這種方式安裝的教程通??梢酝ㄟ^“引導修復”來解決這些問題,但最好從一開始就做對。本頁面提供了幫助你以 EFI 模式啟動 Linux 安裝程序的提示,從而避免以后的問題。
CSM/legacy 選項 — 如果你想以 EFI 模式安裝,請關(guān)閉這些選項。一些教程推薦啟用這些選項,有時這是必須的 —— 比如,有些附加視頻卡需要在固件中啟用 BIOS 模式。盡管如此,大多數(shù)情況下啟用 CSM/legacy 支持只會無意中增加以 BIOS 模式啟動 Linux 的風險,但你并不想這樣。請注意,安全啟動和 CSM/legacy 選項有時會交織在一起,因此更改任一選項之后務(wù)必檢查另一個。
4、 禁用 Windows 的快速啟動功能
這個頁面[8]描述了如何禁用此功能,不禁用的話會導致文件系統(tǒng)損壞。請注意此功能與固件的快速啟動不同。
5、 檢查分區(qū)表
使用 GPT fdisk[9]、parted 或其它任意分區(qū)工具檢查磁盤分區(qū)。理想情況下,你應(yīng)該創(chuàng)建一個包含每個分區(qū)確切起點和終點(以扇區(qū)為單位)的紙面記錄。這會是很有用的參考,特別是在安裝時進行手動分區(qū)的時候。如果已經(jīng)安裝了 Windows,確定可以識別你的 EFI 系統(tǒng)分區(qū)(ESP)[10],它是一個 FAT 分區(qū),設(shè)置了“啟動標記”(在 parted 或 Gparted 中)或在 gdisk 中的類型碼為 EF00。
安裝 Linux
大部分 Linux 發(fā)行版都提供了足夠的安裝說明;然而我注意到了在 EFI 模式安裝中的幾個常見的絆腳石:
確保使用正確位深的發(fā)行版 — EFI 啟動加載器和 EFI 自身的位深相同。現(xiàn)代計算機通常是 64 位,盡管最初幾代基于 Intel 的 Mac、一些現(xiàn)代的平板電腦和變形本、以及一些鮮為人知的電腦使用 32 位 EFI。雖然可以將 32 位 EFI 引導加載程序添加至 32 位發(fā)行版,但我還沒有遇到過正式支持 32 位 EFI 的 Linux 發(fā)行版。(我的 《在 Linux 上管理 EFI 引導加載程序[11]》 一文概述了引導加載程序,而且理解了這些原則你就可以修改 32 位發(fā)行版的安裝程序,盡管這不是一個初學者該做的。)在 64 位 EFI 的計算機上安裝 32 位發(fā)行版最讓人頭疼,我不準備在這里描述這一過程;在具有 64 位 EFI 的計算機上,你應(yīng)當使用 64 位的發(fā)行版。
正確準備引導介質(zhì) — 將 .iso 鏡像傳輸?shù)?USB 閃存驅(qū)動器的第三方工具,比如 unetbootin,在創(chuàng)建正確的 EFI 模式引導項時經(jīng)常失敗。我建議按照發(fā)行版維護者的建議來創(chuàng)建 USB 閃存驅(qū)動器。如果沒有類似的建議,使用 Linux 的 dd 工具,通過執(zhí)行 dd if=image.iso of=/dev/sdc
在識別為 /dev/sdc
的 USB 閃存驅(qū)動器上創(chuàng)建一個鏡像。至于 Windows,有 WinDD[12] 和 dd for windows[13],但我從沒測試過它們。請注意,使用不兼容 EFI 的工具創(chuàng)建安裝介質(zhì)是錯誤的,這會導致人們進入在 BIOS 模式下安裝然后再糾正它們的誤區(qū),所以不要忽視這一點!
備份 ESP 分區(qū) — 如果計算機已經(jīng)存在 Windows 或者其它的操作系統(tǒng),我建議在安裝 Linux 之前備份你的 ESP 分區(qū)。盡管 Linux 不應(yīng)該 損壞 ESP 分區(qū)已有的文件,但似乎這時不時發(fā)生。發(fā)生這種事情時備份會有很大用處。只需簡單的文件級的備份(使用 cp,tar,或者 zip 類似的工具)就足夠了。
以 EFI 模式啟動 — 以 BIOS/CSM/legacy 模式引導 Linux 安裝程序的意外非常容易發(fā)生,特別是當固件啟用 CSM/legacy 選項時。下面一些提示可以幫助你避免此問題:
進入 Linux shell 環(huán)境執(zhí)行 ls /sys/firmware/efi
驗證當前是否處于 EFI 引導模式。如果你看到一系列文件和目錄,表明你已經(jīng)以 EFI 模式啟動,而且可以忽略以下多余的提示;如果沒有,表明你是以 BIOS 模式啟動的,應(yīng)當重新檢查你的設(shè)置。
使用固件內(nèi)置的引導管理器(你應(yīng)該已經(jīng)知道在哪;請參閱“了解如何使用固件”)使之以 EFI 模式啟動。一般你會看到 CD-R 或 USB 閃存驅(qū)動器兩個選項,其中一個選項包括 EFI 或 UEFI 字樣的描述,另一個不包括。使用 EFI/UEFI 選項來啟動介質(zhì)。
禁用安全啟動 - 即使你使用的發(fā)行版官方支持安全啟動,有時它們也不能生效。在這種情況下,計算機會靜默的轉(zhuǎn)到下一個引導加載程序,它可能是啟動介質(zhì)的 BIOS 模式的引導加載程序,導致你以 BIOS 模式啟動。請參閱我的安全啟動的相關(guān)文章[14]以得到禁用安全啟動的相關(guān)提示。
如果 Linux 安裝程序總是無法以 EFI 模式啟動,試試用我的 rEFInd 引導管理器[15] 制作的 USB 閃存驅(qū)動器或 CD-R。如果 rEFInd 啟動成功,那它保證是以 EFI 模式運行的,而且在基于 UEFI 的 PC 上,它只顯示 EFI 模式的引導項,因此若您啟動到 Linux 安裝程序,則應(yīng)處于 EFI 模式。(但是在 Mac 上,除了 EFI 模式選項之外,rEFInd 還顯示 BIOS 模式的引導項。)
準備 ESP 分區(qū) — 除了 Mac,EFI 使用 ESP 分區(qū)來保存引導加載程序。如果你的計算機已經(jīng)預裝了 Windows,那么 ESP 分區(qū)就已存在,可以在 Linux 上直接使用。如果不是這樣,那么我建議創(chuàng)建一個大小為 550 MB 的 ESP 分區(qū)。(如果你已有的 ESP 分區(qū)比這小,別擔心,直接用就行。)在此分區(qū)上創(chuàng)建一個 FAT32 文件系統(tǒng)。如果你使用 Gparted 或者 parted 準備 ESP 分區(qū),記得給它一個“啟動標記”。如果你使用 GPT fdisk(gdisk,cgdisk 或 sgdisk)準備 ESP 分區(qū),記得給它一個名為 EF00 的類型碼。有些安裝程序會創(chuàng)建一個較小的 ESP 分區(qū),并且設(shè)置為 FAT16 文件系統(tǒng)。盡管這樣能正常工作,但如果你之后需要重裝 Windows,安裝程序會無法識別 FAT16 文件系統(tǒng)的 ESP 分區(qū),所以你需要將其備份后轉(zhuǎn)為 FAT32 文件系統(tǒng)。
使用 ESP 分區(qū) — 不同發(fā)行版的安裝程序以不同的方式辨識 ESP 分區(qū)。比如,Debian 和 Ubuntu 的某些版本把 ESP 分區(qū)稱為“EFI boot partition”,而且不會明確顯示它的掛載點(盡管它會在后臺掛載);但是有些發(fā)行版,像 Arch 或 Gentoo,需要你去手動掛載。盡管將 ESP 分區(qū)掛載到 /boot 進行相應(yīng)配置后可以正常工作,特別是當你想使用 gummiboot 或 ELILO(譯者注:gummiboot 和 ELILO 都是 EFI 引導工具)時,但是在 Linux 中最標準的 ESP 分區(qū)掛載點是 /boot/efi。某些發(fā)行版的 /boot 不能用 FAT 分區(qū)。因此,當你設(shè)置 ESP 分區(qū)掛載點時,請將其設(shè)置為 /boot/efi。除非 ESP 分區(qū)沒有,否則不要為其新建文件系統(tǒng) — 如果已經(jīng)安裝 Windows 或其它操作系統(tǒng),它們的引導文件都在 ESP 分區(qū)里,新建文件系統(tǒng)會銷毀這些文件。
設(shè)置引導程序的位置 — 某些發(fā)行版會詢問將引導程序(GRUB)裝到何處。如果 ESP 分區(qū)按上述內(nèi)容正確標記,不必理會此問題,但有些發(fā)行版仍會詢問。請嘗試使用 ESP 分區(qū)。
其它分區(qū) — 除了 ESP 分區(qū),不再需要其它的特殊分區(qū);你可以設(shè)置 根(/)分區(qū),swap 分區(qū),/home 分區(qū),或者其它分區(qū),就像你在 BIOS 模式下安裝時一樣。請注意 EFI 模式下不需要設(shè)置BIOS 啟動分區(qū)[16],所以如果安裝程序提示你需要它,意味著你可能意外的進入了 BIOS 模式。另一方面,如果你創(chuàng)建了 BIOS 啟動分區(qū),會更靈活,因為你可以安裝 BIOS 模式下的 GRUB,然后以任意模式(EFI 模式 或 BIOS 模式)引導。
解決無顯示問題 — 2013 年,許多人在 EFI 模式下經(jīng)常遇到(之后出現(xiàn)的頻率逐漸降低)無顯示的問題。有時可以在命令行下通過給內(nèi)核添加 nomodeset
參數(shù)解決這一問題。在 GRUB 界面按 e
鍵會打開一個簡易文本編輯器。大多數(shù)情況下你需要搜索有關(guān)此問題的更多信息,因為此問題更多是由特定硬件引起的。
在某些情況下,你可能不得不以 BIOS 模式安裝 Linux。但你可以手動安裝 EFI 引導程序讓 Linux 以 EFI 模式啟動。請參閱《 在 Linux 上管理 EFI 引導加載程序[17]》 頁面獲取更多有關(guān)它們以及如何安裝的可用信息。
解決安裝后的問題
如果 Linux 無法在 EFI 模式下工作,但在 BIOS 模式下成功了,那么你可以完全放棄 EFI 模式。在只有 Linux 的計算機上這非常簡單;安裝 BIOS 引導程序即可(如果你是在 BIOS 模式下安裝的,引導程序也應(yīng)隨之裝好)。如果是和 EFI 下的 Windows 組成雙系統(tǒng),最簡單的方法是安裝我的 rEFInd 引導管理器[18]。在 Windows 上安裝它,然后編輯 refind.conf
文件:取消注釋 scanfor
一行,并確保擁有 hdbios
選項。這樣 rEFInd 在引導時會重定向到 BIOS 模式的引導項。
如果重啟后計算機直接進入了 Windows,很可能是 Linux 的引導程序或管理器安裝不正確。(但是應(yīng)當首先嘗試禁用安全啟動;之前提到過,它經(jīng)常引發(fā)各種問題。)下面是關(guān)于此問題的幾種可能的解決方案:
使用 efibootmgr — 你可以以 EFI 模式引導一個 Linux 急救盤,使用 efibootmgr 實用工具嘗試重新注冊你的 Linux 引導程序,如這里[19]所述。
使用 Windows 上的 bcdedit — 在 Windows 管理員命令提示符窗口中,輸入 bcdedit /set {bootmgr}path \EFI\fedora\grubx64.efi
會用 ESP 分區(qū)的 EFI/fedora/grubx64.efi
文件作為默認的引導加載程序。根據(jù)需要更改此路徑,指向你想設(shè)置的引導文件。如果你啟用了安全啟動,需要設(shè)置 shim.efi
,shimx64.efi
或者 PreLoader.efi
(不管有哪個)為引導而不是 grubx64.efi
。
安裝 rEFInd — 有時候 rEFInd 可以解決這個問題。我推薦使用 CD-R 或者 USB 閃存驅(qū)動器[20]進行測試。如果 Linux 可以啟動,就安裝 Debian 軟件包、RPM 程序,或者 .zip 文件包。(請注意,你需要在一個高亮的 Linux vmlinuz* 選項按兩次 F2
或 Insert
修改啟動選項。如果你的啟動分區(qū)是單獨的,這就更有必要了,因為這種情況下,rEFInd 無法找到根(/)分區(qū),也就無法傳遞參數(shù)給內(nèi)核。)
使用修復引導程序 — Ubuntu 的引導修復實用工具[21]可以自動修復一些問題;然而,我建議只在 Ubuntu 和 密切相關(guān)的發(fā)行版上使用,比如 Mint。有時候,有必要通過高級選項備份并替換 Windows 的引導。
劫持 Windows 引導程序 — 有些不完整的 EFI 引導只能引導 Windows,就是 ESP 分區(qū)上的 EFI/Microsoft/Boot/bootmgfw.efi
文件。因此,你可能需要將引導程序改名(我建議將其移動到上級目錄 EFI/Microsoft/bootmgfw.efi
),然后將首選引導程序復制到這里。(大多數(shù)發(fā)行版會在 EFI 的子目錄放置 GRUB 的副本,例如 Ubuntu 的 EFI/ubuntu,F(xiàn)edora 的 EFI/fedora。)請注意此方法是個丑陋的解決方法,有用戶反映 Windows 會替換引導程序,所以這個辦法不是 100% 有效。然而,這是在不完整的 EFI 上生效的唯一辦法。在嘗試之前,我建議你升級固件并重新注冊自己的引導程序,Linux 上用 efibootmgr,Windows 上用 bcdedit。
有關(guān)引導程序的其它類型的問題 - 如果 GRUB(或者你的發(fā)行版默認的其它引導程序或引導管理器)沒有引導操作系統(tǒng),你必須修復這個問題。因為 GRUB 2 引導 Windows 時非常挑剔,所以 Windows 經(jīng)常啟動失敗。在某些情況下,安全啟動會加劇這個問題。請參閱我的關(guān)于 GRUB 2 的頁面[22]獲取一個引導 Windows 的 GRUB 2 示例。還會有很多原因?qū)е?Linux 引導出現(xiàn)問題,類似于 BIOS 模式下的情況,所以我沒有全部寫出來。
盡管 GRUB 2 使用很普遍,但我對它的評價卻不高 - 它很復雜,而且難以配置和使用。因此,如果你在使用 GRUB 的時候遇到了問題,我的第一反應(yīng)就是用別的東西代替。我的用于 Linux 的 EFI 引導程序頁面[23]有其它的選擇。其中包括我的 rEFInd 引導管理器[24],它除了能夠讓許多發(fā)行版上的 GRUB 2 工作,也更容易安裝和維護 - 但是它還不能完全代替 GRUB 2。
除此之外,EFI 引導的問題可能很奇怪,所以你需要去論壇發(fā)帖求助。盡量將問題描述完整。Boot Info Script[25] 可幫助你提供有用的信息 - 運行此腳本,將生成的名為 RESULTS.txt 的文件粘貼到論壇的帖子上。一定要將文本粘貼到 [code]
和 [/code]
之間;不然會遭人埋怨?;蛘邔?RESULTS.txt 文件上傳到 pastebin 網(wǎng)站上,比如 pastebin.com[26],然后將網(wǎng)站給你的 URL 地址發(fā)布到論壇。
哎呀:將傳統(tǒng)模式下安裝的系統(tǒng)轉(zhuǎn)為 EFI 模式下引導
警告:這些指南主要用于基于 UEFI 的 PC。如果你的 Mac 已經(jīng)安裝了 BIOS 模式下的 Linux,但想以 EFI 模式啟動 Linux,可以在 OS X 中安裝引導程序。rEFInd(或者舊式的 rEFIt)是 Mac 上的常用選擇,但 GRUB 可以做的更多。
論壇上有很多人看了錯誤的教程,在已經(jīng)存在 EFI 模式的 Windows 的情況下,安裝了 BIOS 引導的 Linux,這一問題在 2015 年初很普遍。這樣配置效果很不好,因為大多數(shù) EFI 很難在兩種模式之間切換,而且 GRUB 也無法勝任這項工作。你可能會遇到不完善的 EFI 無法啟動外部介質(zhì)的情況,也可能遇到 EFI 模式下的顯示問題,或者其它問題。
如前所述,在“解決安裝后的問題”部分,解決辦法之一就是在 Windows 上安裝 rEFInd,將其配置為支持 BIOS 模式引導。然后可以引導 rEFInd 并鏈式引導到你的 BIOS 模式的 GRUB。在 Linux 上遇到 EFI 特定的問題時,例如無法使用顯卡,我建議你使用這個辦法修復。如果你沒有這樣的 EFI 特定的問題,在 Windows 中安裝 rEFInd 和合適的 EFI 文件系統(tǒng)驅(qū)動可以讓 Linux 直接以 EFI 模式啟動。這個解決方案很完美,它和我下面描述的內(nèi)容等同。
大多數(shù)情況下,最好將 Linux 配置為以 EFI 模式啟動。有很多辦法可以做到,但最好的是使用 Linux 的 EFI 引導模式(或者,可以想到,Windows,或者一個 EFI shell)注冊到你首選的引導管理器。實現(xiàn)這一目標的方法如下:
下載適用于 USB 閃存驅(qū)動器或 CD-R 的 rEFInd 引導管理器[27]。
從下載的鏡像文件生成安裝介質(zhì)??梢栽谌魏斡嬎銠C上準備,不管是 EFI 還是 BIOS 的計算機都可以(或者在其它平臺上使用其它方法)。
如果你還沒有這樣做,請禁用安全啟動[28]。因為 rEFInd CD-R 和 USB 鏡像不支持安全啟動,所以這很必要,你可以在以后重新啟用它。
在目標計算機上啟動 rEFInd。如前所述,你可能需要調(diào)整固件設(shè)置,并使用內(nèi)置引導管理器選擇要引導的介質(zhì)。你選擇的那一項也許在其描述中包含 UEFI 這樣的字符串。
在 rEFInd 上測試引導項。你應(yīng)該至少看到一個啟動 Linux 內(nèi)核的選項(名字含有 vmlinuz 這樣的字符串)。有兩種方法可以啟動它:
在一些罕見的情況下,你可能需要添加其它內(nèi)核選項來代替或補充 root=
選項。比如配置了 LVM(LCTT 譯注:Logical Volume Manager,邏輯卷管理)的 Gentoo 就需要 dolvm
選項。
如果你沒有獨立的 /boot
分區(qū),只需簡單的選擇內(nèi)核并按回車鍵。Linux 就會啟動。
如果你確定有一個獨立的 /boot
分區(qū),按兩次 Insert
或 F2
鍵。這樣會打開一個行編輯器,你可以用它來編輯內(nèi)核選項。增加一個 root=
格式以標識根(/)文件系統(tǒng),如果根(/)分區(qū)在 /dev/sda5
上,就添加 root=/dev/sda5
。如果不知道根文件系統(tǒng)在哪里,那你需要重啟并盡可能想到辦法。
Linux 一旦啟動,安裝你想要的引導程序。rEFInd 的安裝很簡單,可以通過 RPM、Debian 軟件包、PPA,或從rEFInd 下載頁面[29]下載的二進制 .zip 文件進行安裝。在 Ubuntu 和相關(guān)的發(fā)行版上,引導修改程序可以相對簡單地修復你的 GRUB 設(shè)置,但你要對它有信心可以正常工作。(它通常工作良好,但有時候會把事情搞得一團糟。)另外一些選項都在我的 《在 Linux 上管理 EFI 引導加載程序[30]》 頁面上。
如果你想在安全啟動激活的情況下引導,只需重啟并啟用它。但是,請注意,可能需要額外的安裝步驟才能將引導程序設(shè)置為使用安全啟動。有關(guān)詳細信息,請參閱我關(guān)于這個主題的頁面[31]或你的引導程序有關(guān)安全啟動的文檔資料。
重啟時,你可以看到剛才安裝的引導程序。如果計算機進入了 BIOS 模式下的 GRUB,你應(yīng)當進入固件禁用 BIOS/CSM/legacy 支持,或調(diào)整引導順序。如果計算機直接進入了 Windows,那么你應(yīng)當閱讀前一部分,“解決安裝后的問題”。
你可能想或需要調(diào)整你的配置。通常是為了看到額外的引導選項,或者隱藏某些選項。請參閱引導程序的文檔資料,以了解如何進行這些更改。
參考和附加信息
信息網(wǎng)頁
我的 《在 Linux 上管理 EFI 引導加載程序[32]》 頁面含有可用的 EFI 引導程序和引導管理器。
OS X's bless tool 的手冊頁[33] 頁面在設(shè)置 OS X 平臺上的引導程序或引導管理器時可能會很有用。
EFI 啟動過程[34] 描述了 EFI 啟動時的大致框架。
Arch Linux UEFI wiki page[35] 有大量關(guān)于 UEFI 和 Linux 的詳細信息。
亞當·威廉姆森寫的一篇不錯的 《什么是 EFI,它是怎么工作的[36]》。
這個頁面[37] 描述了如何從 Windows 8 調(diào)整 EFI 的固件設(shè)置。
馬修·J·加勒特是 Shim 引導程序的開發(fā)者,此程序支持安全啟動,他維護的博客[38]經(jīng)常更新有關(guān) EFI 的問題。
如果你對 EFI 軟件的開發(fā)感興趣,我的 《EFI 編程[39]》 頁面可以為你起步助力。
附加程序
rEFInd 官網(wǎng)[40]
ELILO 官網(wǎng)[42]
GRUB 官網(wǎng)[43]
Ubuntu 的 引導修復實用工具[45]可幫助解決一些引啟動問題
交流
Sourceforge 上的 rEFInd 交流論壇[46]是 rEFInd 用戶互相交流或與我聯(lián)系的一種方法。
Pastebin 網(wǎng)站,比如 http://pastebin.com, 是在 Web 論壇上與其他用戶交換大量文本的一種便捷的方法。
(題圖:Pixabay,CC0)
via: http://www.rodsbooks.com/linux-uefi/
作者:Roderick W. Smith[47] 譯者:fuowang 校對:wxy
本文由 LCTT 原創(chuàng)編譯,Linux中國 榮譽推出
聯(lián)系客服