在有些情況下,我們會想要在Host主機中掛載在其上執行的VM的磁碟目錄,以對其中做一些檢視或修改的動作,在這一篇文章中,我們就來教其中的步驟。目前站長測試的過程中,如果你的VM作業系統使用的是LVM的磁碟格式的話,在操作上要多了許多的設定,所以為了方便起見,在以下的例子中,站長使用的是傳統的檔案格式。

此外,要順利把VM的磁碟分割區掛載出來,在我們的步驟中一定要使用的是RAW的檔案格式,如果是QCOW2的話應該是無法順利完成。所以,在建立虛擬機之前,請先使用以下的指令建立一個.RAW格式的磁碟映象檔,然後再由virsh指令或是virt-manager來建立,建立的時候請直接指定使用現有的映象檔即可。同時在安裝Linuxk作業系統的時候,千萬記得不要選用LVM分割方式。

#qemu-img create -f raw vm1.raw 5G

在作業系統安裝完畢之後,就可以依照下列的步驟把該VM的分割區,任選其中的一個掛載在目前Host主機上,以此例,我們把第三個分割區掛到/mnt/vm1上,然後切換到/mnt/vm1的目錄之下,就等於是和VM在操作同一個磁碟目錄了。

[root@ncu-note images]# ls *.raw
vm1.raw  vm2.raw
[root@ncu-note images]# mkdir -p /mnt/vm1
[root@ncu-note images]# kpartx -av vm1.raw
add map loop3p1 (253:5): 0 1024000 linear /dev/loop3 2048
add map loop3p2 (253:6): 0 1679360 linear /dev/loop3 1026048
add map loop3p3 (253:7): 0 14071808 linear /dev/loop3 2705408
[root@ncu-note images]# mount /dev/mapper/loop3p3 /mnt/vm1
[root@ncu-note images]# cd /mnt/vm1
[root@ncu-note vm1]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[root@ncu-note vm1]# cd root
[root@ncu-note root]# ls
a  anaconda-ks.cfg

掛載完成之後,如果你在VM中對目錄有任何操作的行為,要umount之後再重新mount之後才會看到新的內容,但是如果你在在Host中對於掛載的內容有任何操作,也是要等VM重新啟動之後才會反應上去。而所有我們在Host中操作的目錄,其owner和group全部都是postfix。

(40)