我想将(部分) LUKS 加密的 SSD 克隆到另一个更大的 NVMe。之后,我想用未使用的空间创建一个单独的分区。
我喜欢克隆的磁盘包含 Fedora 和 Windows 10 的双启动设置。因此也安装了 GRUB。
到目前为止,我所做的是从 Live USB 映像(Ubuntu)启动。因此,LUKS 分区仍处于加密状态且未挂载。我还检查了两个磁盘的扇区大小是否均为 512 字节。我使用 dd 将整个磁盘克隆到新磁盘:
dd if=/dev/sda of=/dev/nvme0n1 bs=32M status=progress
据我所知,新磁盘应该与旧磁盘完全一样,因为它是精确的副本。因此,即使分区的 UUID 也应该相同。如果我现在关闭 Live Boot 并拔下旧磁盘,我可以进入 GRUB 并查看启动选项,但如果我选择 Fedora,我不会像通常那样收到解密磁盘的密码提示。相反,我遇到了一些 dracut 超时,只能进入紧急 shell。
___common_interrupt: 1.55 No irq handler for vector
___common_interrupt: 2.55 No irq handler for vector
.
.
.
___common_interrupt: 10.55 No irq handler for vector
[ OK ] Started Show Plymouth Boot Screen.
[ OK ] Forward Password Requests to Plymouth Directory Watch.
[ OK ] Reached target Paths.
dracut-iniqueue[548]: Warning: dracut-initqueue timeout - starting timeout scripts
.
.
.
dracut-iniqueue[548]: Warning: dracut-initqueue timeout - starting timeout scripts
dracut-iniqueue[548]: Warning: Could not boot.
Starting Dracut Emergency Shell...
Warning: /dev/fedora_localhost-live/root does not exist
Warning: /dev/fedora_localhost-live/swap does not exist
Warning: /dev/mapper/fedora_localhost-live--root does not exist
Warning: crypto LUKS UUID 487cc016-xxxx-xxxx-xxxx-xxxxxxxxx not found
我究竟做错了什么?
我也确实知道我的 GPT 表现在不知何故坏了,因为新磁盘更大,所以我尝试使用 gparted 修复它(再次使用 Ubuntu Live 映像)。在启动 gparted 时,它要求我修复表,所以我照做了。但我仍然无法在启动时解密我的磁盘。
答案1
简短回答:在加密系统中,您需要将新设备名称输入在/etc/crypttab中并重建初始 ramdisk 映像。这可以通过挂载加密系统并 chroot 到其中,或使用紧急 shell 从实时系统完成。