从包含另一个 LVM 的虚拟 DomU LVM 磁盘打开 luks 加密的分区

从包含另一个 LVM 的虚拟 DomU LVM 磁盘打开 luks 加密的分区

我在这里陷入了一些困境。

不久前,我在 Xen 下设置了一个加密的 Unbuntu 13.04。它的虚拟磁盘是一个LVM LV。

在安装过程中,该 LV 作为(整个)物理磁盘呈现给 DomU,并且我让 Ubuntu 的安装程序设置加密的根目录和交换区(使用 LVM)。

然而我忘记写下root pw了。或者我写错了。前几天断电后,我无法以 root 身份重新进入机器。

不过,我有 DomU:s LVM 分区的密码,因此 DomU 会上升。我只是无法登录。启动init=/bin/bash不起作用,因为 init 需要解锁加密分区。

我也不知道如何从 Dom0 打开包含 LVM LV 的分区,因为“cryptsetup luksOpen”不接受 LVM LV 中的偏移量。

有谁知道如何进入LV - 分区 - (LVM) - LV 并重置root密码?

答案1

我对Xen不太熟悉。使用 KVM,我只需在救援 CD 或 Live CD 中启动 VM,然后从那里进行 chroot。就像您在真实桌面上遇到此问题时所做的那样。

如果您需要的只是一个偏移量,那么通常您可以使用losetup它。或者更具体地说,分区表的偏移量,您可以使用partxkpartx

如果您有分区 LV,您可以使用以下命令获取偏移量parted

parted /dev/mapper/lvm-vmfoobar unit b print

它会像这样打印分区偏移量(以字节为单位)

Number  Start         End           Size          Type      File system  Flags
 1      1048576B      2148532223B   2147483648B   primary   fat32        lba
 2      2149580800B   3223322623B   1073741824B   primary   ext2         boot
 3      3224371200B   13961789439B  10737418240B  primary   ext2

因此,假设您想更直接地访问分区 3,例如使用 offset ,您可以这样3224371200做:losetup

# losetup -f --show -o 3224371200 --sizelimit 10737418240 /dev/mapper/lvm-foobar
/dev/loop0

(大小限制是可选的,为了安全起见,您不能写入超过分区末尾的内容)

并验证它是否正确

file -s /dev/loop0
/dev/loop0: Linux rev 1.0 ext2 filesystem data, UUID...

或者,如果您有partxor kpartx,一个简单的

partx -a /dev/mapper/lvm-foobar

应该可以工作,您会发现类似或相似的映射分区/dev/mapper/lvm-foobarp1kpartx可能使用不同的名称partx)。

然后您可以使用该映射设备(cryptsetup luksOpenvgchange、...),因此您最终应该能够挂载 VM 的根文件系统、chroot以及passwd新的根密码。

相关内容