使用的资源:

使用的资源:

我有一台安装了 Xubuntu 的笔记本电脑。

在安装时我选择了全盘加密选项。

但是昨天我意外地将 DSL 映像添加到了 sda1(/boot 分区)而不是 sdb1(pendrive)。

我怎样才能修复我的 /boot?

答案1

您好,我在我的笔记本电脑上测试了以下命令 - 是的,我删除了所有内容/dev/sda1并让它再次工作 - 所以这里是:

  • 获取实时图像并从中启动。

- 首先让我们清理/dev/sda1一下 -分区;重新/dev/sda1格式化扩展2不要忘记确认更改,然后设置“启动”标志(右键单击分区 --> 选择“管理标志” --> 选中“启动”旁边的框 [这会自动将“esp”标志设置为] --> 单击“关闭”按钮)。(这是由于 OP 帖子中的“将 DSL 映像添加到 sda1”造成的)

  • 现在我们将一切准备就绪,chroot进入已安装的系统,然后我们将切换到它(通过chroot):

     sudo cryptsetup luksOpen /dev/sda5 sda5_crypt
     sudo vgscan --mknodes
     sudo vgchange -ay
     sudo mount /dev/mapper/ubuntu--vg-root /mnt
     sudo mount /dev/sda1 /mnt/boot
     for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
     sudo chroot /mnt
    
  • 好的,让我们删除并重新安装 GRUB:( 由于 ncurses,让您的终端处于全屏模式),这可能会询问您是否要删除所有内容 - 选择是;现在让我们在询问时在此处选择重新安装它grub-install /dev/sda apt purge grub-commonapt install grub-pc/dev/sda

  • 最后我们需要重新安装内核来获取所需的initrd.img-*vmlinuz-*图像放入“/boot/”中。我们得到当前安装的内核,apt list --installed linux-image-*现在我们重新安装这个内核apt install linux-image-[version-numbers]-generic --reinstall——不要忘记将括号替换为实际版本号。

  • 几乎完成了;使用Ctrl+退出 chroot d,或者只需输入exit,然后重新启动(通过 GUI 菜单或使用sudo reboot)!

使用的资源:

答案2

我必须这样做才能挽救加密的 Manjaro 安装,并且必须修改另一个答案的命令稍微修改一下就可以工作了。

1️⃣ 我没有将驱动器的启动分区挂载到/mnt/boot,而是将其挂载到/mnt/boot/efi。否则,GRUB 会抱怨它找不到 EFI 分区。

2️⃣我必须添加/sys/firmware/efi/efivars到 for 循环中(归功于这个答案)。如果没有这个,GRUB 将无法识别chrooted 系统是在 UEFI 模式下启动的,尽管它确实:

# grub-install /dev/drive
Installing for x86_64-efi platform.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub-install: error: efibootmgr failed to register the boot entry: No such file or directory.

驱动器详细信息:

# "drive" is the encrypted Manjaro drive we need to reinstall GRUB on

$ lsblk -o NAME,UUID,SIZE,FSTYPE,MOUNTPOINT,MODEL,SERIAL
drive             931.5G
├─drivep1 UUID1   300M     vfat          # EFI partition
├─drivep2 UUID2   922.4G   crypto_LUKS   # /
└─drivep3 UUID3   8.8G     crypto_LUKS   # SWAP

相关内容