我在这里陷入了一些困境。
不久前,我在 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
它。或者更具体地说,分区表的偏移量,您可以使用partx
或kpartx
。
如果您有分区 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...
或者,如果您有partx
or kpartx
,一个简单的
partx -a /dev/mapper/lvm-foobar
应该可以工作,您会发现类似或相似的映射分区/dev/mapper/lvm-foobarp1
(kpartx
可能使用不同的名称partx
)。
然后您可以使用该映射设备(cryptsetup luksOpen
、vgchange
、...),因此您最终应该能够挂载 VM 的根文件系统、chroot
以及passwd
新的根密码。