在CentOS下面多部分命令都是有包libguestfs-tools-c
提供,所以,首先需要安裝它
virt-ls可以列出虛擬機中目錄下的文件或目錄,用法如下
1 2
virt-ls [--options] -d domname dir [dir ...]
virt-ls [--options] -a disk.img [-a disk.img ...] dir [dir ...]
如
1
virt-ls -d centos2 /etc/
可以像使用ls
一樣加一些參數,如-l
等,具體請看virt-ls --help
virt-what可以用來檢測當前系統是不是一個虛擬機,如果不是虛擬機,執行virt-what將不會有任何輸出,如果是虛擬機,它會打印一系列關於虛擬機的’facts’(如kvm)
virt-what命令由同名包提供,要命令需要先安裝(yum -y install virt-what)
這個命令可以用來檢測本機是否正確配置以運行虛擬化,如果沒有加參數,它會檢查它所知道的所有的虛擬化驅動,可選的可以加qemu
或lxc
做限制
1
virt-host-validate
輸出類似這樣
1 2 3 4 5
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking for device /dev/kvm : PASS
QEMU: Checking for device /dev/vhost-net : PASS
QEMU: Checking for device /dev/net/tun : PASS
LXC: Checking for Linux >= 2.6.26 : PASS
virt-top命令由同名軟件包提供,和top命令相似,只是進程換成了虛擬機
1 2
yum -y install virt-top
virt-top
輸出
1 2 3 4 5 6 7 8 9
virt-top 16:58:01 - x86_64 8/8CPU 2127MHz 7854MB 12.2% 12.0% 12.8% 12.0% 12.1% 12.0% 12.0% 12.0%
4 domains, 3 active, 3 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0
CPU: 12.7% Mem: 2048 MB (2048 MB by guests)
ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME
40 R 0 0 52 0 12.5 6.0 66:38.82 centos2
32 R 0 3 22 38K 13.5 16.0 26:28.82 win2003
40 R 2 0 52 0 12.5 8.0 36:18.82 test
- (centos3)
virt-cat可以虛擬機中文件的內容,用法如下
1 2
virt-cat [--options] -d domname file [file ...]
virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]
如
1
virt-cat -d centos2 /etc/passwd
domname可以通過virsh list
得到
也可以對虛擬機的磁盤文件操作
1
virt-cat -a /opt/images/centos2.img /etc/passwd
這個命令可以修改
1 2
virt-edit [--options] -d domname file [file ...]
virt-edit [--options] -a disk.img [-a disk.img ...] file [file ...]
例如
1
virt-edit -d centos2 /etc/passwd
在我的系統中它會用vim
打開文件,編輯完保存即可修改虛擬機內的文件內容
也可以直接對虛擬機的磁盤文件進行操作
1
virt-edit -a /opt/images/centos2.img /etc/passwd
Note: 如果虛擬機正在運行,使用第一種文件修改它的文件會有下面的報錯
1 2 3 4 5
Libguestfs: error: error: domain is a live virtual machine.
Writing to the disks of a running virtual machine ca 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.
但直接對虛擬機磁盤鏡像文件操作不會有這個提示,並且可以修改成功,會不會出問題我就不知道了
virt-copy-out這個命令可以把虛擬機裡的文件復制出來, 用法如下
1 2
virt-copy-out -d domname file|dir [file|dir ...] localdir
virt-copy-out -a disk.img file|dir [file|dir ...] localdir
例子
1
virt-copy-out -d centos2 /etc/passwd .
可以是多個文件或目錄
1 2
mkdir tmp
virt-copy-out -d centos2 /etc /home /root/.bashrc tmp
也可以直接對虛擬機磁盤文件操作,只需要將-d domname
換成-a path_of_disk_file
virt-copy-in是將文件復制到虛擬機裡面,用法和virt-copy-out基本相同,這裡只舉一個例子
1
virt-copy-in -d centos2 test.txt /opt/
不出你的所料,如果虛擬機正在運行,上面的命令也會報錯
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-08/105140p2.htm