09-KVM虚拟机磁盘文件操作

虚拟机磁盘文件的读取、修改等操作方法很多,本文主要采用libguestfs-tools工具来进行操作。

检查libguestfs-tools工具

rpm -qa libguestfs-tools

image.png

未安装的话使用yum -y install libguestfs-tools命令安装
安装成功后,可以看到以下virt开头的命令,本文介绍一些常用的,其余命令可通过帮助手册了解学习。

image.png

命令使用参数格式

virt-df [—options] -d domname
virt-df [—options] -a disk.img [-a disk.img …]
通常两种方式:-d是采用域名称方式,-a是直接获取的磁盘文件方式。

virt-cat

读取虚拟机文件:virt-cat -d VM1 /etc/sysconfig/network-scripts/ifcfg-eth0
或 virt-cat -a VM1.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0
可直接在物理机上读取VM1虚拟机的文件,类似于在VM1虚拟机中操作cat命令

image.png

virt-edit

virt-edit -d VM1 /etc/hosts
该命令在KVM主机上对VM1虚拟机上的/etc/hosts文件进行编辑,相当于在VM1虚拟机上执行vi /etc/hosts编辑,文件内操作与vi操作相同。
注意:编辑操作时虚拟机必须处于关机状态,否则会提示如下信息:

image.png

将hosts中localhost修改为VM1,修改完成后通过virt-cat查看,为VM1

image.png

image.png

virt-df

virt-df -h VM1
该命令在KVM主机上对VM1虚拟机上查看磁盘使用情况,相当于在VM1虚拟机上执行df -h来查看内存使用

image.png

virt-filesystems -d VM1
virt-filesystems命令也与上面内容类似

image.png

virt-copy-out

virt-copy-out -d VM1 /etc/hosts . //将VM1的/etc/hosts拷贝到物理机上当前文件夹

image.png

image.png

-a 参数可以直接读取多个磁盘中的文件
VM1上有两个磁盘文件

image.png

下载cfg-eth0文件到/data-cyj目录
virt-copy-out -a VM1.qcow2 /etc/sysconfig/network-scripts/ifcfg-eth0 /data-cyj/

image.png

virt-copy-in

virt-copy-in -d VM1 /data-cyj/test /etc/
将物理主机上的文件拷贝到VM1虚拟机上。
注意:使用该上传命令时,虚拟机需要关机
在物理机上创建test文件;

image.png

上传到虚拟机VM1的/etc目录下

image.png

开机验证,查看test是否上传成功

image.png

本文原文
https://zhuanlan.zhihu.com/p/473681439