kvm虛擬機磁盤文件讀取小結


kvm虛擬機磁盤掛載還真不是一帆風順的。xen虛擬化默認就raw格式的磁盤,可以直接掛載,kvm如果采用raw也可以直接掛載,與xen磁盤掛載方式一致。

1.kvm虛擬化相比xen虛擬化來說,工具與方法眾多,本文列舉思路如下:

(1)raw格式的磁盤可以直接掛載,可以將qcow2磁盤轉換成raw格式並掛載

轉換示例:qemu-imgconvert-fraw-Oqcow2/data/raw.img/data/qcow2.img

(2)通過編譯安裝qemu-nbd工具掛載qcows格式的磁盤

qemu-nbd工具默認沒有安裝,需要編譯安裝,該內容待測試,如確實需要也可以參考思路1去解決。
(3)通過創建KVM環境創建kvm虛擬機配置文件掛載虛擬磁盤啟動虛擬機

(4)通過libguestfs-tools工具直接修改與讀取qcow2虛擬磁盤文件

 

本文主要測試libguestfs-tools工具來進行測試。

2.libguestfs-tools工具的使用示例

(1)確認libguestfs-tools工具的安裝,沒有安裝可以yum進行安裝。

安裝完成后,會安裝很多virt-開頭的命令,下面將大概介紹使用這些命令。

[root@node1 ~]# vir
virsh                  virt-df                virt-inspector2        virt-p2v-server        virt-tar-in
virt-alignment-scan    virt-edit              virt-install           virt-pki-validate      virt-tar-out
virt-cat               virt-filesystems       virt-list-filesystems  virt-rescue            virt-v2v
virt-clone             virt-format            virt-list-partitions   virt-resize            virt-viewer
virt-convert           virt-host-validate     virt-ls                virt-sparsify          virt-what
virt-copy-in           virt-p_w_picpath             virt-make-fs           virt-sysprep           virt-win-reg
virt-copy-out          virt-inspector         virt-manager           virt-tar               virt-xml-validate

(2)命令使用參數格式

virt-df  [--options] -d domname
virt-df [--options] -a disk.img [-a disk.img ...]

通常兩種方式:-d是采用域名稱方式,-a是直接獲取的磁盤文件方式。

3.virt-cat命令

直接查看虛擬機里面的/etc/passwd文件,類似於cat命令。

[root@node1 ~]# virt-cat -d oeltest01 /etc/passwd

185139521.jpg

4.virt-edit命令

直接編輯虛擬機里面的文件,類似於vi命令。

注:虛擬機必須處於關機狀態,否則會出現如下提示:

libguestfs: error: error: domain is a live virtual machine.
Writing to the disks of a running virtual machine can cause disk corruption.
Either use read-only access, or if the guest is running the guestfsd daemon
specify live access.  In most libguestfs tools these options are --ro or
--live respectively.  Consult the documentation for further information.

185204453.jpg

[root@node1 ~]# virt-edit -d oeltest01 /etc/rc.local

可以通過vi命令進行編輯。

185227469.jpg

5.virt-df命令

直接查看虛擬機里面的磁盤使用情況,類似於df-h命令。

[root@node1 ~]# virt-df  -h oeltest01

185354721.jpg

virt-filesystems命令也與上面內容類似

[root@node1 ~]# virt-filesystems -d oeltest01
/dev/sda1
/dev/vg/root

6.virt-copy-out命令

直接復制虛擬機里面的磁盤文件到本地磁盤上,類似於cp命令。

(1)拷貝oeltest01虛擬機中的passwd文件到本地/root目錄下

[root@node1 ~]# virt-copy-out -d oeltest01 /etc/passwd /root/

(2)拷貝oeltest01虛擬機中的/etc/到本地/root目錄下

[root@node1 ~]# virt-copy-out -d oeltest01 /etc /root/

185413515.jpg

該命令很有用,也可以直接指定虛擬機磁盤文件進行命令。

#查看虛擬機所有磁盤文件

185431858.jpg 

通過直接讀取磁盤文件中的內容。

[root@node1 ~]# virt-copy-out -a /data/test01.qcow2 -a /data/test01_add01.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0 /root/

185451922.jpg

7.virt-copy-in命令

直接復制虛擬化平台上本地磁盤文件到虛擬機磁盤上,類似於cp命令。

拷貝本地/root/etc.tar.gz文件到虛擬機/root目錄下

[root@node1 ~]# virt-copy-in -d oeltest01 /root/etc.tar.gz /root/

注:虛擬化必須處於關機狀態,可以開機驗證。

[root@node1 ~]# virsh start oeltest01
域 oeltest01 已開始
[root@node1 ~]#
[root@node1 ~]#
[root@node1 ~]# virsh console oeltest01
連接到域 oeltest01
Escape character is ^]
Oracle Linux Server release 5.8
Kernel 2.6.18-308.el5 on an x86_64
test01 login: root
Password:
Last login: Wed Sep 11 05:21:11 on ttyS0
[root@test01 ~]# ll
total 10828
-rw------- 1 root root     1225 Sep 11 03:54 anaconda-ks.cfg
drwxr-xr-x 2 root root     4096 Sep 11 04:17 Desktop
-rw-r--r-- 1 root root 11006264 Sep 16  2013 etc.tar.gz
-rw-r--r-- 1 root root    36587 Sep 11 03:54 install.log
-rw-r--r-- 1 root root     3828 Sep 11 03:53 install.log.syslog

文讀取虛擬機磁盤文件的內容到此,還有很多命令的命令,可以進行測試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM