
我正在安裝 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 有三個部分:
/boot/efi
掛載的 EFI 分割區
包含存根 grub 引導程式和配置/boot/grub
同一分區 /boot 或 /
包含 grub 模組和實際的 grub 配置/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 有兩個原因:
- 它包含您的實際配置和 grub 模組。
- 以便自動配置腳本知道在哪裡編寫新配置。
如果您確實想轉向/boot/grub
EFI...(非標準)
實際上沒有什麼可以阻止你。只需確保腳本/etc/grub.d
知道在哪裡可以找到它(例如:留下符號連結)
我以前出於深奧的原因這樣做過。我運行一個帶有 EFI 分割區的系統,其中包含兩個目錄EFI
和grub
.我這樣設定:
# 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 或加密磁碟區上執行。