妙手回春維護盤

要經常折騰系統的人,肯定都是人手一個維護盤 (或稱 Live 盤,救援盤)。

製作維護盤比較流行的工具大概就 UltraISO (Windows,不建議使用)、 Rufus (Windows、目前比較火)、 dd (Linux) 這幾個。

雖然這些工具用起來都很簡便, 但有個壞處就是會佔用整個 U 盤。 如果 U 盤容量很大,而又只用來用作維護盤就太不划算了。

所以就可以使用 Grub2 來引導多個系統, 話不多說,直接上代碼。

準備工作

  1. 一個儘可能大的 U 盤
  2. mkfs.fat -F32 這個 U 盤
  3. 在這個 U 盤上安裝 Grub2 (可參考 此 Wiki)

引導 Arch Live CD

編輯 /etc/grub.d/40_custom 文件, 在文件末尾添加如下代碼。

# Arch Linux Live CD
menuentry "[*] Live CD for Arch Linux" {
    # ROOT 所在的設備 (使用設備名)
    set root="(hd0,gpt1)"
    # ROOT 所在的設備 (使用 UUID)
    set imgdevpath="/dev/disk/by-uuid/7AA2-4ECA"

    # ISO 鏡像所在的路徑
    set isofile="/ISO/archlinux.iso"
    # 將 ISO 鏡像映射爲迴環設備
    loopback loop $isofile

    # 載入 Linux 內核及其相關參數
    echo "載入 Linux ..."
    linux (loop)/arch/boot/x86_64/vmlinuz quiet loglevel=0 vga=current fbcon=nodefer sysrq_always_enabled=1 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop
    # 載入 Intel 的微碼、AMD 的微碼、initramfs
    echo "載入初始化內存盤..."
    initrd (loop)/arch/boot/intel_ucode.img (loop)/arch/boot/amd_ucode.img (loop)/arch/boot/x86_64/archiso.img
}

注意:

  1. 根據自己的情況修改相應的內容 (UUID、內核參數、鏡像名等)
  2. 如果 BOOT 和 ROOT 分區都是加密的,建議將 ISO 鏡像放在 EFI 分區
  3. 引導其它 Linux 鏡像都大同小異,可參考 這裏 來操作。

WePE (微 PE)

雖然日常使用 Arch Linux,但也免不了幫別人修修電腦,所以得有個 PE。

編輯 /etc/grub.d/40_custom 文件, 在文件末尾添加如下代碼。

# Windows PE
menuentry "[*] PE for Windows" {
    # ROOT 所在的設備 (使用設備名)
    set root="(hd0,gpt1)"

    # EFI 文件所在的路徑
    set efifile="/EFI/BOOT/WEPEx64.efi"

    # 載入 WePE
    echo "載入 WePE ..."
    chainloader $efifile
}

注意:

  1. 根據自己的情況修改相應的內容 (UUID、efi 文件名等)
  2. 此方法是以 EFI 的方式啓動 WePE,如果想以 BIOS 的方法啓動,請百度之。

其它 Grub2 啓動條目

# Reboot
menuentry "Reboot" {
    echo "即將開始重啓 ..."
    reboot
}

# Shutdown
menuentry "Shutdown" {
    echo "即將開始關機 ..."
    halt
}