内核更新后,使用 lvm2 进行全盘加密失败

内核更新后,使用 lvm2 进行全盘加密失败

我正在运行具有全盘加密功能的 Ubuntu 12.04。

这是按照此处的指南实现的:

http://57un.wordpress.com/2013/02/01/full-disk-encryption-using-ubuntu-in-most-secure-mode-with-aes-xts-plain64/

在内核从 3.5.0-32-generic 升级到 3.5.0-34-generic 之前,一切都运行正常。

现在在启动期间,加密分区无法挂载并进入(initramfs)提示符,并显示以下内容。

Gave up waiting for root device.
...
ALERT! /dev/mapper/crypt does not exist. Dropping to a shell!

当在 GRUB 中选择了先前的内核时,系统仍可以正常启动。

我了解启动过程需要不同的步骤或映像以使 lvm2 能够在启动之前挂载加密根,但不确定在哪里或如何排除故障并解决问题。

我尝试创建一个新的 initrd

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-3.5.0-34-generic

从 grub.cfg 中提取

破碎的:

menuentry 'Ubuntu, with Linux 3.5.0-34-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root f4554fcf-eba8-4cb0-96ea-1427fff02328
    linux   /vmlinuz-3.5.0-34-generic root=/dev/mapper/crypt ro   quiet splash $vt_handoff
    initrd  /initrd.img-3.5.0-34-generic
}

作品:

menuentry 'Ubuntu, with Linux 3.5.0-32-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root f4554fcf-eba8-4cb0-96ea-1427fff02328
    linux   /vmlinuz-3.5.0-32-generic root=/dev/mapper/crypt ro   quiet splash $vt_handoff
    initrd  /initrd.img-3.5.0-32-generic
}

有什么建议么?

干杯

答案1

我发现我的文件中的空格/etc/crypttab导致新建文件initrd失败。尽管 crypttab 文件看起来没问题。

在我回滚到工作内核之后发现了这个问题,并且在我创建新的initrd使用时也破坏了它:

sudo update-initramfs -u

我从 /etc/crypttab 中删除了不必要的空格并再次更新了 initramfs。

都好。

相关内容