![如果 / 分区已加密并且存在单独的 /boot 分区,如何从 liveUSB 重新安装 grub?](https://linux22.com/image/986873/%E5%A6%82%E6%9E%9C%20%2F%20%E5%88%86%E5%8C%BA%E5%B7%B2%E5%8A%A0%E5%AF%86%E5%B9%B6%E4%B8%94%E5%AD%98%E5%9C%A8%E5%8D%95%E7%8B%AC%E7%9A%84%20%2Fboot%20%E5%88%86%E5%8C%BA%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BB%8E%20liveUSB%20%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%85%20grub%EF%BC%9F.png)
我发现了一些解释如何通过 重新安装 grub2 的帖子,chroot
但没有一个解释如果我的/
已加密并且存在纯/boot
分区,该如何继续。问题是我在 EFI 模式下安装Debian
,它在 UEFI 启动菜单中创建了一个无法启动的条目(日文字符)。
我尝试使用 Ubuntu liveUSB 创建新条目efibootmgr
,但仍然无法启动。我想从 Ubuntu liveUSB 重新安装 grub,但我不知道如何 chroot 加密/
分区以及如何将单独的/boot
分区融合在一起。
答案1
从具有有效互联网连接的 Ubuntu Live USB 启动。
打开终端窗口(应用→配件→终端)。
键入以下命令(请注意注释,
#
某些命令后面以 开头):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!!