我的基本问题是,当我尝试对NFS服务器(CentOS 6.7或CentOS 7)进行PXE无盘启动时,我遇到了问题.我尝试了各种各样的东西,似乎无法复制我最初使用CentOS7服务器和客户端所取得的成功.每次我跟着笔记,我都无处可去.
我得到的最常见错误(取决于我使用的initrd.img文件或initramfs * .img)
A ticker of *** that shows a text-based progress bar and the message A start job is running for dev-nfs.device (xx s / 1min 30s)
然后它超时并说
Timed out waiting for device dev-nfs.device Dependency Failed for File System Check on /dev/nfs Dependency Failed for /sysroot Dependency Failed for Initrd Root File System Dependency Failed for Reload Configuration from the Real Root
当我将/ boot /中的initramfs-3.10.*.img(任何一个)复制到PXE映像位置时,会发生上述错误.
如果我尝试从dracut生成新的initramfs图像文件,它也会抛出上述错误.
dracut initramfsnew.img
可能是我要么不知道如何生成正确的initramfs,要么我真的不理解initrd.img和initramfs函数.我相信超时正在发生,因为NFS驱动程序尚未在引导过程的那个阶段加载,因此客户端无法正确挂载NFS共享.我认为这是因为我已经将完全相同的PXE客户端启动到其本地操作系统并手动挂载NFS共享并且它可以100%工作,因此NFS共享处于活动状态,并且可以工作.我相信我对initrd.img和initramfs * .img的工作方式有错误的理解.
如果我从CentOS镜像站点下载initrd.img,我会在那里获得90%的错误然后错误更改为
No /sbin/init trying fallback
我现在处于一个(因为想要一个更好的术语,半载)shell,它给了我NFS共享的基本导航.我可以转到/ home / disklessuser /甚至写入NFS或从NFS读取新文件(在服务器和客户端上测试简单的’touch’命令).看起来似乎缺少的是这个实例中的登录选项,以及目录的正确边界(即,我似乎在启动的这一点上以root用户身份登录).
基本配置是非常标准的AFAIK:
/var/lib/tftpboot/pxelinux.cfg/default包含(我省略了我知道的工作 – PXE工作并指向正确的图像等):
menu label ^1) CentOS 7 kernel /images/centos7/vmlinuz append root=/dev/nfs initrd=/images/centos7/initrd.img nfsroot=10.10.10.10:/srv/nfs/diskless/images/centos7/root rw selinux=0
我已经尝试了上面的变体,比如用initramfs3.10 * .img替换initrd.img(位于服务器的/ boot /中的各种版本),并尝试添加像
ip=dhcp
因为dracut文档建议这将告诉它从DHCP而不是PXE菜单获取nfsroot路径.
我目前已将DHCP配置为:
subnet 10.10.10.0 netmask 255.255.255.0 { option broadcast-address 10.10.10.255; option routers 10.10.10.1; range 10.10.10.100 10.10.10.150; next-server 10.10.10.10; option root-path "10.10.10.10:/var/lib/tftpboot"; filename "pxelinux.0"; }
可能这与PXE菜单中规定的NFS共享相冲突?
无论如何,我会感谢任何指导 – 也许对我来说最有针对性的是如何处理initrd或initramfs.我认为两者并没有太大的不同,但是如何产生一个新的应该(希望)包括允许NFS挂载的基本网络驱动程序?
其次,当我使用存储在/ os / x86_64 / isolinux下的CentOS镜像目录中的initrd.img时,当我接近解决方案时,为什么/ sbin / init会丢失?
解决方法
kernel = /NWA_PXE/$HEAD_DIR$/images/pxeboot/vmlinuz append = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img root=live:http://$IP_BSRV$/$HEAD_DIR$/LiveOS/squashfs.img ksdevice=bootif repo=http://$IP_BSRV$/$HEAD_DIR$/ ipappend = 2
来源Serva
如果确实需要,您可以轻松地将其更改为NFS