位置: 编程技术 - 正文

使用guestfish来管理KVM容器的详细教程(guest怎么用)

编辑:rootadmin

推荐整理分享使用guestfish来管理KVM容器的详细教程(guest怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:guest 启用,guest怎么用,guest怎么用,guest can use,启用guest用户,启用guest用户,guest怎么用,guest怎么用,内容如对您有帮助,希望把文章链接给更多的朋友!

1. 虚拟机镜像挂载及w2k8虚拟机启动自检慢问题解决办法

guestfish套件是镜像管理的利器,在没有guestfish这个套件之前,对虚拟机镜像的处理,要么虚拟机运行起来修改,要么使用下面介绍的办法,总之很不方便。

下面介绍的的挂载办法,只适应于块设备镜像的挂载。

在guestfish出来之前,对镜像的处理,只能是先转化成raw格式,raw在转化成裸格式,然后挂载,非常痛苦。

再一次感谢guestfish套件的作者。

w2k8虚拟机启动启动慢问题解决办法

在kvm虚拟机上,经常碰到这样的问题,就是windows server的虚拟机,有时候重启的时候,磁盘检查需要几个小时,即使新装的系统也是这样,下面我们介绍通过裸设备挂载的方式擦除windows server磁盘检查标志的方法,绕过这个问题。

操作方法:

第一步 在宿主机上安装最新的ntfs-3g复制代码代码如下: wget -zxvf ntfs-3g_ntfsprogs-.1..tgzcd ntfs-3g_ntfsprogs-.1../configure --bindir=/usr/binmakemake install

第二步 扩展镜像,将镜像挂载,并检查

先使用losetup –f 得到可用的loop设备 复制代码代码如下: losetup -f/dev/loop0

挂载镜像 复制代码代码如下: losetup /dev/loop0 /dev/vmVG/ptyyb-webzb-_vda

使用kartx 将镜像分区映射,如果镜像是一个分区,默认会挂载到/dev/mapper/loop0p

因为默认安装的时候会有一个boot分区,那么c盘就在/dev/mapper/loop0p2上,根据自己实际情况挂载 复制代码代码如下: kpartx -av /dev/loop0

检查镜像,尝试 –b –d很重要,只有最新版的ntfs-3g支持 复制代码代码如下: ntfsfix -b -d /dev/mapper/loop0p1

分离镜像映射 复制代码代码如下: kpartx -dv /dev/loop0

分离镜像挂载 复制代码代码如下: losetup -d /dev/loop0

2. KVM虚拟化与guestfish套件

我们来看看guestfish套件是什么

guestfish是一套虚拟机镜像管理的利器,提供一系列对镜像管理的工具,也提供对外的API。

guestfish主要包含以下工具:

guestfish interactive shell 挂载镜像,并提供一个交互的shell。

guestmount mount guest filesystem in hos 将镜像挂载到指定的目录。

guestumount unmount guest filesystem 卸载镜像目录。

virt-alignment-scan 镜像块对齐扫描。

virt-builder — quick image builder 快速镜像创建。

virt-cat(1) — display a file 显示镜像中文件内容。

virt-copy-in(1) — copy files and directories into a VM 拷贝文件到镜像内部。

virt-copy-out(1) — copy files and directories out of a VM 拷贝镜像文件出来。

virt-customize(1) — customize virtual machines 定制虚拟机镜像

virt-df(1) — free space 查看虚拟机镜像空间使用情况。

virt-diff(1) — differences 不启动虚拟机的情况下,比较虚拟机内部两份文件差别。

virt-edit(1) — edit a file 编辑虚拟机内部文件。

virt-filesystems(1) — display information about filesystems, devices, LVM 显示镜像文件系统信息。

virt-format(1) — erase and make blank disks 格式化镜像内部磁盘。

virt-inspector(1) — inspect VM images 镜像信息测试。

virt-list-filesystems(1) — list filesystems 列出镜像文件系统。

virt-list-partitions(1) — list partitions 列出镜像分区信息。

virt-log(1) — display log files 显示镜像日志。

virt-ls(1) — list files 列出镜像文件。

virt-make-fs(1) — make a filesystem 镜像中创建文件系统。

virt-p2v(1) — convert physical machine to run on KVM 物理机转虚拟机。

virt-p2v-make-disk(1) — make P2V ISO 创建物理机转虚拟机ISO光盘。

virt-p2v-make-kickstart(1) — make P2V kickstart 创建物理机转虚拟机kickstart文件。

virt-rescue(1) — rescue shell 进去虚拟机救援模式。

virt-resize(1) — resize virtual machines 虚拟机分区大小修改。

virt-sparsify(1) — make virtual machines sparse (thin-provisioned) 镜像稀疏空洞消除。

virt-sysprep(1) — unconfigure a virtual machine before cloning 镜像初始化。

virt-tar(1) — archive and upload files 文件打包并传入传出镜像。

virt-tar-in(1) — archive and upload files 文件打包并传入镜像。

virt-tar-out(1) — archive and download files 文件打包并传出镜像。

virt-v2v(1) — convert guest to run on KVM 其他格式虚拟机镜像转KVM镜像。

virt-win-reg(1) — export and merge Windows Registry keys windows注册表导入镜像。

libguestfs-test-tool(1) — test libguestfs 测试libguestfs

libguestfs-make-fixed-appliance(1) — make libguestfs fixed appliance

hivex(3) — extract Windows Registry hive 解压windows注册表文件。

hivexregedit(1) — merge and export Registry changes from regedit-format files 合并、并导出注册表文件内容。

hivexsh(1) — Windows Registry hive shell window注册表修改交互的shell。

hivexml(1) — convert Windows Registry hive to XML 将window注册表转化为xml

hivexget(1) — extract data from Windows Registry hive 得到注册表键值。

guestfsd(8) — guestfs daemon guestfs服务。3. guestfish安装与注意事项

guestfish套件安装

guestfish套件安装非常简单,一条命令就可以。复制代码代码如下: yum install libguestfs-tools

注意:

默认安装是不安装windows系统支持的,如果需要修改windows系统镜像,需要再运行如下命令。 复制代码代码如下: yum install libguestfs-winsupport

4. 使用guestfish查看虚拟机信息

虚拟机镜像信息查看,主要通过virt-inspector和virt-inspector2命令

复制代码代码如下: </p><p>virt-inspector - Display OS version, kernel, drivers, mount points, applications, etc. in a virtual machine

virt-inspector 显示os版本、内核、驱动、挂载点、应用等等。

复制代码代码如下: virt-inspector2 - Display operating system version and other information about a virtual machine

virt-inspector2 显示os版本和其他信息。

virt-inspector示例 复制代码代码如下: virt-inspector centos.qcow2linux centos i 5.3 (CentOS release 5.3 (Final)) on /dev/vmvg/root: Mountpoints: /dev/vmvg/root / /dev/sda1 /boot /dev/vmvg/swap swap Filesystems: /dev/sda1: label: /boot UUID: ec-cc-4ea1-ad-cfeff2f type: ext3 content: linux-grub /dev/vmvg/root: label: UUID: be-d9--9d5d-2ced8ed8f2 type: ext3 content: linux-root /dev/vmvg/swap: type: swap Modprobe aliases: binfmt- binfmt_aout binfmt- binfmt_aout binfmt- binfmt_aout binfmt- binfmt_aout binfmt- binfmt_aout

也可以通过--query输出一些固定内容,方便脚本判断。 复制代码代码如下: virt-inspector --query centos.qcow2windows=nolinux=yesrhel=nofedora=nodebian=nofullvirt=yesxen_domU_kernel=noxen_pv_drivers=yesvirtio_drivers=yeskernel_arch=iuserspace_arch=i

输出也可以是xml格式 加--xml参数就可以

virt-inspector windows虚拟机示例 复制代码代码如下: windows i 5.2 (Microsoft Windows Server ) on /dev/sda1: Mountpoints: /dev/sda1 / Filesystems: /dev/sda1: type: ntfs content: windows-root Applications:

virt-inspector2 输出为xml格式,系统相关信息比virt-inspector详细

virt-inspector2 示例 复制代码代码如下: virt-inspector2 centos.qcow2<?xml version="1.0"?><operatingsystems> <operatingsystem> <root>/dev/vmvg/root</root> <name>linux</name> <arch>i</arch> <distro>centos</distro> <product_name>CentOS release 5.3 (Final)</product_name> <major_version>5</major_version> <minor_version>3</minor_version> <package_format>rpm</package_format> <package_management>yum</package_management> <hostname>localhost.localdomain</hostname> <format>installed</format> <mountpoints> <mountpoint dev="/dev/vmvg/root">/</mountpoint> <mountpoint dev="/dev/sda1">/boot</mountpoint> </mountpoints> <filesystems>

virt-inspector2 windows虚拟机示例 复制代码代码如下: <arch>i</arch> <distro>windows</distro> <product_name>Microsoft Windows Server </product_name> <major_version>5</major_version> <minor_version>2</minor_version> <windows_systemroot>/WINDOWS</windows_systemroot> <windows_current_control_set>ControlSet</windows_current_control_set> <hostname>ks-e1e4ad</hostname> <format>installed</format> <mountpoints> <mountpoint dev="/dev/sda1">/</mountpoint> </mountpoints> <filesystems> <filesystem dev="/dev/sda1"> <type>ntfs</type> <uuid>4AFE7E1</uuid> </filesystem> </filesystems> <drive_mappings> <drive_mapping name="C">/dev/sda1</drive_mapping> </drive_mappings> <applications> <application> <name>Google Chrome</name>

5. 使用guestfish查看虚拟机分区及文件系统

虚拟机分区及文件系统查看主要使用三个命令

复制代码代码如下: virt-list-partitions - List partitions in a virtual machine or disk image

列出虚拟机镜像文件分区信息

使用guestfish来管理KVM容器的详细教程(guest怎么用)

复制代码代码如下: virt-filesystems - List filesystems, partitions, block devices, LVM in a virtual machine or disk image

列出虚拟机镜像文件文件系统,分区,块设备,lvm信息

复制代码代码如下: virt-alignment-scan</p><p>virt-alignment-scan - Check alignment of virtual machine partitions

查看虚拟机镜像分区是否块对齐

示例

linux 镜像查看 复制代码代码如下: virt-list-partitions centos.qcow2/dev/sda1/dev/sda2virt-list-filesystems centos.qcow2/dev/sda1/dev/vmvg/root

windows 镜像查看 复制代码代码如下: virt-list-filesystems win2k3.qcow2 /dev/sda1 virt-list-partitions win2k3.qcow2 /dev/sda1

检查镜像是否块对齐复制代码代码如下: virt-alignment-scan -a win2k3.qcow2/dev/sda1 bad (alignment < 4K)virt-alignment-scan -a centos.qcow2/dev/sda1 K ok/dev/sda2 K ok

6. 去掉磁盘空洞--KVM虚拟镜像的稀疏问题

RAW格式和QCOW2

KVM虚拟化文件系统镜像,一般使用RAW或者QCOW2的方式:

RAW 一次性将要使用的镜像空间分配完。

QCOW2 精简模式,磁盘用多少,才占多少空间。

ext4的稀疏特性

我们使用不通的方式的创建方式几个镜像文件对比下, 复制代码代码如下: qemu-img create -f raw test.raw 5Gqemu-img create -f qcow2 test.qcow2 5Gdd if=/dev/zero of=/root/test.dd bs=1G count=5

通过ls du查看,我们会发现一个非常有意思的事情 复制代码代码如下: ls -l-rw-r--r-- 1 root root 5.0G Oct : test.dd-rw-r--r-- 1 root root K Oct : test.qcow2-rw-r--r-- 1 root root 5.0G Oct : test.raw</p>

会发现raw是5G 复制代码代码如下: du test* test.dd test.qcow test.raw

会发现raw是0G

为什么会这样呢,这是因为ext4文件系统是一个支持稀疏特性的文件系统,当文件内容全部是空的时候,ext4并不分配实际的空间。

那如果想要使用RAW方式,并希望一次占用完所有的空间,可以使用dd命令的方式。

qcow2 的稀疏问题

qcow2方式也有稀疏的问题,在磁盘级别上看,镜像会有大量连续的相同空洞,比如刚创建的镜像的swap分区,通过virt-sparsify 我们可以消除这些空洞,从而缩小磁盘大小,便于我们传输磁盘镜像。

使用virt-sparsify 前,我们需要先创建一个新的同样大小的镜像 qemu-img create -f qcow2 test2.qcow2 5G

然后使用virt-sparsify,去除镜像空洞,语法为 复制代码代码如下: virt-sparsify -x /root/test.qcow2 --convert qcow2 /root/test2.qcow2

7. 用guestfish操作虚拟机内部文件

虚拟机内部文件管理主要使用以下命令:

复制代码代码如下: virt-df - Display free space on virtual filesystems

镜像磁盘空间使用查看

复制代码代码如下: virt-ls - List files in a virtual machine

列出指定目录内文件

复制代码代码如下: virt-cat - Display files in a virtual machine

显示指定文件内容

复制代码代码如下: virt-edit - Edit a file in a virtual machine

编辑指定文件

复制代码代码如下: virt-copy-in - Copy files and directories into a virtual machine disk image.

将文件拷贝到虚拟机内部

复制代码代码如下: virt-copy-out - Copy files and directories out of a virtual machine disk image.q

将虚拟机内部文件拷贝出来

复制代码代码如下: virt-tar-in - Unpack a tarball into a virtual machine disk image

tar压缩文件拷贝进虚拟机并解压

复制代码代码如下: virt-tar-out - Pack a virtual machine disk image directory into a tarball.

镜像内指定目录文件拷贝并压缩

复制代码代码如下: virt-tar - Extract or upload files to a virtual machine

解压或者上传文件到虚拟机

示例

查看镜像磁盘空间 复制代码代码如下: virt-df -a centos.qcow2Filesystem 1K-blocks Used Available Use%centos.qcow2:/dev/sda1 %centos.qcow2:/dev/vmvg/root 8%

查看镜像/root目录内容复制代码代码如下: virt-ls -a centos.qcow2 /root.bash_history.bash_logout.bash_profile.bashrc.cshrc.tcshrcanaconda-ks.cfginstall.loginstall.log.syslog

显示指定文件内容 复制代码代码如下: virt-cat -a centos.qcow2 /root/anaconda-ks.cfg# Kickstart file automatically generated by anaconda....

编辑指导文件 复制代码代码如下: virt-edit -a centos.qcow2 /root/anaconda-ks.cfg

文件拷贝进镜像及拷贝出镜像复制代码代码如下: touch test.txtvirt-copy-in test.txt -a centos.qcow2 /root/virt-copy-out -a centos.qcow2 /root/test.txt /home

压缩文件拷贝进虚拟机并解压 复制代码代码如下: virt-tar-in -a disk.img data.tar /destination

压缩文件拷贝进虚拟机并解压复制代码代码如下: virt-tar-out -a disk.img /dir files.tar

将虚拟机的home目录拷贝出来并打包 复制代码代码如下: virt-tar -x domname /home home.tar

上传本地的压缩文件到虚拟机并解压复制代码代码如下: virt-tar -u domname uploadstuff.tar /tmp

8. guestfish修改镜像格式和大小

修改镜像格式和大小主要使用以下命令

复制代码代码如下: virt-convert - convert virtual machines between formats

转化虚拟机镜像格式

复制代码代码如下: virt-resize - Resize a virtual machine disk

修改虚拟机镜像磁盘

示例

raw转qcow2格式

需要先用qemu-img命令创建一个一样大小的空qcow2格式镜像文件,然后使用virt-convert命令

复制代码代码如下: virt-convert -i raw -o qcow2 old.img new.qcow2

原始镜像可以是 vmware镜像vmx,kvm进行,ovf的镜像。

将指定的分区扩大5G

创建一个新的镜像,比原来大5G,然后扩展 复制代码代码如下: virt-resize --expand /dev/sda2 olddisk newdisk

将boot增加M,剩下的空间扩充给/dev/sda2复制代码代码如下: virt-resize --resize /dev/sda1=+M --expand /dev/sda2 olddisk newdisk

lv扩展 复制代码代码如下: virt-resize --expand /dev/sda2 --LV-expand /dev/vg_guest/lv_root olddisk newdisk

扩展分区,并将raw格式转化成qcow2格式 复制代码代码如下: qemu-img create -f qcow2 newdisk.qcow2 Gvirt-resize --expand /dev/sda2 olddisk newdisk.qcow2

注意:

1 如果是扩展分区,目标磁盘文件必须大于原生磁盘;

2 磁盘缩小比较复杂,一般要求缩小到的空间远大于文件系统的大小。9. guestfish挂载、修改、运行救援方式

复制代码代码如下: guestmount - Mount a guest filesystem on the host using FUSE and libguestfs

挂载镜像到某个目录

复制代码代码如下: guestfish - the libguestfs Filesystem Interactive SHell

挂载镜像并得到一个交互的shell

复制代码代码如下: virt-rescue - Run a rescue shell on a virtual machine

运行一个镜像的救援模式

示例

只读方式将镜像挂载到/mnt目录 复制代码代码如下: guestmount -a windows.img -m /dev/sda1 --ro /mnt

将linux虚拟机的根目录挂载到宿主机的/mnt目录 复制代码代码如下: guestmount -a linux.qcow2 -m /dev/sda2 /mnt

guestfish编辑镜像grub文件 复制代码代码如下: guestfish --rw --add disk.img --mount /dev/vg_guest/lv_root --mount /dev/sda1:/boot edit /boot/grub/grub.conf

进入镜像的救援模式 复制代码代码如下: $ virt-rescue --suggest -d Fedora Inspecting the virtual machine or disk image ... This disk contains one or more operating systems. You can use these mount commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems. # /dev/vg_fx/lv_root is the root of a linux operating system # type: linux, distro: fedora, version: .0 # Fedora release (Lovelock) mount /dev/vg_fx/lv_root /sysroot/ mount /dev/vda1 /sysroot/boot mount --bind /dev /sysroot/dev mount --bind /dev/pts /sysroot/dev/pts mount --bind /proc /sysroot/proc mount --bind /sys /sysroot/sys Another way is to list the logical volumes (with lvs(8)) and partitions (with parted(8)) and mount them by hand: ><rescue> lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert lv_root vg_fx -wi-a- 8.G lv_swap vg_fx -wi-a- .M ><rescue> mount /dev/vg_fx/lv_root /sysroot ><rescue> mount /dev/vda1 /sysroot/boot ><rescue> ls /sysroot Another command to list available filesystems is virt-filesystems(1). To run commands in a Linux guest (for example, grub), you should chroot into the /sysroot directory first: ><rescue> chroot /sysroot

KVM虚拟网络优化方案整理 一个完整的数据包从虚拟机到物理机的路径是:虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡KVM的网络优化方案,总的来说,就是让虚拟机访问

在Linux系统中将SSD当块设备缓存的方法 原理写操作先缓存到ssd硬盘上,然后通过一定策略写到普通硬盘上;读操作热点数据可以缓存到ssd硬盘上,提高读取数据的速度。软件ssd缓存开源软件

为何数据中心要使用配置管理系统? 由于结合了额外的自动化功能,配置管理节约了IT团队的时间。那为什么有些数据中心对它视若不见呢?配置管理已经从服务器农场中的暗黑艺术解放出

标签: guest怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/354086.html 转载请保留说明!

上一篇:对KVM虚拟机进行cpu pinning配置的方法(kvm虚拟机性能调优)

下一篇:KVM虚拟网络优化方案整理(kvm虚拟化网络配置)

  • 车船税可以免掉吗
  • 协定税率的简称
  • 委托加工物资的消费税计入成本吗
  • 装修公司财务报销制度和流程
  • 年底计提是什么意思
  • 邮票可以抵个税吗
  • 机械设备租赁印花税谁交
  • 有两种税率的如何填申报表
  • 房地产公司将自建自用房产出售 土地增值税
  • 房租费没有发票怎么做账务处理
  • 成品油增值税抵减政策
  • 优惠券抵扣账务处理流程
  • 原材料变成半成品
  • 计提坏账准备,坏账准备是增加还是减少
  • 补充养老保险税收规定扣除率
  • 代开专票地税附加税申报办法
  • 增值税税负率计算器
  • 公司的招标代理费计入什么科目
  • 如何根据原始凭证填制记账凭证
  • 发票过期作废不了怎么办
  • 可转债转换为股权投资的企业所得税处理
  • 收到汇算清缴退税的现金流量
  • 根据规定签发汇票凭证必须记载的事项有
  • 银行定期存款的利息是每个月给你吗
  • 1697508857
  • 个人以非货币性资产投资个人所得税
  • 单位社保部分会扣吗
  • 什么叫经济作物和粮食作物
  • 补交上一年度的企业所得税费用的分录
  • windows 10无法开机
  • 本年利润和未分配利润怎么结转
  • 出口货物视同内销征税的会计核算
  • 房产自用改出租房产税如何申报
  • 计算机视觉会议2023年11月
  • 2023前端面试题百度云
  • 企业应收票据贴现 哪个部门负责
  • 成品油发票当月冲红
  • php ffi 性能
  • 银行存款账面余额与银行账户余额
  • phpinfo()中Loaded Configuration File(none)的解决方法
  • vue3+ts+vite
  • 工具人
  • 代销手续费怎么开票
  • 库存现金科目的辅助核算项目为日记账
  • 织梦怎么建站
  • 外贸企业有哪些公司青岛
  • 周转材料低值易耗品怎么结转
  • 什么情况下计入库存商品
  • 营业额和营业收入怎么算
  • 苗圃的账务处理
  • 企业办税人员如何实名认证
  • 冲减当期利润
  • 资产减值准备怎么理解
  • 增值税申报表和企业所得税申报表的关系
  • 发票免税怎么做账
  • 小规模纳税人如何申请专票
  • 计算机二级考试时间2024
  • win7系统宽带连接651
  • Windows Server 2008的NPS策略应用
  • win10系统无法运行exe文件
  • win7开启路由功能
  • win8怎么打开远程连接
  • 用javascript
  • 很实用的话
  • node.js入门
  • 使用androidx 找不到v7
  • opengl es4
  • jqueryon事件
  • 用批处理删除注册表项
  • js的a标签
  • jqueryui
  • python ftp文件上传
  • javascript 拖拽
  • 使用jquery实现的项目
  • 税务局的章
  • 浦东经济开发区官网
  • 江苏省无锡市国4车辆报废新规定
  • 关于铁路安全的漫画
  • 苏州国税电子税务局
  • 滨州市望海花园北侧规划
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设