嘿朋友们。今天我使用 dnsmasq 作为 DHCP 代理以及 tftp 服务器设置 PXE 服务器。我想设置一个 grub 菜单,以便能够根据客户端在 EFI 和 Legacy 模式下运行 Windows ISO 文件。所以我使用以下命令设置了我的 grub pxe 文件夹
grub-mknetdir
我已经能够启动到 PXEGRUB 并加载 Linux 发行版的内核映像。不幸的是,我无法加载 initrd 文件,因为我遇到了一些有关 NFS 共享的问题。那里似乎有问题,但我找不到错误。
我的 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 nfsroot=192.168.2.55:/var/lib/tftpboot/programs/clonezilla/live/ rw
echo 'Loading initial ramdisk ...'
initrd /var/lib/tftpboot/programs/clonezilla/live/initrd.img
}
还有我的文件
/etc/出口
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/var/lib/tftpboot/programs/clonezilla/live 192.168.2.55/(rw,no_root_squash,sync,no_subtree_check)
因此,当我尝试启动 Clonezilla 时,一切都很好,直到从我的 nfs 共享加载 initrd.img 文件的步骤为止。有问题。
所以我跑了
猫 /var/logs/syslog | grep tftp
并收到此输出。
Oct 21 18:07:29 millenium-fbe48 rpc.mountd[11325]: refused mount request from 192.168.2.86 for /var/lib/tftpboot/programs/clonezilla/live (/var/lib/tftpboot/programs/clonezilla/live): unmatched host
那么我的nfs共享是否有问题,问题出在哪里呢?