订阅本站
收藏本站
微博分享
QQ空间分享

使用Libguestfs Tools在KVM管理程序上安装VM虚拟磁盘的方法

lilin 分类:教程 时间:2019/11/29 00:07:09 评论: 加入收藏

本文介绍在Linux系统上安装及使用Libguestfs Tools在KVM管理程序上安装VM虚拟磁盘的方法。

 

前言

我已经在Vanilla KVM管理程序上管理了一些虚拟机一段时间了,假设你有一个要在虚拟机管理程序上安装虚拟磁盘的虚拟机,那么如何处理它?例如,重置root密码(在RHEL 8系统中重置root密码的方法),检查某些文件,或者VM可能已被盗用,并且你希望在不将VM置于运行模式的情况下对攻击源执行更多分析。

在我的设置中,我有一台安装了KVM并运行许多虚拟机的CentOS 7服务器,要能够安装VM虚拟磁盘,你需要安装Libguestfs,它是一组用于访问和修改虚拟机(VM)磁盘映像的工具,你可以用它来:

查看和编辑来宾内的文件、脚本更改为VM、监控磁盘使用/免费统计创造客人、P2V、V2V、执行备份。

 

在Linux系统上安装libguestfs的方法

1、在CentOS上安装libguestfs

要在CentOS服务器安装libguestfs,请运行以下命令

sudo yum -y install libguestfs-tools

2、在Ubuntu/Debian上安装libguestfs

请运行以下命令

sudo apt-get -y install libguestfs-tools

3、在Arch Linux上安装libguestfs

对于Arch Linux,使用以下命令从AUR安装libguestfs:

yaourt -S libguestfs

 

使用libguestfs在KVM上安装虚拟磁盘

现在你已经安装了libguestfs工具,你可以使用它安装VM的虚拟磁盘,建议在安装之前关闭VM,写入正在运行的虚拟机的磁盘可能会导致磁盘损坏,建议你使用只读访问权限,或者如果guest虚拟机正在运行guestfsd守护程序,则指定实时访问,在大多数libguestfs工具中,这些选项分别是-ro或-live。

首先检查你的活动VM:

sudo virsh list

关闭有问题的VM:

sudo virsh shutdown <domain-name or ID>

然后挂载磁盘:

sudo guestmount -d <domain> -i /mnt/

例:

sudo guestmount -d centos7 -i /mnt/

确认安装成功:

# df -hT | egrep "/mnt"

/dev/fuse fuse 20G 3.9G 16G 20% /mnt

使用选项的说明:

-d |–domain:从libvirt guest添加磁盘

-i |–inspector:自动挂载文件系统

以下是可以与guestmount命令一起使用的完整选项列表,这可以运行以下命令获得:

$ guestmount --help

附:所有guestmount选项的说明

-a |--add image - >添加图片

-c|--connect uri - >为-d选项指定libvirt URI

--dir-cache-timeout - >设置readdir缓存超时(默认为5秒)

-d |--domain - >从libvirt guest添加磁盘

--echo-keys - >不要为密码关闭回声

--fd=FD- > mountpoint准备就绪时写入管道FD

--format[=raw|..] - >强制-a选项的磁盘格式

--fuse-help - >显示额外的FUSE选项

-i |--inspector - >自动挂载文件系统

--help - >显示帮助信息并退出

--keys-from-stdin - >从stdin读取密码

--live - >连接到实时虚拟机

-m |--mount dev[:mnt[:opts[:fstype]] - >在mnt上挂载dev(如果省略,/)

--no-fork - >不要守护进程

-n |--no-sync - >不要自动同步

-o |--option - > opt将额外选项传递给FUSE

--pid-file - > filename将PID写入filename

-r |--ro - >挂载只读

--selinux - >对于后退compat只做什么都不做

-v |--verbose - >详细消息

-V |--version - >显示版本并退出

-w |--rw - >挂载读写

-x |--trace - >跟踪guest虚拟机API调用

 

挂载运行VM虚拟磁盘

对于正在运行的VM,你必须将其挂载为-ro或使用-live标志:

sudo guestmount --ro -d <domain> -i /mnt/

 

重置root密码示例

我将向你展示如何使用已安装的虚拟磁盘重置root密码,我们将使用chroot命令(Linux系统中的chroot简介),它是用于运行具有特殊根目录的命令或交互式shell工具

sudo chroot /mnt

passwd

完成后设置密码并卸载磁盘:

sudo guestunmount  /mnt

启动VM并测试是否可以使用设置的密码进行身份验证:

sudo virsh start <domain>

 

卸载虚拟磁盘

如果你已完成安装的磁盘,请通过运行命令卸载它:

$ sudo guestunmount mountpoint

例如:

$ sudo guestunmount  /mnt

 

TAG:

文章评论

留言与评论(共有 0 条评论)
   
验证码: