是否需要為多個 Linux 作業系統安裝建立單獨的 /boot 分割區?
答案1
如今,任何主要的 Linux 發行版都不需要單獨的 /boot 分割區(這樣做甚至會造成一些麻煩)。如果您嘗試在單一開機分割區上執行多個 Linux 安裝,您很可能會遇到開機問題。最好的做法是為所有 Linux 分配一個交換分割區,然後為每個安裝分配一個 ext3/4/BTRFS/任何分割區,除非您有特殊原因要這樣做,否則您將在其中放置所有系統以及每個Linux安裝的使用者檔案。您可以根據需要擁有單獨的資料分割區/驅動器,並根據需要將其安裝在每個作業系統中。
答案2
您是否需要為每個 Linux 分配一個單獨的 /boot 分割區?
每個發行版都會假設它是唯一修改 /boot 的東西(通過yum
, apt
, ...)。不要讓多個發行版管理相同的內容/boot
目錄(分割)。系統升級將有效地爭奪這一點。
如果您將一個分割區專用於 /boot,則每個發行版通常都需要自己的分割區。
/boot是什麼?
這是一個不太容易理解的話題,請小心閱讀。 /boot 目錄充當橋樑,允許正在運行的作業系統讀取和寫入引導程式的配置。它在運行時不存在任何其他用途。
/boot 目錄是一個儲存引導程式的配置和插件以及核心和 initramfs 的空間。
當您啟動系統時,電腦的韌體將啟動引導程序,引導程式將讀取/boot,載入配置。然後它將載入所需的核心和 initramfs 檔案。
事實上,在大多數正常情況下將其安裝在 Linux 中的唯一原因是系統升級工具(由yum
、apt
、... 呼叫)可能期望它存在,以便它們可以安裝新核心等。這些工具非常不靈活。我不建議您在沒有 /boot 目錄的情況下運行。
/boot 需要有自己的分割區嗎?
經常沒有。將 /boot 放在自己的分割區上的一個很好的理由是,您的系統根目錄 / 可以儲存在引導程式無法讀取或無法很好讀取的位置。
感覺很勇敢嗎?
實際上,您可以透過兩種機制共享/boot。但我並不建議其中任何一個都是可取的。
只有一個 Linux 安裝核心和引導程式
在各個發行版中,Linux 核心的兼容性令人驚訝。至少那些具有類似Major版本的可以。因此,可以有一個沒有安裝引導程式或核心的發行版。這樣的設定不應嘗試修改 /boot,即使修改也不會放入任何有用的內容。
因此,您可以讓一個 Linux 管理另一個 Linux 的所有開機條目,並在它們之間共用一個核心。
子目錄
人們通常不會想到這一點,但將某些東西綁定安裝到 /boot 上是相當安全的。透過此機制,您可以為每次安裝建立一個包含不同名稱的引導目錄的分割區。
你的/etc/fstab
看起來像這樣:
# Mount the boot partition
UUID=cb015492-4ca4-4fae-a416-6d89443e4680 /media/boot ext4 defaults 0 2
# Bind mount the desired
/media/boot/ubuntu-jammy-boot /boot none bind 0 0
上次我檢查這一點時,看起來已經理解了EFI 中的grub-install
安排並正確配置了 grub 。grub.cfg
例如:/boot/efi/EFI/ubuntu/grub.cfg
。如果沒有,那麼您可以手動批次處理此文件中的設定行:
set prefix=($root)'/ubuntu-jammy-boot/grub'
答案3
需要分區有兩個理由/boot
:
- BIOS 無法存取大磁碟上的任何磁區,
- 引導程式無法載入用於
/
.
我想第一個理由對於當今的系統來說是不正確的。借助 Grub2,甚至 LVM 或 Btrfs 之類的東西也可以在第一階段載入(涉及檔案系統外部的第一個磁區)。
然而,到了2022年,我單卷安裝Debian失敗了/ + /boot
。它位於雲端伺服器上,沒有太多方法來分析發生的情況(我的視野中沒有顯示)。