为什么要构建 qcow2 Fedora 虚拟机的 Rawhide 图像?
因为 Fedora Rawhide 有夜间版本,不能保证稳定,你可能不想升级你的稳定版本 Fedora 到生皮。 不过,您可能想要测试 Rawhide,或将某些软件包下载到其中,而无需将其实际安装到您自己的计算机上。
虽然您可以使用容器,但使用 VM 的主要好处是:
- 您可以一次运行多个应用程序。
- 您的虚拟机将比容器更安全。
- 您不限于操作系统的一个版本,这意味着您可以在 VM 中拥有多种操作系统。
所以这篇文章讨论了如何构建自己的虚拟机并将 Rawhide 安装到它上面。 但是,如果您想为容器生成图像,请参阅上一篇关于构建的文章 Fedora 使用 Imagefactory 制作生皮图像。
目前, Fedora 25号即将上映。 因此,生皮对应于最终会是什么 Fedora 26. 本文中的许多参考资料都指向 F26。 您应该能够为以后的版本调整这些参考。
安装必要的包
要安装必要的软件包,请运行以下命令:
sudo dnf install imagefactory libvirt virt-manager
创建一个 kickstart 文件
要从头开始构建映像,您需要一个 Fedora 26 Cloud 启动文件。 此文件定义将在映像中安装的内容。
这 Fedora Base Runtime 项目提供了一个示例 Fedora 26 Cloud 启动文件 您可以使用。 否则,您可以编写自己的使用 Kickstart 文档.
创建 cloud-init ISO 文件
要登录到您的映像,您必须提前创建一个 cloud-init ISO 文件。 请参阅有关创建此文件的说明 原子计划网站. 如果该页面第一步中的 URL 不起作用,请尝试 这 Fedora 24 qcow2 图像位于此处.
然后继续执行以下步骤,确保将所有出现的 F26 替换为 F24。 (过程相同。)
创建您自己的模板文件
模板文件描述了一些图像设置。 它声明了 root 用户的密码,并告诉安装程序在哪里可以找到最新的 Fedora 26 回购。 下面是一个 example 模板,您可以使用名称 f26-cloud.tdl 创建该模板。
<template> <name>My-F26-Cloud-Image</name> <os> <name>Fedora</name> <version>26</version> <arch>x86_64</arch> <install type="url"> <url>https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64</url> </install> <rootpw>redhat</rootpw> </os> </template>
修改 Oz 配置
接下来修改oz配置文件
/etc/oz/oz.cfg
. 注释掉以下行:
image_type = raw
在它下面添加这一行:
image_type = qcow2
这告诉基于 Oz 的 Imagefactory 将基础镜像创建为 qcow2 镜像。
生成 qcow2 镜像
现在您已准备好生成 qcow2 图像。 在这个 example,kickstart 文件名为 f26-cloud.ks。 模板文件名为 f26-cloud.tdl。
sudo imagefactory --debug base_image --file-parameter install_script f26-cloud.ks f26-cloud.tdl --parameter offline_icicle true
在这个 example,调试已设置,但这不是必需的。 完成该过程后,Imagefactory 会生成类似于以下内容的输出:
============ Final Image Details ============ UUID: 4ebde351-e81b-427f-96b7-5acd5680013d Type: base_image Image filename: /var/lib/imagefactory/storage/4ebde351-e81b-427f-96b7-5acd5680013d.body Image build completed SUCCESSFULLY!
在这里,4ebde351-e81b-427f-96b7-5acd5680013d.body 是 qcow2 图像,即使扩展名为 .body。 要确认,请使用您的图像文件名运行此命令:
file /var/lib/imagefactory/storage/4ebde351-e81b-427f-96b7-5acd5680013d.body
您应该看到输出显示您的图像是 qcow2 格式:
4ebde351-e81b-427f-96b7-5acd5680013d.body: QEMU QCOW Image (v2), 10737418240 bytes
为保持一致性,您可能需要重命名此文件,以便扩展名与文件类型匹配。
现在您已经创建了映像,是时候使用 virt-manager 来运行它了。 但是,在您执行此操作之前,您必须将映像文件移动到 /var/lib/libvirt/images。 这使您可以在 virt-manager 中运行它。 此命令重命名并移动文件:
sudo mv -Z /var/lib/imagefactory/storage/4ebde351-e81b-427f-96b7-5acd5680013d.body /var/lib/libvirt/images/my-f26-cloud-image.qcow2
您还应该将 ISO 文件放在同一个文件夹中。 这样您就可以将其用于以后创建的其他图像。 使用 mv -Z 命令使 ISO 文件获得正确的默认 SELinux 标签。
运行新的 qcow2 映像
现在是时候运行 virt-manager:
virt-manager
单击文件 > 新建虚拟机以启动 VM 创建器。 选择导入现有磁盘映像,然后单击转发。
在此页面上,浏览您刚刚创建的 qcow2 映像。 然后将操作系统类型设置为 Linux. 对于版本,滚动到下拉列表的底部。 选择最后一个选项以自动将版本设置为 Fedora. 现在点击前进。
默认内存和 CPU 设置将与 example 启动文件。 接受默认设置并再次单击 Forward。
在此页面上,将 VM 命名为 My-f26-Cloud-图片。 在您点击转发之前,请检查安装前的自定义配置框,然后单击完成。 将打开一个新窗口,以便您可以自定义 VM。
在此窗口的左下方,单击添加硬件按钮并选择存储。 检查选择或创建自定义存储选项。 要添加您的 cloud-init ISO,请单击“管理”按钮并选择您之前创建的 ISO。 现在在设备类型下,选择 CDROM 并将总线类型保留为 IDE。 单击完成,然后单击左上角的开始安装。 这会自动启动您新创建的 VM。
要登录,您的用户名是 fedora,密码是您的模板文件中定义的密码。 享受您的新虚拟机!