如何修复 LUKS 加密硬盘上的 /boot?

Pen*_*n98 8 encryption xubuntu boot luks

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

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

但是昨天我不小心将 DSL 映像 dd-ed 到 sda1(/boot 分区)而不是 sdb1(pendrive)。

如何修复我的 /boot ?

d1b*_*bro 11

您好,我在我的笔记本电脑中测试了以下命令 - 是的,我删除了所有内容,/dev/sda1然后再次运行 - 所以它是:

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

-首先让我们得到一个干净的/dev/sda1-开放的GParted ; /dev/sda1ext2重新格式化,不要忘记确认更改,然后设置“引导”标志(右键单击分区--> 选择“管理标志”--> 选中“引导”旁边的框[这会自动导致“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
    
    Run Code Online (Sandbox Code Playgroud)
  • 好的,让我们删除并重新安装 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)!

使用的资源:

  • 我会运行 `sudo grub-install /dev/sda` 而不是清除 grub-common 并重新安装 grub-pc。 (3认同)
  • 很好的答案!之后我需要解决的另一个问题是:sda1 的重新格式化导致该分区的 uuid 不同。所以我需要在这个过程之后更改 fstab 中的 uuid。 (2认同)