安裝 Debian 9.9 時 EFI 的正確位置

安裝 Debian 9.9 時 EFI 的正確位置

我正在安裝 Debian 9.9,我希望我的 1 TB 硬碟和 8 GB RAM 具有這種佈局。

Size              Name / Mounted at
512 MB            EFI System Partition
40 GB             /
8GB               /swap
Remaining space   /home

在網路上,人們使用掛載在 /boot 或 /boot/efi 的 EFI 分割區。

由於 Debian 9 不允許 /boot 是 FAT32,所以我們不能使用 /boot。我是否正確地認為,出於同樣的原因,即使 /boot/efi 也不是選項?

有什麼理由讓 /grub 資料夾中包含 GRUB2 嗎?它不會自行將 GRUB2 安裝在 EFI 系統分割區中嗎?

替代分割區方案(即 /boot 中的 EFI、/boot/efi 或安裝在 /grub 中的 GRUB2)有哪些好處?

答案1

EFI 分割區的標準位置(至少對於 Debian 而言)是/boot/efi.這可以是並且應該FAT32 分區。

在標準 Debian Grub EFI 佈局中,grub 有三個部分:

  1. /boot/efi
    掛載的 EFI 分割區
    包含存根 grub 引導程式和配置
  2. /boot/grub
    同一分區 /boot 或 /
    包含 grub 模組和實際的 grub 配置
  3. /etc/grub.d
    與/
    包含自動配置腳本相同的分區

Grub 並未完全安裝在 EFI 上,其中很大一部分位於其他地方。因此,為了能夠啟動,您仍然需要/boot/grub.它僅安裝存根和存根配置以將其指向其餘部分。典型的 EFI 存根配置如下 ( /boot/efi/EFI/debian/grub.cfg):

search.fs_uuid 2c675303-d207-4573-98f5-59a33c9890ab root hd0,gpt3
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

請注意此配置僅告訴 grub 在哪裡可以找到真正的配置(/boot/grub/grub.cfg位於硬碟 0 分割區 3 上)。

另請注意,即使配置主要儲存在 /boot/grub 中,您也永遠不會手動編輯它,而是要求 grub 腳本為您編輯它。因此,要重新配置 grub(即使只是添加新核心),您還需要/etc/grub.d.請注意,此目錄中的腳本可能依賴 Debian 安裝的其他程式庫。


因此,您必須保留 /boot/grub 有兩個原因:

  1. 它包含您的實際配置和 grub 模組。
  2. 以便自動配置腳本知道在哪裡編寫新配置。

如果您確實想轉向/boot/grubEFI...(非標準)

實際上沒有什麼可以阻止你。只需確保腳本/etc/grub.d知道在哪裡可以找到它(例如:留下符號連結)

我以前出於深奧的原因這樣做過。我運行一個帶有 EFI 分割區的系統,其中包含兩個目錄EFIgrub.我這樣設定:

# Move /boot/grub onto my EFI partition
mv /boot/grub /boot/efi

# Leave a symbolic link from the old location to the new location
ln -s /boot/efi/grub /boot/grub

# Update the stub config /boot/efi/EFI/debian/grub.cfg to point to the new location
grub-install

# For safety update the contents of /boot/efi/grub aka /boot/grub
update-grub

我實際上喜歡這個設置,因為它可以防止我在這裡多次看到的錯誤,即人們刪除作業系統並破壞 grub 並阻止任何其他作業系統啟動。


分區的原因

分區有多種目的。關於引導程式的分區部分,這對於處理系統各個部分的不同功能很有用。

  • 您的 BIOS 只能讀取基於 FAT 的檔案系統
  • Grub 對檔案系統有很好的支持,但 LVM 和加密磁碟區可能是個問題
  • Linux 可以讀取所有內容
  • 老的Grub 舊版無法讀取非常大的磁碟或分割區

您的 BIOS 需要能夠載入並執行 grub,因此 EFI 需要位於基於 FAT 的檔案系統上。

您的主分割區可能位於 grub 無法讀取的分割區上,但 grub 需要存取您的核心、Initramfs 及其自己的配置,因此 /boot 和 /boot/grub 需要位於 grub 可讀的分割區上。在過去的 grub 遺留時代,您還需要確保該分割區足夠小,並且位於非常小的磁碟上磁碟機的開頭附近。

Linux 可以讀取所有內容,但您可能希望 Linux 在 LVM 或加密磁碟區上執行。

相關內容