构建 uefi 安全启动 debian-USB

构建 uefi 安全启动 debian-USB

目标:具有 USB 安全启动功能的 Debian

我的进展基于一些链接

到目前为止的步骤:

# download debian8.4-netinstall (official link)
wget http://cdimage.debian.org/debian-cd/8.4.0/amd64/iso-cd/debian-8.3.0-amd64-netinst.iso
mkdir debNet   # extract iso
bsdtar -C debNet -xf debian-8.4.0-amd64-netinst.iso


ls debNet
>autorun.inf  doc        install      pool                 README.txt
>boot         efi        install.amd  README.html          setup.exe
>css          firmware   isolinux     README.mirrors.html  tools
>debian       g2ldr      md5sum.txt   README.mirrors.txt   win32-loader.ini
>dists        g2ldr.mbr  pics         README.source

正如 rodsbooks 所描述的,我现在应该

  • 重命名EFI/BOOT/bootx64.efiEFI/BOOT/grubx64.efi
  • 搬去shim.efiEFI/BOOT/bootx64.efi
  • 搬去MokManager.efiEFI/BOOT/
  • 用钥匙和签名施展一些美妙的魔法,tadaa,你就完成了。

要制作可启动 USB,我执行以下步骤

sources="debNet"
outISO="debian8.4.0.modified.iso"
relative_isolinuxbin="isolinux/isolinux.bin"
xorriso -as mkisofs \
    -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin   \
    -c boot.cat \
    -b $relative_isolinuxbin \
    -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
    -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat \
    -o $outISO $sources
sudo dd if=debian8.4.0.modified.iso of=/dev/sdb

如果我知道我之前在做什么(只是让 uefi 运行),我会看到我使用 efi.img。因此花了一些时间尝试 debNet/efi/boot 发现添加或更改甚至删除这个目录根本不会改变启动。 (也许删除目录会损坏安装 - 没有尝试 - 但不会损坏启动)

所以,我终于明白我必须改变debNet/boot/grub/efi.img。到目前为止,这是我的主要问题 - 如何根据我的需要创建这个 efi.img?

dd if=/dev/zero of=efi.img bs=1k count=3000
mkfs.vfat efi.img
sudo mount efi.img img_mountpoint/

并且按照 rodsbooks 中所述复制引导加载程序似乎不起作用。

相关内容