Red Hat Training

A Red Hat training course is available for RHEL 8

20.4. 为无盘客户端配置导出的文件系统

这个步骤描述了如何为无盘客户端配置导出的文件系统。

先决条件

流程

  1. 通过将根目录添加到 /etc/exports,将 NFS 服务器配置为导出根目录。具体步骤请查看 NFS 服务器配置
  2. 要完全使用无盘客户机,根目录应该包含完整的 Red Hat Enterprise Linux。您可以安装新的基本系统或克隆现有安装:

    • 要将 Red Hat Enterprise Linux 安装到导出的位置,请使用带有 --installroot 选项的 yum 工具:

      # yum install @Base kernel dracut-network nfs-utils \
            --installroot=exported-root-directory --releasever=/
    • 要与正在运行的系统同步,请使用 rsync 工具:

      # rsync -a -e ssh --exclude='/proc/' --exclude='/sys/' \
             example.com:/  exported-root-directory
      • 使用要通过 rsync 工具同步的正在运行的系统的主机名替换 example.com
      • 使用导出的文件系统的路径替换 exported-root-directory

        请注意,对于这个选项,您必须有一个单独的现有运行系统,通过以上命令将其克隆到服务器。

在被无盘客户端使用之前,要导出的文件系统仍然需要做进一步的配置。要做到这一点,请执行以下步骤:

配置文件系统

  1. 选择无盘客户端要使用的内核(vmlinuz-kernel-version),并将其复制到 tftp 引导目录中:

    # cp /exported-root-directory/boot/vmlinuz-kernel-version /var/lib/tftpboot/
  2. 在本地创建 initrdinitramfs-kernel-version.img 文件),并使用 NFS 支持将它移到导出的根目录:

    # dracut --add nfs initramfs-kernel-version.img kernel-version

    例如:

    # dracut --add nfs /exports/root/boot/initramfs-4.18.0-348.20.1.el8_5.x86_64.img 4.18.0-348.20.1.el8_5.x86_64
  3. 使用以下命令将 initrd 的文件权限改为 644:

    # chmod 644 /exported-root-directory/boot/initramfs-<kernel-version>.img
    警告

    如果您不更改 initrd 的文件权限,pxelinux.0 引导装载程序将失败,并显示 "file not found" 错误。

  4. 同时,将生成的 initramfs-kernel-version.img 复制到 tftp 引导目录中:

    # cp /exported-root-directory/boot/initramfs-kernel-version.img /var/lib/tftpboot/
  5. 编辑默认启动配置,以使用 /var/lib/tftpboot 目录中的 initrd 和内核。此配置应指示无盘客户端的 root 用户以读写形式挂载导出的文件系统 (/exported-root-directory)。在 /var/lib/tftpboot/pxelinux.cfg/default 文件中添加以下配置:

    default rhel8
    
    label rhel8
      kernel vmlinuz-kernel-version
      append initrd=initramfs-kernel-version.img root=nfs:server-ip:/exported-root-directory rw

    server-ip 替换为 tftp 和 DHCP 服务所在主机的 IP 地址。

  6. 另外,您可以使用 /var/lib/tftpboot/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
  7. 重启 NFS 服务器。

NFS 共享现在可以导出到无盘客户端。这些客户端可通过 PXE 通过网络引导。