妙手回春维护盘

要经常折腾系统的人,肯定都是人手一个维护盘 (或称 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
}