我对 Virtual Box 很陌生,并尝试模仿补鞋匠虚拟机中的 PXE 引导网络安装
尝试将 VM1 配置为 PXE/DHCP 服务器并将 VM2 作为客户端,以便在网络启动时从 VM1 DHCP 服务器获取 IP 以进行网络安装。
但继续从安装了虚拟盒的主机获取IP。因为 VM2 无法找到 VM1 中存在的 pxeboot 文件。
VM1 dhcp 状态片段:
Listening on LPF/enp0s3/08:00:27:86:b1:c6/192.168.43.0/24
Aug 09 19:03:23 localhost.localdomain dhcpd[3305]: Sending on LPF/enp0s3/08:00:27:86:b1:c6/192.168.43.0/24
Aug 09 19:03:23 localhost.localdomain dhcpd[3305]: Sending on Socket/fallback/fallback-net
Aug 09 19:03:23 localhost.localdomain systemd[1]: Started DHCPv4 Server Daemon.
VM1 dhcp 配置文件
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
subnet 192.168.43.0 netmask 255.255.255.0 {
option routers 192.168.43.1;
option domain-name-servers 192.168.43.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.43.100 192.168.43.254;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.43.146;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
if option pxe-system-type = 00:02 {
filename "ia64/elilo.efi";
} else if option pxe-system-type = 00:06 {
filename "grub/grub-x86.efi";
} else if option pxe-system-type = 00:07 {
filename "grub/grub-x86_64.efi";
} else if option pxe-system-type = 00:09 {
filename "grub/grub-x86_64.efi";
} else {
filename "pxelinux.0";
}
}
}
# group for Cobbler DHCP tag: default
group {
host centostest.mydomain.com-net0 {
hardware ethernet 08:00:27:7f:aa:f1;
fixed-address 192.168.43.120;
option host-name "centostest.mydomain.com";
option subnet-mask 255.255.255.0;
option routers 192.168.43.1;
filename "/pxelinux.0";
next-server 192.168.43.146;
}
}
VM1 适配器设置 - 服务器
VM2 网络启动时,它获得 IP 192.168.43.17,而不是 vm1 dhcp conf 文件中提供的 192.168.43.120
如何解决这个问题?
答案1
我建议设置“桥接”以外的网络。 DHCP 通过广播工作,因此子网上的任何 DHCP 服务器都可以响应。为了防止这种情况,您看到了自己的子网。
在文件 > 主机网络管理器中,您将看到默认的“VirtualBox 仅主机以太网适配器”。您可以取消选中“DHCP 服务器”框来关闭内置 DHCP 服务器。然后,将您的 DHCP 服务器虚拟机和您正在 PXE 引导的计算机连接到仅主机适配器而不是桥接适配器。