如果 / 分区已加密并且存在单独的 /boot 分区,如何从 liveUSB 重新安装 grub?

如果 / 分区已加密并且存在单独的 /boot 分区,如何从 liveUSB 重新安装 grub?

我发现了一些解释如何通过 重新安装 grub2 的帖子,chroot但没有一个解释如果我的/已加密并且存在纯/boot分区,该如何继续。问题是我在 EFI 模式下安装Debian,它在 UEFI 启动菜单中创建了一个无法启动的条目(日文字符)。

我尝试使用 Ubuntu liveUSB 创建新条目efibootmgr,但仍然无法启动。我想从 Ubuntu liveUSB 重新安装 grub,但我不知道如何 chroot 加密/分区以及如何将单独的/boot分区融合在一起。

答案1

  1. 从具有有效互联网连接的 Ubuntu Live USB 启动。

  2. 打开终端窗口(应用配件终端)。

  3. 键入以下命令(请注意注释,#某些命令后面以 开头):

    sudo -i
    apt-get update
    apt-get install cryptsetup lvm2
    fdisk -l
    cryptsetup luksOpen /dev/sda? TAG           # sda? is your root partition
    vgchange -ay
    vgscan
    vgchange -ay [VOLUME GROUP NAME]           # From the above command
    lvscan
    mount /dev/[VOLUME GROUP NAME]/[LOGICAL VOLUME NAME] /mnt          # LOGICAL VOLUME NAME from above command
    modprobe efivars
    mount /dev/sda? /mnt/boot/efi          # sda? is your efi partition
    mount --bind /dev /mnt/dev 
    mount --bind /dev/pts /mnt/dev/pts
    mount --bind /proc /mnt/proc
    mount --bind /sys /mnt/sys
    cp /etc/resolv.conf /mnt/etc/
    chroot /mnt
    

    然后做

    apt-get install --reinstall grub-efi-amd64
    

    或者

    apt-get install --reinstall grub-efi
    

    并继续

    update-grub
    umount /mnt
    vgchange -an
    cryptsetup luksClose TAG
    

答案2

我花了一段时间才搞明白。我有相同的设置(非加密的 /boot 加上 vfat /boot/efi)。下面的 debian 指南完美解决了这个问题。其他指南中缺少的部分包括安装 efivars 以及重新安装 grub 等的全面步骤。希望这能有所帮助!

https://wiki.debian.org/GrubEFIReinstall

有关其他答案中缺少的具体部分的详细信息,请参见此处:

  • 在安装 grub 的 chroot 中包含 efivars

    对于 /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run 中的 i;执行 sudo mount -B $i /mnt$i;完成

  • 不要忘记在 chroot 中挂载 /boot 以及 /boot/efi

  • 运行*所有 grub 命令

    apt-get install --reinstall grub-efi

    grub 安装 /dev/disk

    更新 grub

谢谢你,debian!!

相关内容