Skip to main content

Systemd-boot

運作起來很簡單的開機載入器(UEFI 限定)

系統需求

  • ESP大小至少 512MB,建議 1GB 以上
    • 預設 Systemd-boot 會把 Kernel 一起安裝到 ESP 內
  • 系統必須是以 UEFI 環境下開機,而非 BIOS 或 CSM 環境的 BIOS 模式下開機
  • Linux 必須安裝 Systemd 作為 init daemon

安裝、修復

一般安裝

無論在哪一種環境(正常環境或 chroot 環境),都要先掛載 ESP,ESP 掛在哪個掛載點,根據當初安裝 Linux 發行版的狀況而定(通常是  /boot 或  /efi

然後輸入以下指令:

sudo bootctl install # 沒 sudo 或在 root 身份下不用輸入 sudo

Systemd 就會複製自己的檔案到  ESP 分區,並且建立  UEFI 開機項目

如果要深入瞭解究竟複製了哪些項目,可以看看 ArchWiki

ESP 與 /boot 分區分開安裝

當你不想動到 Windows 那小到不行的 100MB ESP 才用這招。以下步驟我自己沒有測試過

首先,再切一個獨立的 /boot 分區,並且將它的分區類型設定為 "Linux extended boot" 

具體來說怎麼設定,可以參考 ArchWiki 的說明:

In other cases, it is recommended to set the partition type to Extended Boot Loader (XBOOTLDR) Partition which is GPT partition type GUID BC13C2FF-59E6-4262-A352-B275FD6F7172 (ea00 type for gdisk) or MBR partition type ID ea

切完之後,掛載 /boot 和 /efi 分區,然後輸入以下指令:

sudo bootctl --esp-path=/efi --boot-path=/boot install

這樣就安裝好了。

修改 Cmdline(Kernel Parameter)

用文字編輯器編輯 /etc/kernel/cmdline,編輯完畢之後,輸入以下指令:

sudo kernel-install add-all

此舉會把所有 Kernel 重新安裝到 Systemd-boot 當中,並且套用新的 Cmdline (順便)