如何在我的 CentOS 上安装来自另一台 VM 的根虚拟磁盘?为了更改其中的某些文件,而不是将其用作真正的根磁盘。
我的虚拟磁盘上有 2 个分区:/boot(Linux 分区)和 /(LVM)
我已经使用 virsh attachment-disk 将它添加到我的 VM,然后我可以在我的 CentOS 上看到它,但我无法使用它:
mount /dev/vdx /mnt/test
mount: unknown filesystem type 'LVM2_member'
还有一件非常奇怪的事情,如果我在 VM 模板上添加磁盘,我的 centOS 会使用它的 /boot 分区 (/dev/vdc1),而不是它必须使用的 /boot 分区 (/dev/vda1)...
感谢帮助
[编辑] :
这是实际情况和我的问题:
- VM1 具有由虚拟机管理程序 (逻辑卷 LVM) 提供的虚拟驱动器 #1。此 VM 已 KO,由于 I/O 错误,我无法启动它。
- VM2 有虚拟驱动器 #2,由虚拟机管理程序 (LVM 也是) 提供。它运行良好。
这 2 个虚拟驱动器在其 VM 上如下切割: - /dev/vda1 = /boot(Linux 分区) - /dev/vda2 = /(LVM 分区)
问题:我需要从 VM1 恢复数据。
因此,我已经将 vd#1 附加到 VM2。在 VM2 上,我可以看到该驱动器,即 /dev/vdc,但我如何安装并读取它?
谢谢。
@psusi 和 @Halfgaar
虚拟机管理程序:
virsh 附加磁盘 my_VM /dev/vgdata/disk10 vdc
在我的虚拟机上:
ls -la /dev/vd*
brw-rw---- 1 根磁盘 252,0 十二月 22 11:22 /dev/vda
brw-rw---- 1 根磁盘 252,1 十二月 22 11:22 /dev/vda1
brw-rw---- 1 根磁盘 252,2 十二月 22 11:22 /dev/vda2
brw-rw---- 1 根磁盘 252,16 十二月 22 11:22 /dev/vdb
brw-rw---- 1 根磁盘 252, 32 12 月 22 日 11:48 /dev/vdc
brw-rw---- 1 根磁盘 252,33 12 月 22 日 11:48 /dev/vdc1
brw-rw---- 1 根磁盘 252, 34 12 月 22 日 11:48 /dev/vdc2
vgchange -ay ok。但是如果 /dev/vdc 中的卷与我的实际 VM 相同,我该如何激活它们?
答案1
除了我要求提供更多信息之外:无论您在逻辑卷还是文件上有一个虚拟磁盘,以下操作都可以起作用。
您可以执行fdisk -lu <diskimage>
并查看分区表。然后,您可以看到分区开始的偏移量(除非它是 GPT...)。然后使用losetup -d /dev/loop0 -o 512 * <startsector> <diskimage>
。然后您可以/dev/loop0
在任何点上安装。请确保-o ro
先使用安装,以防出现问题。并且,如果可以,请备份您的映像。
如果你有 GPT 分区表,我不知道该怎么做。你可以使用以下方法获取相同的信息gdisk
:parted
如果您有一个 Xen 设置,它为客户机提供分区而不是磁盘,那就更简单了;您可以直接安装它。但是,我怀疑您没有这个,即使您没有说。
答案2
您的客户机正在使用 lvm,因此您需要挂载逻辑卷,而不是物理卷。确保vgchange -ay
激活它,并且逻辑卷应出现在 中/dev/mapper
。