Xen

在 lvm 分區上掛載一個分區

  • April 23, 2013

我有一個 xen dom0 伺服器(名為 virtserver),它包含一個來賓機器,我們稱之為“virtguest”。

之前的virtguest曾經是一台物理機,整個舊磁碟(有幾個分區)現在位於virtserver上的一個lvm卷上(不是我做的)。如何從 virtserver 在 vi​​rtguest 上訪問(掛載)sda1?

理論上它應該位於 /dev/vgvirt/virtguest-disk/sda1 但顯然這不起作用。

現在,virtguest 將整個 /dev/vgvirt/virtguest-disk 獲取為 /dev/sda,然後在啟動後將分區安裝在該磁碟上作為 /dev/sda1、dev/sda2 等,但現在我需要提取關於來自“外部”的 sda1。

所以,我要做的是執行塊附加:

root@virtserver:# xm block-attach 0 phy:/dev/vgvirt/virtguest-disk xvda w
root@virtserver:# mount /dev/xvda1 /mnt

或者如果 xen > 4.1 則使用 xl 而不是 xm

我會使用kpartx

添加磁碟映射:

kpartx -a  /dev/vgvirt/virtguest-disk

看看能不能找到vg。

vgscan

然後 vgchange 並掛載(例如在 /mnt 下)

vgchange -a y yourVGname
mount /dev/yourVGname/yourLV /mnt

如果您在嘗試執行此操作的機器上執行 LVM,並且 VG:s 的名稱相同,那麼您可能會遇到問題。

這是一個很好的方法:http ://wiki.xen.org/wiki/Access_a_LVM-based_DomU_disk_outside_of_the_domU

或者您可以考慮使用guestfish

引用自:https://serverfault.com/questions/501781