【问题标题】:Ensuring virtual machine survives Fedora clean install确保虚拟机在 Fedora 全新安装中继续存在
【发布时间】:2020-06-07 14:56:21
【问题描述】:

我在 Fedora 30 下的虚拟机中运行 Win 10。我现在需要对 Fedora 32 进行全新安装。虚拟机在此安装后仍然存在至关重要。

虚拟机的默认位置在/var/lib/libvirt 下,安装时会运行。正因为如此,我现在在一个逻辑卷上创建了一个新池,它将在新的操作系统安装后继续存在,并使用virt-clone 将虚拟机克隆到这个逻辑卷上。克隆的虚拟机运行良好。

我可以看到在克隆是only文件的逻辑卷中是包含克隆虚拟机的.qcow2-文件。我有两个问题:

  1. 为了使虚拟机能够在干净的操作系统安装中继续存在,.qcow2 文件是否就足够了?还是我需要从其他目录复制其他信息?
  2. 操作系统安装后,我如何告诉virt-manager 已经存在的池和位于那里的虚拟机?

【问题讨论】:

    标签: virtualization kvm libvirt


    【解决方案1】:

    您还需要至少复制来宾 XML 配置文件,这些文件存储在 /etc/libvirt 的子目录下。

    如果您存储了快照等其他内容,则可能需要保留/var/lib/libvirt 下的其他目录。

    如果您将 XML 文件保存在某处,那么在新安装中,“virsh define $XMLFILE”会将来宾加载到 libvirt 中,这样 virt-manager 将再次看到它。您可以使用 virt-manager 的存储管理 UI 告诉它有关池的信息。

    【讨论】:

    • 在解释你的答案时,我发现了命令virsh dumpxml,它转储了客人的XML配置文件,根据手册页,virsh create可以使用它来创建域。但是,正如您所写,virsh define 很可能使用相同的文件。我还不确定createdefine 之间的确切区别,除了define 不会启动域。我看到 XML 转储包含 .qcow2 文件的路径,这是有希望的。
    • virsh define $XML 只是将配置文件保存到 libvirt 中,稍后您可以使用 virsh start $GUEST 启动来宾。 virsh create $XML 将引导客人而不会将其配置保存在磁盘上,因此当它再次关闭时,它的所有痕迹都会消失。
    • 好的。深入挖掘,这个话题非常有趣。首先,似乎也可以转储池 XML 并使用它来自动定义池。其次,Ansible——我总是用它来自动化 Fedora 的安装和设置——有社区支持的用于虚拟机配置的模块。因此,理论上,可以自动化整个 VM 设置。问题是知道哪些命令可能具有破坏性。因此最初的标题是:“确保……”。
    • 应用此之后再评论:您需要在定义虚拟机之前定义池。如果你反过来做,将没有默认池,标准程序,如virsh 将开始只向你抛出错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    相关资源
    最近更新 更多