19.4. 为无盘客户端配置导出的文件系统
作为在您的环境中配置远程无盘系统的一部分,您必须为无盘客户端配置一个导出的文件系统。
先决条件
-
您已为无盘客户端配置了
tftp服务。请参阅 为无盘客户端配置一个 TFTP 服务 部分。 - 您已配置了动态主机配置协议(DHCP)服务器。请参阅 为无盘客户端配置一个 DHCP 服务器 部分。
流程
-
通过将根目录添加到
/etc/exports目录中,将网络文件系统(NFS)服务器配置为导出根目录。有关完整的说明集合,请参阅部署 NFS 服务器 将 Red Hat Enterprise Linux 的完整版本安装到根目录中,以容纳整个无盘客户端。为此,您可以安装新的基础系统或克隆现有的安装。
通过使用导出的文件系统的路径替换 exported-root-directory,将 Red Hat Enterprise Linux 安装到导出的位置:
yum install @Base kernel dracut-network nfs-utils --installroot=exported-root-directory --releasever=/
# yum install @Base kernel dracut-network nfs-utils --installroot=exported-root-directory --releasever=/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将
releasever选项设置为/,可以从主机(/)系统中检测到 releasever。使用
rsync工具与正在运行的系统同步:rsync -a -e ssh --exclude='/proc/' --exclude='/sys/' example.com:/ exported-root-directory
# rsync -a -e ssh --exclude='/proc/' --exclude='/sys/' example.com:/ exported-root-directoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用要通过
rsync工具同步的正在运行的系统的主机名替换 example.com。 使用导出的文件系统的路径替换 exported-root-directory。
请注意,对于这个选项,您必须有一个单独的现有运行系统,通过以上命令将其克隆到服务器。
-
使用要通过
配置文件系统,可用于导出,然后才能将其用于无盘客户端:
将无盘客户端支持的内核(
vmlinuz-_kernel-version_pass:attributes)复制到tftp引导目录中:cp /exported-root-directory/boot/vmlinuz-kernel-version /var/lib/tftpboot/pxelinux/
# cp /exported-root-directory/boot/vmlinuz-kernel-version /var/lib/tftpboot/pxelinux/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本地创建
initramfs-kernel-version.img文件,并将其移到支持 NFS 的根目录中:dracut --add nfs initramfs-kernel-version.img kernel-version
# dracut --add nfs initramfs-kernel-version.img kernel-versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
dracut --add nfs /exports/root/boot/initramfs-5.14.0-202.el9.x86_64.img 5.14.0-202.el9.x86_64
# dracut --add nfs /exports/root/boot/initramfs-5.14.0-202.el9.x86_64.img 5.14.0-202.el9.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 initrd 的示例,使用当前运行的内核版本,并覆盖现有镜像:
dracut -f --add nfs "boot/initramfs-$(uname -r).img" "$(uname -r)"
# dracut -f --add nfs "boot/initramfs-$(uname -r).img" "$(uname -r)"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
initrd的文件权限改为0644:chmod 0644 /exported-root-directory/boot/initramfs-kernel-version.img
# chmod 0644 /exported-root-directory/boot/initramfs-kernel-version.imgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告如果您不更改
initrd文件权限,则pxelinux.0引导装载程序会失败,并显示 "file not found" 错误。将生成的
initramfs-kernel-version.img文件复制到tftp引导目录中:cp /exported-root-directory/boot/initramfs-kernel-version.img /var/lib/tftpboot/pxelinux/
# cp /exported-root-directory/boot/initramfs-kernel-version.img /var/lib/tftpboot/pxelinux/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/var/lib/tftpboot/pxelinux/pxelinux.cfg/default文件中添加以下配置,来编辑使用initrd和内核的默认引导配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
此配置指示无盘客户端 root 以读/写格式挂载
/exported-root-directory导出的文件系统。可选:使用以下配置编辑
/var/lib/tftpboot/pxelinux/pxelinux.cfg/default文件来以只读格式挂载文件系统:default rhel8 label rhel8 kernel vmlinuz-kernel-version append initrd=initramfs-kernel-version.img root=nfs:server-ip:/exported-root-directory ro
default rhel8 label rhel8 kernel vmlinuz-kernel-version append initrd=initramfs-kernel-version.img root=nfs:server-ip:/exported-root-directory roCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 NFS 服务器:
systemctl restart nfs-server.service
# systemctl restart nfs-server.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,您可以将 NFS 共享导出到无盘客户端。这些客户端可以通过预引导执行环境(PXE),通过网络引导。