嘿朋友们。今天我使用 dnsmasq 作为 DHCP 代理以及 tftp 服务器设置 PXE 服务器。我想设置一个 grub 菜单,以便能够根据客户端在 EFI 和 Legacy 模式下运行 Windows ISO 文件。所以我使用以下命令设置我的 grub pxe 文件夹:
grub-mknetdir
我已使用以下命令为 EFI 和 Legacy 启动创建了 grub 映像
grub-mkimage -d /usr/lib/grub/i386-pc/ -O i386-pc-pxe -o ./booti386 -p '/var/lib/tftpboot/boot/grub' pxe tftp
grub-mkimage -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi -o ./bootx64.efi -p '/var/lib/tftpboot/boot/grub' efinet tftp
现在我已经从服务器的 /boot/grub[..] 复制了 grub.cfg 文件,它的工作方式就像所有 Linux 发行版中的默认 grub 加载器一样。为了检查它是如何工作的,我在 Virtualbox 上设置了一个通用系统来找出问题所在。
现在我使用选项 l) 进行 PXE 引导
Grub加载器出现,一切都很好,还没有修改。
我尝试选择一些东西,例如 Clonezilla 或 Debian Netinst 不幸的是我只看到黑屏和服务器上的以下 tftp 系统日志。
10 月 13 日 17:45:05 millenium-fbe48 dnsmasq-tftp[4797]:konnte /var/lib/tftpboot/iso/clonezilla/clonezilla-live-20191009-eoan-amd64.iso nicht an 192.168.2.89 senden“无法发送ISO 为 192.168.2.89"
我需要做些什么才能加载 iso 文件吗?我使用循环方式让它们运行,但是是否有超时或其他原因?
//编辑:现在大约 5 分钟后我得到了以下输出。有什么办法可以提高速度吗?
pxegrub 的 grub.cfg 中有类似 pxe-nfs-loop-iso 语法的东西吗?
答案1
感谢所有的答复。我能够摆脱 nfs 问题,但现在我陷入了某些步骤。 nfs 部分运行良好,我还可以挂载 squashfs 文件。不幸的是我遇到了这个内核恐慌,有人知道问题是什么吗?
//编辑!嘿朋友们。我能够让它运行。我是那么快乐的朋友,你无法相信。查看我当前的 grub.cfg 配置。
menuentry "Netroot" {
echo 'Trying to boot via nfs ...'
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
echo 'Loading Linux ...'
linux /programs/clonezilla/live/vmlinuz root=/dev/nfs ip=dhcp rw netboot=nfs fetch=tftp://192.168.2.55/programs/clonezilla/live/filesystem.squashfs nfsroot=192.168.2.55:/var/lib/tftpboot/programs/clonezilla/live/ rw boot=live username=user union=overlay config components noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt
echo 'Loading initial ramdisk ...'
initrd /var/lib/tftpboot/programs/clonezilla/live/initrd.img
}
这样它运行得很好,但不幸的是非常慢。有什么办法可以提高数据速率吗?