根据我对 PXE(预启动执行环境)的理解,我知道启动客户端和 DHCP 服务器之间必须先进行一些协商,以获取网络参数(IP 地址等),以便客户端能够从启动服务器获取引导加载程序和内核映像。换句话说,除了“虚拟”机器之外,我们这里谈论的是“裸机”,因此必须有一些“预启动”机制来进行这些协商,而这正是 PXE 的全部内容。当我考虑“网络安装”选项时,我无法弄清楚如果没有前面提到的机制,新的 VM 将如何获取启动映像(引导加载程序和内核)。
因此,这里有一个简短的问题版本:当配置一个新的虚拟机时,您希望 virt-manager 中的“网络安装”选项如何在后台工作?
非常感谢。
答案1
Virt-manager(和 virt-install)只是运行 QEMU(本例中为 qemu-kvm)的前端。当使用 PXE 安装调用时,它的工作方式与执行 PXE 启动的物理服务器一样。也就是说,它将 QEMU 作为具有网络功能 BIOS 的虚拟机运行,并具有内置 IP 堆栈。现在,当作为网络安装(非 PXE)运行时,virt-install 首先获取内核映像和初始 ramdisk 映像(即,它发生在 VM 之外)。然后,它使用“-kernel”和“-initrd”参数调用 qemu-kvm,指向它在父主机的文件系统中下载这些映像的位置。当 qemu-kvm 启动时,它将这两个文件的内容放入 Grub、Lilo 或 Syslinux 通常放置它们的相同内存位置,并告诉虚拟化 BIOS(在 VM 中)开始在这些内存位置执行。
您可以在运行安装时通过执行“ps -ef”列表来查看如何调用 qemu-kvm,并且如果愿意,您可以在 virt-manager 之外使用相同的命令行。