有一台安裝了 Ubuntu 和 Parrot Security OS 的電腦。一切都很好,並且 Grub 運行順利。就可以正確啟動了。
當我們安裝Ubuntu時,我們格式化了所有HDD並忘記安裝EFI。當我們嘗試安裝 rEFInd 時,它顯示 EFI 從電腦中完全遺失。
問題是:當我們安裝了所有作業系統後,我們要如何安裝EFI?我應該重新安裝 Ubuntu 才能使用它嗎?
答案1
這當然是可能的,但真正的問題是它是否會減少麻煩。
ESP只是一個小分割區(512Mb 是不錯的大小),具有胖檔案系統和特殊類型。
由於您需要建立它,因此您需要為其提供一些可用空間,為此您可能需要調整其中一個分割區的大小以及其上的檔案系統使用像
gparted
.如果您已經擁有必要的空間,那麼您需要建立具有適當類型的新分割區。您
gparted
正在尋找“esp flag”,這將是“EFI System”類型fdisk
(或類似的內容,如果您在 MBR 上運行)。這就是 EFI 分割區成為 EFI 分割區的原因。建構檔案系統
mkfs.fat -F32 /dev/sdx
使用 取得分區的 uuid
blkid
,設定其標籤或類似內容在 /etc/fstab 中為新分區建立新條目,如下所示(並確保安裝點存在):
UUID=xxxx-xxxx /boot/efi vfat defaults 0 2
或者,您可以使用 /efi 或將掛載綁定到 /boot 以避免 /efi/EFI 路徑
- 將 rEFInd 或 EFI 的 GRUB 安裝到該分割區。您可能需要在該分割區上建立 /EFI 目錄
這應該給你一個有效的ESP。
您可以在以下位置閱讀更多、更好的內容:https://wiki.archlinux.org/index.php/EFI_system_partition#Create_the_partition
答案2
我曾經做過類似的事情。我沒有寫出具體的步驟,但是補救起來並不難。 (我也碰巧需要 rEFInd,但沒有它也應該可以工作。)它是這樣的:
- 在臨時 GPT 格式磁碟或設定為具有 GPT 虛擬磁碟的 UEFI 系統的 VM 上「正確」安裝相同版本的 Ubuntu,作為「捐贈者」虛擬作業系統。
- 如果您的主作業系統在安裝後已更新,則也要更新虛擬安裝。
- 關閉虛擬作業系統。
- 使用一些可啟動復原媒體或其他可啟動作業系統,將 EFI 分割區從虛擬機器複製到真機器。
- Ubuntu 啟動 DVD 可用於此,因為它附帶了 GParted。
- 如果透過 VM 執行此操作,請將 VM 引導至復原 ISO,或作為虛擬磁碟安裝的 Ubuntu 安裝 ISO 檔案。請注意,您也可以將真實作業系統磁碟作為原始 VMDK 安裝在虛擬機器中(如果使用 VirtualBox,則需要使用
vboxmanage
CLI 來建立它,並且映射在主機作業系統重新啟動後無效)。這將允許您直接將「虛擬」EFI 分割區直接複製到真實磁碟,如果在虛擬機器中執行此操作,這將真正節省時間。 (您甚至可以透過這種方式在虛擬機中啟動真正的作業系統。Linux 足夠聰明,不會加載暫時不存在的硬體的驅動程序,甚至是專有的顯示驅動程式。核心已經擁有並將自動加載基本的開源驅動程式事實上,我通常會透過這種方式將 Ubuntu 安裝到真實磁碟上,以便稍後移植到其他機器上。
- 在複製 EFI 分割區之前,先縮小和/或將現有分割區移開,為其騰出空間作為第一個分割區。 (這透過 GParted 很容易實現。)新的 EFI 分割區不會是 sda1(因為第一次正確安裝時會是這樣),但如果我沒記錯的話,EFI、Grub、rEFInd 等都可以。
- 將分割區對應到安裝的 /etc/fstab 檔案中的 /boot/efi。
- 現在,您有兩種選擇來獲取可啟動系統(同樣,您可以在裸機上或透過具有原始 VMDK 映射的真實磁碟的虛擬機器來執行此操作):
- 使用啟動修復工具,例如啟動修復通常只需按一下按鈕即可使所有內容進入可啟動狀態。
- 請注意,您必須從 UEFI 模式下的作業系統執行開機修復,無論是裸機還是虛擬機器。
- rEFInd 也應該能夠使用此配置。但如果沒有,而您確實需要 rEFInd,則可能需要先執行上一個步驟。
- 使用啟動修復工具,例如啟動修復通常只需按一下按鈕即可使所有內容進入可啟動狀態。
- 如果您想跳過 Grub 並進入“純 EFI”,也有一些方法可以解決這個問題,但超出了這個答案的範圍(以及我的記憶)。
我很好奇你為什麼要用 rEFInd?這是一段令人驚奇的程式碼,實際上需要在 MacOS 上進行雙重或三重引導,但如果只是使用 Linux/Windows 進行雙重引導,我經常發現 Grub 更容易,儘管更醜陋。沒什麼好麻煩的了。另外,rEFInd 不是“設定後就忘記”,它偶爾會被覆蓋並需要重新安裝,這可能會帶來一些麻煩,因為典型的*nix/Windows 系統管理技能不會映射到rEFInd,而且這種情況發生的頻率很低,因此您會發現自己每次都重新谷歌搜尋如何做。 (或寫下來,然後嘗試記住該註釋在哪裡。)此外,它有時「有助於」創建特定內核版本的圖標,而這些圖標往往很快就會變得無關緊要。我相信有一種記錄在案的方法可以防止這種行為,或至少在事後刪除它們,但我停止使用它,所以我不記得了。但這只是我的經驗。
祝你好運!