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