Menu Close
Settings Close

Language and Page Formatting Options

16.5. 从 PXE 服务器引导虚拟机

使用 Preboot Execution Environment(PXE)的虚拟机(VM)可以从网络引导和加载其配置。本章论述了如何使用 libvirt 从虚拟或桥接网络中的 PXE 服务器引导虚拟机。

警告

这些程序仅作为示例提供。在继续操作前,请确保您已有足够的备份。

16.5.1. 在虚拟网络中设置 PXE 引导服务器

这个步骤描述了如何配置 libvirt 虚拟网络以提供预启动执行环境(PXE)。这可让主机上的虚拟机配置为从虚拟网络中提供的引导镜像引导。

先决条件

  • 本地 PXE 服务器(DHCP 和 TFTP),例如:

    • libvirt 内部服务器
    • 手动配置 dhcpd 和 tftpd
    • dnsmasq
    • Cobbler 服务器
  • PXE 引导镜像,如 Cobbler 配置或者手动配置 PXELINUX

步骤

  1. 将 PXE 引导镜像和配置放在 /var/lib/tftpboot 文件夹中。
  2. 设置文件夹权限:

    # chmod -R a+r /var/lib/tftpboot
  3. 设置文件夹所有权:

    # chown -R nobody: /var/lib/tftpboot
  4. 更新 SELinux 上下文:

    # chcon -R --reference /usr/sbin/dnsmasq /var/lib/tftpboot
    # chcon -R --reference /usr/libexec/libvirt_leaseshelper /var/lib/tftpboot
  5. 关闭虚拟网络:

    # virsh net-destroy default
  6. 在默认编辑器中打开虚拟网络配置文件:

    # virsh net-edit default
  7. 编辑 <ip> 元素,使其包含适当的地址、网络掩码、DHCP 地址范围和引导文件,其中 BOOT_FILENAME 是引导镜像文件的名称。

    <ip address='192.168.122.1' netmask='255.255.255.0'>
       <tftp root='/var/lib/tftpboot' />
       <dhcp>
          <range start='192.168.122.2' end='192.168.122.254' />
          <bootp file='BOOT_FILENAME' />
       </dhcp>
    </ip>
  8. 启动虚拟网络:

    # virsh net-start default

验证

  • 验证 default 虚拟网络是否活跃:

    # virsh net-list
    Name             State    Autostart   Persistent
    ---------------------------------------------------
    default          active   no          no