这是命令 guestfs-recipes 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
guestfs-recipes - libguestfs、guestfish 和 virt 工具食谱
商品描述
此页面包含您可以使用 libguestfs 执行的操作的食谱和链接,
客鱼(1) 和 virt 工具。
Access a 远程 磁盘 图片 运用 客鱼
如果磁盘映像位于可使用 SSH、HTTP、FTP、NBD 访问的远程服务器上,
iSCSI 或类似的,然后您可以直接打开它。 请参阅“添加远程存储”
客鱼(1) 举几个例子。 这需要 libguestfs ≥ 1.22 和 qemu ≥ 1.5。
审计 a 虚拟 HPMC胶囊 Setuid 档
参见:“示例”中 虚拟机(1)。
审计 a 虚拟 HPMC胶囊 漏洞 和 安全 问题
请参见:
https://rwmj.wordpress.com/2013/05/16/scanning-offline-guests-using-openscap-and-guestmount/#content
更改 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 背景 图片 in a Windows XP VM
下面的链接解释了如何使用 客鱼(1) 为用户更改背景图片
Windows XP 虚拟机。 不幸的是,该技术似乎与
每个版本的 Windows。
https://lists.fedoraproject.org/pipermail/virt/2011-May/002655.html
https://lists.fedoraproject.org/pipermail/virt/2011-May/002658.html
校验 a 文件 or 设备 中 a 磁盘 图片
要对磁盘映像中的整个设备或分区、LV 等进行校验和:
guestfish --ro -a disk.img 运行:校验和设备 md5 /dev/sda1
用您想要的校验和类型替换“md5”。 见“guestfs_checksum_device”
来宾(3) 获取支持的类型列表。
/ dev / sda1 意思是“第一个分区”。 你可以用 / dev / sda上的 校验整个磁盘
映像,或逻辑卷或 RAID 设备的名称。
要校验单个文件:
guestfish --ro -a disk.img -i 校验和 sha256 / etc / passwd文件
或对于 Windows 来宾:
来宾鱼 --ro -a disk.img -i \
校验和 sha256 'win:\windows\system32\config\SOFTWARE'
克隆 a 虚拟
使用工具的组合,如 cp(1) dd(1) 和 virt 工具,如 虚拟系统准备(1)
虚拟化(1)和 虚拟调整大小(1)。
更多详细信息,请参见:“复制和克隆” 虚拟系统准备(1)。
转化率 a CD-ROM光碟 / DVD / ISO 至 a 压缩包
这将转换输入 光盘.iso 输出 光盘.tar.gz:
guestfish --ro -a cd.iso -m /dev/sda tgz-out / cd.tar.gz
仅导出一个子目录,例如。 /文件, 做:
guestfish --ro -a cd.iso -m /dev/sda tgz-out /files cd.tar.gz
转化率 , 一种 格式/文件系统 至 另一个
如果你有一个格式/文件系统/分区/卷管理器的数据磁盘,你可以
使用此技术将其转换为另一个。
在这个例子中,我们从一个数据磁盘开始,它有一个单独的分区,其中包含一个
文件系统,我们想创建另一个包含相同文件但在 ext3 上的磁盘
嵌入在稀疏原始格式磁盘上的逻辑卷中的文件系统。
首先创建格式化但为空的目标磁盘:
截断 -s 10G 目标.img
virt-format -a target.img --partition=mbr --lvm --filesystem=ext3
现在,通过管道将两个 guestfish 实例连接在一起以将旧数据传输到新磁盘:
guestfish --ro -a source.img -m /dev/sda1 -- tar-out / - | \
guestfish --rw -a target.img -m /dev/VG/LV --tar-in - /
要浏览最终的磁盘映像,请执行以下操作:
guestfish --ro -a target.img -m /dev/VG/LV
> 二 /
这种技术非常强大,例如允许您拆分源目录
在目标文件系统上。
请注意,这不适用于可引导虚拟机磁盘(至少,不能直接使用),因为
它不会复制引导加载程序。
转化率 Windows DVD 至 启动 USB 键
http://rwmj.wordpress.com/2013/05/09/tip-convert-a-windows-dvd-iso-to-a-bootable-usb-key-using-guestfish/#内容
转化率 Xen风格 无分区 图片 至 分区 磁盘 图片
Xen 磁盘映像通常是无分区的,这意味着文件系统直接从
没有分区表的磁盘的开头。 事实上,你可以直接使用这些
KVM(假设来宾不是 Windows),但有些人喜欢将它们转换为常规
分区磁盘映像,这是 Windows 客户机所必需的。 这是如何使用
来宾鱼做到这一点:
客鱼
> 添加-ro input.img
> sparse output.img 10G # 调整输出大小
> 跑
# 在输出磁盘上创建分区表:
> 部分初始化 /dev/sdb mbr
> 部分添加 /dev/sdb p 2048 -2048
# 复制数据到目标分区:
> 复制设备到设备 /dev/sda /dev/sdb1 稀疏:真
# 可选地调整目标文件系统的大小。 使用 ntfsresize
# 对于 Windows 来宾:
> resize2fs /dev/sdb1
这样的磁盘映像不能直接启动。 您可能需要使用外部启动它
内核和 initramfs(见下文)。 或者您可以使用 guestfish 命令“syslinux”或
“extlinux”安装SYSLINUX引导加载程序。
创建 空的 磁盘 图片
这个 虚拟格式(1) 工具可以直接做到这一点。
使用 VHDL 语言编写 virt-make-fs(1) 创建一个包含内容的磁盘映像。 这也可以创造一些
标准磁盘映像,例如虚拟软盘设备 (VFD)。
您也可以使用 客鱼(1) -N 创建空磁盘映像的选项。 有用的指南
下面解释了可用的选项。
https://rwmj.wordpress.com/2010/09/08/new-guestfish-n-options-in-1-5-9/#content
虚拟建设者(1)可以创建最少的客人。
删除 a 文件 (或 other 简单 文件 操作)
使用客鱼。 要删除文件:
guestfish -a disk.img -i rm /文件/到/删除
触摸文件(更新或创建文件):
guestfish -a disk.img -i touch /文件/to/touch
统计一个文件。 由于这是一个只读操作,我们可以通过添加
--罗 旗。
guestfish --ro -a disk.img -i stat /文件/到/stat
有几十个这样的命令。 看 客鱼(1) 或“guestfish -h”的输出
变化 二 客人; 我们的 a 快照 至 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 当前 版本
由于 libguestfs ≥ 1.26,使用 虚拟差异(1) 寻找两个客人之间的差异(对于
例如,如果它们最初是从同一来源克隆的),或在两个快照之间
来自同一个客人。 在早期版本的 libguestfs 中,使用 虚拟机(1)。
关闭 a systemd 服务
以下相当于“systemctl mask ...”。 禁用“云初始化”
服务,因此它不会在下次启动时启动:
来宾鱼-a disk.img -i \
ln-sf /dev/null /etc/systemd/system/cloud-init.service
要禁用 tmp-on-tmpfs:
来宾鱼-a disk.img -i \
ln -sf /dev/null /etc/systemd/system/tmp.mount
上述命令的一个问题是,如果您获得了该命令的名称,则没有反馈
您试图掩盖错误的服务。 但是你可以使用 虚拟机(1) 列出可用的
像这样的系统服务:
virt-ls -a /tmp/fedora-19.img -R /lib/systemd/系统
倾倒 原 文件系统 内容 , 内 a 磁盘 图片 or VM
您可以使用 客鱼(1) “下载”命令从中提取原始文件系统内容
磁盘映像或 VM 中的任何文件系统(即使是加密或隐藏在 LV 中的文件系统)
或 RAID 设备):
guestfish --ro -a disk.img 运行:下载/dev/sda1 sda1.img
guestfish --ro -d 来宾运行:下载/dev/vg_guest/lv_root lv.img
要下载到标准输出,请将文件名替换为“-”字符:
guestfish --ro -a disk.img 运行:下载/dev/sda1 - | gzip > sda1.gz
要列出磁盘映像中的文件系统,请使用 虚拟文件系统(1)。
另请参阅“上传原始文件系统内容”。
编辑 蛴螬 配置 in a VM
您可以使用它来:
· 修复无法启动的虚拟机。
· 更改用于启动 VM 的内核。
· 更改内核命令行选项。
使用 VHDL 语言编写 虚拟编辑(1) 编辑grub配置:
virt-edit -d BrokenGuest /boot/grub2/grub.cfg
或用于在无法启动的 VM 中进行一般修补 虚拟救援(1) 像这样:
虚拟救援-d BrokenGuest
导出模板 任何 目录 , a VM
出口 /主页 从 VM 到本地目录使用 虚拟拷贝(1):
virt-copy-out -d 来宾 /主页 .
备注:
· 命令的最后一个点不是打印错误。 这意味着我们要复制到
当前目录。
· 这会在当前目录下创建一个名为“home”的目录。
如果来宾是 Windows 来宾,则您可以使用驱动器号和反斜杠,但您
必须用“win:”前缀路径并引用它以保护它免受shell的影响,如下所示:
virt-copy-out -d WinGuest 'win:c:\windows\system32\config' 。
要将输出作为压缩的 tarball,请执行以下操作:
virt-tar-out -d 来宾 /主页 - | gzip --best > home.tar.gz
尽管这听起来很诱人,但这通常不是从计算机上获取备份的可靠方法。
运行客人。 请参阅常见问题解答中的条目: http://libguestfs.org/FAQ.html#备份
找到最适合您的地方 这 用户 is 运用 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 最先进的 空间
这个简单的脚本检查 Linux 来宾以找出哪个用户使用最多的空间
在他们的主目录中:
#!/ bin / sh的 -
设置 -e
虚拟机=“$1”
目录=/主页
eval $(guestfish --ro -d "$vm" -i --listen)
对于 $(guestfish --remote ls "$dir") 中的 d; 做
echo -n "$dir/$d"
echo -ne '\t'
guestfish --remote du "$dir/$d";
完成 | 排序 -nr -k 2
guestfish --远程退出
导出模板 外部 核心 和 初始化文件 (初始化)
如果 Linux 来宾没有引导加载程序或者它坏了,那么您通常可以引导它
使用外部内核和 initramfs。 在这种配置中,管理程序就像一个
引导加载程序,将内核从主机磁盘加载到客户内存中并直接跳转
进入内核。
但是,您可能想知道如何获得与您的磁盘映像相对应的正确内核
有。 由于 libguestfs ≥ 1.24 虚拟建设者(1) 可以获得最新的内核和对应的
initramfs 给你:
mkdir 输出目录
virt-builder --get-kernel disk.img -o 输出目录
ls -lh 输出目录
积极 DHCP 地址 , a VM
下面的链接解释了获得最后一个的许多不同的可能技术
分配给虚拟机的 DHCP 地址。
https://rwmj.wordpress.com/2011/03/31/tip-code-for-getting-dhcp-address-from-a-virtual-machine-disk-image/#content
在 libguestfs 源示例目录中,您将找到最新版本的
virt-dhcp-地址.c 程序。
积极 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 操作 系统 产品展示 姓名 绳子
将以下脚本保存到名为 产品名称.sh:
#!/ bin / sh的 -
设置 -e
eval "$(guestfish --ro -d "$1" --i --listen)"
root="$(guestfish --remote inspect-get-roots)"
guestfish --remote inspect-get-product-name "$root"
guestfish --远程退出
使脚本可执行并在命名的来宾上运行它:
# 产品名称.sh RHEL60x64
红帽企业 Linux 服务器 6.0 版(圣地亚哥)
您还可以在 虚拟检查员(1) XML 使用“xpath”命令
线工具或来自您最喜欢的编程语言:
# virt-inspector RHEL60x64 > xml
# xpath '//product_name' < xml
找到 1 个节点:
-- 节点 --
红帽企业 Linux 服务器 6.0 版(圣地亚哥)
积极 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 默认 靴 核心 HPMC胶囊 a Linux VM
下面的链接包含一个用于打印 Linux VM 的默认引导内核的程序。
https://rwmj.wordpress.com/2010/10/30/tip-use-augeas-to-get-the-default-boot-kernel-for-a-vm/#content
它使用 Augeas,并且该技术通常适用于许多不同的任务,例如
如:
· 列出来宾中的用户帐户
· 配置使用哪些存储库
· 它连接到哪些 NTP 服务器
· 上次启动时的启动消息是什么
· 列出最近登录的人
http://augeas.net/
挂 宾客
有多种方法可以使用 libguestfs 找出来宾挂起的原因或
无反应:
1. 使用 virt-cat 读取日志文件:
virt-cat 访客 /var/log/messages | 较少的
2. 阅读 Windows 事件日志(仅限 Windows Vista 或更高版本):
https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content
3. 找出来宾中最后更新的文件:
https://rwmj.wordpress.com/2012/02/27/using-libguestfs-to-find-out-why-a-windows-guest-was-hanging/#content
这可能会为您提供有关正在运行的程序的线索。
十六进制倾销 行业 , 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 客人
十六进制转储引导分区(主引导记录/第一扇区):
guestfish --ro -a disk.img 运行:pread-device /dev/sda 0x200 0 |
十六进制转储 -C
(0x200 = 512 字节,这是传统 PC 扇区的大小)
要十六进制转储第 N 个分区,请在以下命令中用数字替换“N”:
来宾鱼 --ro -a disk.img \
运行: pread-device /dev/sda 0x200 $((N*0x200)) |
十六进制转储 -C
十六进制编辑 行业 in 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 客人
十六进制编辑引导分区(主引导记录/第一扇区):
guestfish --rw -a disk.img 运行:hexedit /dev/sda 0x200
安装 包 (转速, Debian 套餐) in a 客人
从 libguestfs 1.26 开始, 虚拟建设者(1) 虚拟定制(1)和 虚拟系统准备(1) 有一个
- 安装 在 Linux 来宾中安装软件包的选项。 (如果有,请使用 virt-customize
一个现有的来宾,或者 virt-builder 如果你想从头开始创建一个来宾)。
例如:
virt-builder fedora-20 --安装 emacs
安装 包 , an 备用 知识库
从 libguestfs 1.26 开始,您可以使用 虚拟建设者(1) 虚拟定制(1)或 虚拟系统准备(1)
- 编辑 在安装软件包之前编辑存储库元数据的选项
例如,这将从 Fedora 中的更新测试存储库安装软件包:
virt-builder fedora-20 \
--edit '/etc/yum.repos.d/fedora-updates-testing.repo:
s/启用=0/启用=1/'\
--安装emacs
安装 系统操作系统 引导程序 in a 客人
SYSLINUX 是一个小巧、易于配置的引导加载程序,适用于 Linux 和 Windows 客户机。 如果你的
来宾不可引导,您可以使用来宾鱼安装 SYSLINUX 引导加载程序
命令“syslinux”(对于基于 FAT 的客户机)或“extlinux”(对于基于 ext2/3/4 和 btrfs 的
客人)。
本指南假设有一个 Linux 来宾,其中 / dev / sda1 is /启动, /引导/ vmlinuz 是客人
内核,和 / dev / sda3 是根分区。 对于 Windows 来宾,您需要一个 FAT-
格式化的引导分区,您需要改用“syslinux”命令。
创建一个 系统Linux.cfg 配置文件。 您应该在以下位置检查 SYSLINUX 文档
http://www.syslinux.org 但它可能看起来像这样:
默认 linux
标签 linux
说启动内核
内核 vmlinuz
初始化初始化
追加 ro root=/dev/sda3
找到 syslinux 主引导记录(一个名为
/usr/share/syslinux/mbr.bin).
guestfish -a 磁盘.img -i
# 上传主引导记录和配置文件:
> 上传..../mbr.bin /boot/mbr.bin
> 上传..../syslinux.cfg /boot/syslinux.cfg
# 将MBR放入引导扇区:
> 复制文件到设备 /boot/mbr.bin /dev/sda 大小:440
# 在第一个分区安装 syslinux:
> extlinux /启动
# 设置第一个分区为可引导:
> part-set-bootable /dev/sda 1 true
另见:
http://rwmj.wordpress.com/2013/04/04/new-in-libguestfs-use-syslinux-or-extlinux-to-make-bootable-guests/#内容
列表 应用 安装 in a VM
将以下内容保存到文件中 列表-apps.sh:
#!/ bin / sh的 -
设置 -e
eval "$(guestfish --ro -d "$1" --i --listen)"
root="$(guestfish --remote inspect-get-roots)"
来宾鱼——远程检查列表应用程序“$root”
guestfish --远程退出
使文件可执行,然后您可以在任何命名的虚拟机上运行它:
# list-apps.sh WinGuest
[0] = {
app_name:Mozilla Firefox (3.6.12)
app_display_name:Mozilla Firefox (3.6.12)
app_epoch:0
app_version: 3.6.12 (zh-CN)
应用程序发布:
应用程序安装路径:C:\Program Files\Mozilla Firefox
app_trans_path:
app_publisher:Mozilla
应用网址: http://www.mozilla.com/en-GB/
app_source_package:
应用摘要:
app_description:Mozilla Firefox
}
[1] = {
app_name:VLC 媒体播放器
app_display_name:VLC 媒体播放器 1.1.5
app_epoch:0
app_version:1.1.5
应用程序发布:
app_install_path: C:\Program Files\VideoLAN\VLC
app_trans_path:
app_publisher:视频局域网
应用网址: http://www.videolan.org/
app_source_package:
应用摘要:
应用描述:
}
如果要在磁盘映像(而不是 libvirt 虚拟机)上运行脚本,请更改
"-d "$1"" 到 "-a "$1""。 也可以看看 虚拟检查员(1)。
列表 档 和 目录 in a VM
使用 VHDL 语言编写 虚拟机(1)。
列表 服务 in a Windows VM
下面的链接包含一个脚本,可用于列出 Windows 中的服务
VM,以及这些服务是在启动时运行还是按需加载。
https://rwmj.wordpress.com/2010/12/10/tip-list-services-in-a-windows-guest/#content
品牌 a 磁盘 图片 疏
使用 VHDL 语言编写 虚拟化(1)。
显示器 磁盘 用法 超过 次
您可以使用 虚拟机(1) 随着时间的推移监控客人的磁盘使用情况。 下面的链接
包含指南。
http://virt-tools.org/learning/advanced-virt-df/
阅读 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 Windows 创建 历史记录 , Windows 视图 (或 之后)
客鱼(1) 加上下面链接中描述的工具可以用来读出
来自运行 Windows Vista 或更高版本的任何虚拟机的 Windows 事件日志。
https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content
删除 根 密码 (Linux)的
使用 虚拟编辑(1) -e 选项,您可以对文件进行简单的替换。 一种用途是
从 Linux 来宾中删除 root 密码:
virt-edit -d 域名 / etc / passwd文件 -e 's/^root:.*?:/根::/'
virt-edit -a disk.img / etc / passwd文件 -e 's/^root:.*?:/根::/'
删除 管理员 密码 (视窗)
下面的链接包含一种从管理员密码中删除的技术
Windows VM,或者更准确地说,它会在您下次登录时为您提供命令提示符
您可以使用它来绕过任何安全性:
https://mdbooth.wordpress.com/2010/10/18/resetting-a-windows-guests-administrator-password-with-guestfish/
系统准备 a 虚拟 (视窗)
可以单独使用 libguestfs 进行“系统准备”,尽管并不简单。
目前,Aeolus Oz 项目中有代码可以做到这一点(使用 libguestfs)。 它
我们很可能会将此添加到 虚拟系统准备(1) 将来。
https://github.com/clalancette/oz
https://www.redhat.com/archives/virt-tools-list/2011-May/msg00019.html
开箱 a 生活 CD
Linux live CD 通常包含像俄罗斯娃娃一样包裹的多层磁盘映像。
您可以使用 客鱼(1) 查看这些多层的内部,如指南中所述
联络一位教师
https://rwmj.wordpress.com/2009/07/15/unpack-the-russian-doll-of-a-f11-live-cd/#content
上传 和 下载 档
下面的链接包含有关上传(复制)和下载(复制)的一般提示
out) 来自虚拟机的文件。
https://rwmj.wordpress.com/2010/12/02/tip-uploading-and-downloading/#content
上传 原 文件系统 内容
您可以使用 客鱼(1) 将整个文件系统上传到虚拟机,甚至是文件系统
加密或隐藏在 LV 或 RAID 设备中:
guestfish --rw -a disk.img 运行:上传 sda1.img /dev/sda1
guestfish --rw -d 来宾运行:上传 lv.img /dev/vg_guest/lv_root
一个常见问题是文件系统的大小不适合目标。 如果是
太大了,你不能用 libguestfs 做太多 - 你必须准备
文件系统不同。 但是如果文件系统需要扩展到目标中,你可以
使用 guestfish 将其调整为合适的大小:
guestfish --rw -d 来宾运行:\
上传 lv.img /dev/vg_guest/lv_root : \
resize2fs /dev/vg_guest/lv_root
(如果文件系统是 NTFS,则使用“ntfsresize”)。
使用 VHDL 语言编写 libguestfs 工具 on VMware的 ESX 宾客
下面的链接解释了如何使用 libguestfs, 客鱼(1) 和任何 virt 工具
VMware ESX 来宾,首先通过 sshfs 共享 VMware VMFS。
https://rwmj.wordpress.com/2011/05/10/tip-use-libguestfs-on-vmware-esx-guests/#content
使用 onworks.net 服务在线使用 guestfs-recipes