![xen PV 客户机上的 PXE 启动服务器?](https://linux22.com/image/637651/xen%20PV%20%E5%AE%A2%E6%88%B7%E6%9C%BA%E4%B8%8A%E7%9A%84%20PXE%20%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我在 ubuntu 14.04 上设置了 Xen 虚拟机管理程序,并在 ubuntu 14.04 上设置了 PV 客户机。我希望此 PV 客户机成为 PXE 启动服务器。但是当我查看文件夹时,/boot
我发现它是空的。
我是虚拟化领域的新手。那么我应该在哪里进行操作:
- 取一粒仁?
- 运行
mkinitramfs
以准备 initrd 进行网络启动?
更新 亲爱的同事们。我实际上需要一些关于工作流程的建议制作自定义的 initrd.img在 PV 客户机上。我知道在主机上设置 PXE 启动服务器的所有内容。我只想了解在 PV 客户机上哪里可以获取内核映像以及当通过 apt-get 更新内核时 PV 客户机会发生什么情况。
谢谢。
答案1
如果您想通过网络启动系统,您需要 3 样东西:
- DHCP 服务器(例如 isc dhcp)
- 一个 tftp 服务器
- 可以下载预置文件的位置
DHCP
DHCP 服务器必须向客户端提供 IP 和启动服务器。
isc dhcp 的示例配置如下:
subnet 10.1.20.0 netmask 255.255.252.0 {
option routers 10.1.20.1;
next-server 10.1.22.150;
filename "/pxelinux.0";
on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
execute("/srv/rexio/middleware/bin/rex_io_pxe_dhcpevent", "commit", clip, clhw);
}
}
“next-server”指令告诉客户端在哪里找到 tftp 服务器。如您在示例中所见,您还可以定义一个脚本,当客户端请求 IP 时触发该脚本。在此示例中,它调用一个动态创建 pxe 启动命令文件的脚本。
远程文件传输协议
为此,您可以使用 hpa tftpd。您必须将内核和 initrd(以及 pxe 启动命令文件)放在 tftp 文件夹中。
您可以在这里找到所需的文件(适用于 ubuntu 14.04,64 位):http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/
只需下载这些文件并将它们放在 tftp 根文件夹中(我认为在 ubuntu 上它是 /var/lib/tftpboot)。
预置文件
要真正实现安装自动化,您需要一个预置文件。ubuntu 的示例可在此处找到:https://help.ubuntu.com/10.04/installation-guide/example-preseed.txt(这是针对 10.04 的,但我认为对于 14.04 不会有太大变化)
您可以将此文件放在 http 网络服务器上,并将安装指向它(通过内核参数)
preseed/url=http://ip.of.your.server/preseed.cfg
答案2
我找到了解决方案。它是 PVGRUB。本教程涵盖了我所有的问题http://wiki.xen.org/wiki/PvGrub