我希望能够通过网络上的 ISO 启动远程客户端。为此,我使用红帽企业 Linux 6配置为充当 PXE 服务器的服务器。
我遇到了一些问题,这些问题可能非常基本,但对我来说,由于我对 Linux 的了解不是很深入,所以这些问题变得非常困难。
我在 RHEL6 服务器上运行了以下配置:
- dhcpd,将客户端指向 /var/lib/tftpboot/pxelinux.0 文件
- tftpd 文件服务器
- initrd-2.6.32-71.el6.x86_64.img 从服务器的 /boot 目录复制到 /var/lib/tftpboot/initrd.img
- vmlinuz-2.6.32-71.el6.x86_64 从服务器的 /boot 目录复制到 /var/lib/tftpboot/vmlinuz
- nginx Web 服务器托管 ISO
pxelinux.cfg/default 文件包含:
LABEL linux KERNEL vmlinuz IPAPPEND 1 APPEND vga=791 splash=silent initrd=initrd.img ramdisk_size=400000 copy2ram noauto nocd nohd root=/dev/ram0 ro from=http://192.168.1.1/slax.iso nosound
当我使用无盘客户端(虚拟机)测试它时,它会加载 vmlinuz 和 initrd.img,我看到一个 RHEL6 加载屏幕,然后几秒钟后它切回到终端说“未找到根设备”。
从该消息中我猜想它找不到“/dev/ram0”(请参阅上面的 pxelinux.cfg/default 文件)?它怎么可能找不到 RAM?我该如何解决这个问题?
我会用皮匠如果可以的话,但它依赖于隔离代理无法解决。我找不到任何其他软件包可以将所有 PXE 服务器功能整合到一个简洁的新手防护软件包中。
任何帮助将非常感激。
谢谢,本
答案1
您在 APPEND 行中使用的某些启动参数(例如 copy2ram、from)不是通用的 Linux 启动参数。相反,它们是由特定发行版在其初始 ramdisk 中实现的。我很确定它们不是由 RHEL6 实现的。如果您在 Slax 文档中找到了这些选项,只需将您放入 /var/lib/tftpboot 中的 RHEL6 内核和初始 ramdisk 替换为 Slax 内核和 ramdisk 即可。
一般情况下,除非有充分理由,否则您不应尝试将某个 Linux 发行版的内核和初始 ramdisk 与另一个 Linux 发行版的根文件系统一起使用。您可能会对适用的文档感到困惑,或者遇到技术不兼容问题。