今天我将向大家展示一个实用的工具,用于管理Linux虚拟机和磁盘。通过虚拟化,人们开始在个人或公司PC中使用大量虚拟机。但是管理它们是困难的。我也面临这些困难。所以我寻找一个工具来帮助我,尤其是在更新方面。我附带了virt customize,这是libguestfs工具包中的一个工具。我们开始吧。
安装virt customize
为了使用virt customize命令,我们将安装libguestfs工具包。
为Ubuntu、Debian、Mint、Kali安装
$ sudo apt install libguestfs-tools

为Fedora、CentOS和Red Hat安装
$ sudo yum install libguestfs-tools-c
或者
$ sudo dnf install libguestfs-tools-c
加载图像
更新现有磁盘映像Virt customize打开磁盘,然后查找上次更新种子,然后尝试运行此发行版使用的更新命令。尚不支持Windows映像,但可以使用run命令更新Windows映像。在这里您可以为远程磁盘映像创建URI。自动检测磁盘格式。在加载图像时,我们可能会遇到一些错误,从而阻止加载图像。这通常是与权限相关的错误,可以通过 sudo
命令。
$ sudo virt-customize -a opensuse12.qcow2

将ISO安装到图像
我们还可以通过将ISO映像附加到VM映像中来运行交互式shell。我们将使用 --attach
命令提供ISO文件。
$ sudo virt-customize --attach fedora30.iso -a opensuse12.qcow2
连接Libvirt或Hypervisor
要连接虚拟机监控程序并运行virt customize,请使用带有虚拟机监控程序URI的-c选项,该选项位于本地libvirtd,并使用-d选项指定域名或UUID。在本例中,我们将连接本地hypervisor并打开名为Debian disk image的VM。
$ virt-customize -c qemu:///system -d debian[ 0.0] Examining the guest ...[ 35.0] Setting a random seed[ 35.0] Finishing off
在测试模式下运行操作
在映像内执行的所有操作都将是持久的。但如果我们想在测试或干运行模式下工作,我们可以使用 -n
选项,操作不会影响图像。
$ virt-customize -n -c qemu:///system -d debian[ 0.0] Examining the guest ...[ 6.0] Setting a random seed[ 7.0] Finishing off
设置RAM/内存
可以使用-m或–memory选项指定内存使用情况。默认内存大小可以通过guesfish get memsize命令查看,该命令为500MB。在本例中,我们将使用 -m
选项如下。
$ guestfish get-memsize500$ virt-customize -m 512 -c qemu:///system -d debian[ 0.0] Examining the guest ...[ 6.0] Setting a random seed[ 6.0] Finishing off
无网络启动
默认情况下,启动的映像将连接到默认网络(通常是internet连接)。我们可以阻止用 --no-network
选项如下。
$ virt-customize --no-network -c qemu:///system -d debian[ 0.0] Examining the guest ...[ 6.0] Setting a random seed[ 6.0] Finishing off
详细或调试模式
如果有问题需要排除或者我们需要更多关于启动的信息,我们可以使用 -v
详细选项。
$ sudo virt-customize -v -a fedora.qcow2

从截图中我们可以看到,所有的动作和配置都被详细地打印到终端上。
相关文章: 什么是ISO(国际标准化组织)?
删除文件
我们可以使用 --delete
选项,提供文件或文件夹名称。在本例中,我们将删除文件夹 /root/.ssh
.
$ sudo virt-customize -c qemu:///system -d fedora --delete /root/.ssh[ 0.0] Examining the guest ...[ 4.0] Setting a random seed[ 4.0] Deleting: /root/.ssh[ 5.0] Finishing off
设置主机名
我们可以为给定的系统设置主机名。我们将使用 --hostname
选项并提供 poftut.fed1
在这个例子中。 poftut
域部分在哪里 fed1
是主机名。
$ sudo virt-customize -c qemu:///system -d fedora --hostname poftut.fed1[ 0.0] Examining the guest ...[ 4.0] Setting a random seed[ 4.0] Setting the hostname: poftut.fed1[ 5.0] Finishing off
安装软件包
我们还可以使用 --install
选项。使用–install选项,我们还将提供要安装的包名称。在本例中,我们将安装名为httpd和vim的包。
$ sudo virt-customize -c qemu:///system -d fedora --install httpd,vim[ 0.0] Examining the guest ...[ 3.0] Setting a random seed[ 3.0] Installing packages: httpd[ 49.0] Finishing off
创建目录
要在文件系统上创建目录,请使用 --mkdir
选项。没有边界,就像根一样,你可以创建任何你想要的东西
$ sudo virt-customize -c qemu:///system -d fedora --mkdir /root/sil[ 0.0] Examining the guest ...[ 3.0] Setting a random seed[ 3.0] Making directory: /root/sil[ 4.0] Finishing off
Run命令
到目前为止,我们调用与标准Linux命令相关的选项,也可以使用–run命令选项在磁盘映像中运行命令。
$ sudo virt-customize -c qemu:///system -d fedora --run-command "rmdir /root/sil"[ 0.0] Examining the guest ...[ 3.0] Setting a random seed[ 3.0] Running: rmdir /root/sil[ 4.0] Finishing off
运行脚本
如果我们想运行脚本,我们可以使用–run命令和脚本路径。在本例中,我们将运行名为 test.sh
存储在名为 downloads
$ sudo virt-customize -c qemu:///system -d fedora --run downloads/test.sh[ 0.0] Examining the guest ...[ 3.0] Setting a random seed[ 3.0] Running: downloads/test.sh[ 3.0] Finishing off
将文件上载到图像
我们可以用 --upload
选项。我们将提供本地文件名和我们想要上传到的图像中的目标路径。在本例中,我们将上载名为 test.sh
进入图像 /root/test.sh
.
$ sudo virt-customize -c qemu:///system -d fedora --upload downloads/test.sh:/root/test.sh[ 0.0] Examining the guest ...[ 2.0] Setting a random seed[ 2.0] Uploading: downloads/test.sh to /root/test.sh[ 3.0] Finishing off