欢迎光临
我们一直在努力

Linux操作系统部署DNF仓库及NFS共享服务超详细教程

本教程完全适配openEuler-24.03-LTS-SP1-x86_64-dvd版本,保留原核心流程,针对 openEuler 的GPG 密钥、默认系统配置、仓库文件做专属适配,全程 root 权限操作(sudo -i切换),涵盖本地 DNF 仓库搭建(基于 openEuler 原生 ISO)、NFS 服务端配置、客户端 NFS 挂载、局域网 NFS-DNF 共享仓库全套流程,解决 openEuler 特有的 GPG 校验、repo 配置等问题,零基础可直接上手。

openEuler-24.03-LTS-SP1 核心适配点:

  • ISO 内 GPG 密钥为RPM-GPG-KEY-openEuler(替换 CentOS 的 centosofficial);
  • 默认 SELinux 为Permissive 模式(无需强制永久关闭,测试 / 生产环境均适配);
  • 原生默认 DNF 包管理器,仓库目录与 RHEL 系一致(BaseOS+AppStream);
  • 默认防火墙为 firewalld,NFS 端口开放规则通用;
  • 系统默认 repo 文件为openEuler.repo,禁用方式简单。
  • 前置准备

    1. 环境要求(openEuler 专属)

    角色系统版本IP 地址(示例)核心需求
    NFS/DNF 服务端 openEuler-24.03-LTS-SP1-x86_64 192.168.1.100 挂载 openEuler 原生 ISO、装 NFS/DNF 相关包
    NFS/DNF 客户端 openEuler-24.03-LTS-SP1-x86_64 192.168.1.101 装 NFS 客户端、挂载 NFS、配置 DNF 源
    • 服务端 + 客户端需局域网互通,提前下载好openEuler-24.03-LTS-SP1-x86_64-dvd.iso镜像(服务端用);
    • 无需额外配置系统依赖,openEuler 原生支持 DNF 和 NFS,无兼容性问题。

    2. 基础环境配置(所有 openEuler 节点)

    (1)SELinux 配置(openEuler 专属,无需关闭)

    openEuler-24.03-LTS-SP1 默认 SELinux 为 Permissive 模式(宽松模式,不限制操作),无需修改/etc/selinux/config,直接验证即可:

    # 验证SELinux状态,输出Permissive即正常
    getenforce
    # 若需临时改为Enforcing(生产环境),执行:setenforce 1

    (2)防火墙配置(测试 / 生产按需选择)
    • 测试环境:直接关闭 firewalld(便捷,无端口限制) systemctl stop firewalld && systemctl disable firewalld
    • 生产环境:仅开放 NFS 相关端口(不关闭防火墙,安全) # 开放NFS核心端口+服务,永久生效
      firewall-cmd –add-port=111/tcp –add-port=111/udp –permanent
      firewall-cmd –add-port=2049/tcp –add-port=2049/udp –permanent
      firewall-cmd –add-service=nfs –add-service=rpc-bind –add-service=mountd –permanent
      # 重新加载防火墙规则
      firewall-cmd –reload
      # 验证开放结果
      firewall-cmd –list-all
    (3)主机名 + 本地解析(可选,方便识别)

    # 服务端设置主机名
    hostnamectl set-hostname openEuler-NFS-DNF-Server
    # 客户端设置主机名
    hostnamectl set-hostname openEuler-NFS-DNF-Client
    # 所有节点添加本地解析(避免DNS问题)
    echo "192.168.1.100 openEuler-NFS-DNF-Server" >> /etc/hosts
    echo "192.168.1.101 openEuler-NFS-DNF-Client" >> /etc/hosts

    (4)网络连通性验证

    客户端 ping 服务端,确保无丢包:

    ping 192.168.1.100 -c 4

    第一部分:服务端搭建 openEuler 本地 DNF 仓库(基于原生 ISO)

    openEuler-24.03 的 ISO 镜像内包含完整的 BaseOS(系统基础包)和 AppStream(应用包),与 RHEL 系目录结构一致,仅需替换 GPG 密钥即可实现本地仓库搭建,摆脱网络依赖。

    步骤 1:上传并永久挂载 openEuler ISO 镜像

    (1)上传 ISO 镜像

    将openEuler-24.03-LTS-SP1-x86_64-dvd.iso上传到服务端/opt目录(推荐),可通过:

    • XFTP/SCP 工具直接上传;
    • rz 命令(需先装lrzsz:dnf install lrzsz -y,若当前无网络,后续本地仓库搭建后再装)。
    (2)创建 ISO 挂载目录

    # 固定挂载点,方便后续管理,避免路径混乱
    mkdir -p /mnt/iso

    (3)永久挂载 ISO 镜像(/etc/fstab,重启不失效)

    临时挂载重启失效,openEuler 支持iso9660文件系统,直接配置 fstab:

    # 编辑fstab文件
    vim /etc/fstab
    # 在文件末尾添加以下内容(ISO路径按实际上传位置修改)
    /opt/openEuler-24.03-LTS-SP1-x86_64-dvd.iso /mnt/iso iso9660 defaults 0 0
    # 保存退出后,执行挂载命令生效(无任何报错即成功)
    mount -a
    # 核心验证:查看挂载目录,必须有BaseOS和AppStream文件夹
    ls /mnt/iso

    ✅ 关键验证结果:/mnt/iso下能看到BaseOS、AppStream、EFI、images等文件夹,说明 ISO 挂载成功。

    步骤 2:配置 openEuler 专属本地 DNF 仓库(核心适配 GPG 密钥)

    DNF 仓库配置文件存放在/etc/yum.repos.d/,后缀必须为.repo,需先禁用 openEuler 默认网络源,再新建本地源(重点替换 GPG 密钥为 openEuler 原生)。

    (1)禁用 openEuler 默认网络源

    openEuler 默认 repo 文件为openEuler.repo,直接重命名失效即可:

    cd /etc/yum.repos.d/
    # 重命名默认repo,加.bak后缀(避免干扰)
    mv openEuler.repo openEuler.repo.bak
    # 若有其他repo文件,一并重命名:mv *.repo *.repo.bak

    (2)新建 openEuler 本地 DNF 仓库配置文件

    创建local_openEuler.repo(文件名自定义,后缀.repo),核心适配 GPGKEY 路径和文件名:

    vim /etc/yum.repos.d/local_openEuler.repo

    添加以下内容(直接复制,无需修改,适配 openEuler-24.03):

    # BaseOS仓库:openEuler系统基础包,必须与ISO内目录名一致
    [BaseOS]
    name=openEuler-24.03-Local-BaseOS
    baseurl=file:///mnt/iso/BaseOS
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/iso/RPM-GPG-KEY-openEuler

    # AppStream仓库:openEuler应用程序包,含大部分工具/服务
    [AppStream]
    name=openEuler-24.03-Local-AppStream
    baseurl=file:///mnt/iso/AppStream
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/iso/RPM-GPG-KEY-openEuler

    参数说明(openEuler 专属):

    • gpgkey:必须指向 ISO 内的RPM-GPG-KEY-openEuler,这是 openEuler 原生校验密钥,替换 CentOS 的密钥可避免 GPG 校验失败;
    • enabled=1:启用该仓库,0为禁用;
    • gpgcheck=1:开启包完整性校验,生产环境建议保留,测试环境可改为0(跳过校验)。
    (3)验证 openEuler 本地 DNF 仓库有效性

    这一步是核心,无报错即说明本地仓库搭建成功,断网后也可正常使用:

    # 清理原有DNF缓存(避免残留网络源缓存)
    dnf clean all
    # 生成本地仓库缓存(关键步骤,openEuler ISO包较多,耗时约1-2分钟)
    dnf makecache
    # 查看已启用的仓库,输出BaseOS和AppStream即成功
    dnf repolist enabled
    # 测试安装软件(无网络也能安装,验证仓库可用)
    dnf install tree -y
    # 验证安装结果
    tree –version

    ✅ 成功标志:dnf repolist enabled输出如下(包数量略有差异正常):

    repo id repo name status
    AppStream openEuler-24.03-Local-AppStream 10000+
    BaseOS openEuler-24.03-Local-BaseOS 2000+

    若出现 GPG 校验错误,检查gpgkey路径是否正确,或直接将gpgcheck改为0(测试环境)。

    第二部分:服务端部署 NFS 共享服务(openEuler 通用)

    openEuler-24.03 原生支持 NFSv4,安装nfs-utils即可,无需额外依赖,配置与 RHEL 系完全一致,核心是将本地 DNF 仓库的挂载目录/mnt/iso共享给局域网客户端。

    步骤 1:安装并启动 NFS 服务

    # 安装NFS核心包(openEuler原生仓库,本地已搭建可直接装)
    dnf install nfs-utils -y
    # 设置NFS服务开机自启,并立即启动
    systemctl enable –now nfs-server
    # 验证NFS服务状态,输出active(running)即正常
    systemctl status nfs-server

    ✅ 注意:安装nfs-utils时,openEuler 会自动安装并启动 rpcbind(NFS 端口映射依赖),无需单独操作。

    步骤 2:配置 NFS 共享目录(核心,openEuler 通用)

    NFS 共享配置文件为/etc/exports,格式:共享目录 客户端地址(权限参数),需共享本地 DNF 仓库的/mnt/iso,推荐设为只读(ro)(DNF 仓库仅需读取,提升安全性)。

    (1)编辑 exports 配置文件

    vim /etc/exports

    添加以下内容(推荐方式 2,局域网全访问,按需选择):

    # 方式1:仅允许指定客户端访问(示例IP:192.168.1.101)
    /mnt/iso 192.168.1.101(ro,sync,no_root_squash,no_all_squash)

    # 方式2:允许整个局域网访问(示例网段:192.168.1.0/24),推荐
    /mnt/iso 192.168.1.0/24(ro,sync,no_root_squash,no_all_squash)

    核心权限参数(openEuler 完全支持):

    • ro:只读权限(DNF 仓库无需写入,必选,比 rw 更安全);
    • sync:同步写入,保证数据完整性(生产环境推荐);
    • no_root_squash:客户端 root 用户访问时保留 root 权限(避免挂载后权限不足);
    • no_all_squash:客户端普通用户保留原权限。
    (2)生效 NFS 共享配置(无需重启服务)

    # 重新导出共享目录,-r=重新加载,-v=显示详细信息
    exportfs -rv
    # 验证共享结果,看到配置的目录和客户端即成功
    exportfs

    ✅ 成功输出示例(方式 2):

    /mnt/iso192.168.1.0/24

    步骤 3:验证 openEuler NFS 服务端共享状态

    # 查看本地NFS共享详细信息,127.0.0.1为本机
    showmount -e 127.0.0.1

    ✅ 成功输出示例:

    Export list for 127.0.0.1:
    /mnt/iso 192.168.1.0/24

    若执行showmount -e报错,执行systemctl restart rpcbind nfs-server重启服务即可(openEuler 偶发 rpcbind 端口映射问题)。

    第三部分:客户端配置 NFS 挂载 + openEuler NFS-DNF 共享仓库

    客户端核心操作:安装 NFS 客户端工具→挂载服务端 NFS 共享目录→配置 openEuler 专属 NFS-DNF 仓库,全程适配 openEuler-24.03,局域网内多个客户端可重复此步骤,共用同一个 NFS-DNF 仓库。

    步骤 1:客户端安装 NFS 客户端工具

    openEuler 客户端仅需安装nfs-utils,无需启动 nfs-server 服务:

    dnf install nfs-utils -y

    ✅ 若客户端无任何网络源且未装 nfs-utils:将服务端/mnt/iso/Packages/n/下的nfs-utils相关 rpm 包拷贝到客户端,用rpm -ivh *.rpm本地安装即可。

    步骤 2:客户端创建 NFS 挂载目录

    # 新建挂载点,与服务端对应,方便识别
    mkdir -p /mnt/nfs_iso

    步骤 3:客户端永久挂载服务端 NFS 共享目录

    (1)临时挂载(测试用,重启失效)

    # 格式:mount -t nfs 服务端IP:共享目录 本地挂载点
    mount -t nfs 192.168.1.100:/mnt/iso /mnt/nfs_iso
    # 核心验证:查看挂载目录,必须有BaseOS和AppStream
    ls /mnt/nfs_iso

    (2)永久挂载(生产环境推荐,/etc/fstab,openEuler 专属参数)

    openEuler 挂载 NFS 需添加_netdev参数(表示依赖网络,避免开机先挂载后加载网络导致失败):

    # 编辑fstab文件
    vim /etc/fstab
    # 在文件末尾添加以下内容(直接复制,替换服务端IP即可)
    192.168.1.100:/mnt/iso /mnt/nfs_iso nfs defaults,_netdev 0 0

    (3)验证永久挂载(无报错即成功)

    # 生效fstab配置
    mount -a
    # 查看所有挂载点,确认NFS挂载成功(能看到服务端IP路径)
    df -h

    ✅ 成功输出示例(关键行):

    192.168.1.100:/mnt/iso 10G 8.5G 1.5G 86% /mnt/nfs_iso

    步骤 4:客户端配置 openEuler NFS-DNF 共享仓库(核心适配 GPG)

    与服务端本地仓库配置一致,仅将baseurl改为客户端 NFS 挂载路径,重点保留 openEuler 原生 GPG 密钥配置。

    (1)禁用客户端默认网络源

    cd /etc/yum.repos.d/
    # 重命名默认repo文件,失效
    mv openEuler.repo openEuler.repo.bak
    # 若有其他repo文件,一并重命名:mv *.repo *.repo.bak

    (2)新建 openEuler NFS-DNF 仓库配置文件

    vim /etc/yum.repos.d/nfs_openEuler.repo

    添加以下内容(直接复制,适配 openEuler-24.03,无需修改):

    [BaseOS]
    name=openEuler-24.03-NFS-BaseOS
    baseurl=file:///mnt/nfs_iso/BaseOS
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/nfs_iso/RPM-GPG-KEY-openEuler

    [AppStream]
    name=openEuler-24.03-NFS-AppStream
    baseurl=file:///mnt/nfs_iso/AppStream
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/nfs_iso/RPM-GPG-KEY-openEuler

    步骤 5:验证客户端 NFS-DNF 仓库有效性(最终验证)

    这一步完成后,客户端即可断网使用局域网 NFS-DNF 仓库,与服务端共用同一个 ISO 源,实现批量节点软件安装:

    # 清理原有缓存
    dnf clean all
    # 生成NFS仓库缓存(局域网速度快,约30秒)
    dnf makecache
    # 查看已启用的仓库,输出BaseOS和AppStream即成功
    dnf repolist enabled
    # 测试安装软件(断网后安装,验证核心功能)
    dnf install wget lrzsz -y
    # 验证安装结果
    wget –version

    ✅ 最终成功标志:客户端断开外网(拔网线 / 禁用网卡),仍能通过dnf install安装软件,说明openEuler NFS 共享 + DNF 仓库部署完成!

    第四部分:openEuler 专属 常用命令 + 故障排查

    一、openEuler DNF 仓库常用命令(原生)

    # 清理缓存
    dnf clean all
    # 生成缓存
    dnf makecache
    # 查看所有仓库(启用+禁用)
    dnf repolist all
    # 查看已启用仓库
    dnf repolist enabled
    # 测试仓库安装(小工具)
    dnf install -y tree lrzsz net-tools
    # 查看软件包所在仓库
    dnf repoquery -i tree
    # 临时禁用某个仓库安装软件
    dnf –disablerepo=AppStream install nginx
    # 查看DNF仓库详细信息
    dnf repoinfo BaseOS

    二、openEuler NFS 服务常用命令(服务端)

    # 启动/重启/停止NFS服务
    systemctl start/restart/stop nfs-server
    # 设置/取消开机自启
    systemctl enable/disable nfs-server
    # 查看NFS服务状态(含最新日志)
    systemctl status nfs-server -l
    # 重新加载NFS共享配置
    exportfs -rv
    # 查看NFS共享列表
    exportfs
    # 查看本地NFS共享详情
    showmount -e 127.0.0.1
    # 查看哪些客户端挂载了本服务端的NFS目录
    showmount -a 192.168.1.100
    # 临时取消NFS共享
    exportfs -u /mnt/iso

    三、openEuler NFS 挂载常用命令(客户端)

    # 临时挂载NFS
    mount -t nfs 192.168.1.100:/mnt/iso /mnt/nfs_iso
    # 永久挂载生效
    mount -a
    # 查看所有挂载点(过滤NFS挂载)
    df -h | grep nfs
    # 查看NFS挂载详细信息
    mount | grep nfs
    # 正常卸载NFS(确保无程序访问该目录)
    umount /mnt/nfs_iso
    # 强制卸载(无法正常卸载时用,谨慎)
    umount -f /mnt/nfs_iso
    # 验证服务端NFS共享是否可用
    showmount -e 192.168.1.100
    # 开机自动挂载验证(重启后执行)
    df -h | grep nfs_iso

    四、openEuler 专属故障排查(高频问题 + 解决方法)

    故障 1:dnf makecache 报错「GPG check FAILED」(最常见)

    原因:repo 配置中 gpgkey 路径错误,或用了 CentOS 的密钥,未用 openEuler 原生RPM-GPG-KEY-openEuler。解决:

  • 验证服务端 / 客户端挂载目录的 GPG 密钥:ls /mnt/iso/RPM-GPG-KEY-openEuler(客户端为/mnt/nfs_iso/);
  • 编辑 repo 文件,确保gpgkey=file:///mnt/iso/RPM-GPG-KEY-openEuler(客户端对应修改路径);
  • 测试环境可直接将gpgcheck改为0,跳过校验。
  • 故障 2:showmount -e 服务端 IP 报错「clnt_create: RPC: Port mapper failure – No route to host」

    原因:服务端防火墙未关闭,且未开放 NFS 相关端口。解决:

    • 测试环境:systemctl stop firewalld && systemctl disable firewalld;
    • 生产环境:重新执行防火墙开放命令(前文第二部分 2.2)。
    故障 3:客户端挂载 NFS 后,ls /mnt/nfs_iso 报「Permission denied」

    原因:服务端 exports 配置未加no_root_squash,客户端 root 权限被压缩为匿名用户。解决:

  • 服务端编辑/etc/exports,添加no_root_squash参数;
  • 重新加载配置:exportfs -rv;
  • 客户端重新挂载:umount /mnt/nfs_iso && mount -a。
  • 故障 4:系统重启后,NFS 挂载失败(df -h 看不到 nfs_iso)

    原因:fstab 配置中未加_netdev参数,openEuler 开机先挂载后加载网络,导致挂载失败。解决:

  • 编辑/etc/fstab,将 NFS 挂载的参数改为defaults,_netdev;
  • 生效配置:mount -a;
  • 验证:重启后执行df -h | grep nfs_iso。
  • 故障 5:ISO 挂载后,ls /mnt/iso 无 BaseOS 和 AppStream 文件夹

    原因:ISO 镜像文件损坏,或不是 openEuler-24.03-LTS-SP1 的 dvd 版(netinst 版无完整包)。解决:

  • 重新下载 openEuler 原生 dvd 版 ISO:openEuler 官方下载地址;
  • 验证 ISO 校验和(避免文件损坏);
  • 重新挂载:umount /mnt/iso && mount -a。
  • 第五部分:openEuler 生产环境优化建议

  • NFS 共享固定为 ro:DNF 仓库仅需读取,rw 权限存在误操作风险,坚持ro,sync,no_root_squash;
  • 保留 SELinux 为 Permissive:openEuler-24.03 的 SELinux Enforcing 模式对 NFS 有额外限制,无特殊安全需求无需开启;
  • 防火墙白名单仅放局域网网段:生产环境开放 NFS 端口时,将192.168.1.0/24改为实际业务网段,缩小访问范围;
  • 批量客户端配置:将 NFS 挂载配置和 repo 文件制作成脚本,在局域网客户端批量执行,减少重复操作;
  • NFS 服务监控:添加 crontab 定时检查,确保 NFS 服务和挂载正常: # 每10分钟检查一次NFS挂载,失效则重新挂载
    crontab -e
    添加:*/10 * * * * mount -a
  • 多仓库组合:将 NFS-DNF 仓库与 openEuler 官方网络源结合,添加priority参数(优先级),本地 NFS 包优先,网络源补充: # 在repo文件中添加优先级,数字越小优先级越高
    priority=1
  • 第六部分:openEuler-24.03-LTS-SP1 DNF+NFS 核心命令速查表

    全程以root 权限执行(sudo -i切换),分服务端/客户端分类,命令可直接复制执行,适配 openEuler 原生环境,无冗余步骤。

    服务端(192.168.1.100)核心命令

    一、基础环境配置(防火墙 / SELinux)

    # 验证SELinux状态(默认Permissive,无需修改)
    getenforce
    # 测试环境-关闭防火墙(一键)
    systemctl stop firewalld && systemctl disable firewalld
    # 生产环境-开放NFS端口(一键)
    firewall-cmd –add-port=111/tcp –add-port=111/udp –add-port=2049/tcp –add-port=2049/udp –permanent && firewall-cmd –add-service=nfs –add-service=rpc-bind –add-service=mountd –permanent && firewall-cmd –reload
    # 配置主机名(可选)
    hostnamectl set-hostname openEuler-NFS-DNF-Server
    # 添加本地解析(可选)
    echo "192.168.1.100 openEuler-NFS-DNF-Server" >> /etc/hosts && echo "192.168.1.101 openEuler-NFS-DNF-Client" >> /etc/hosts

    二、ISO 镜像永久挂载(本地 DNF 仓库基础)

    # 新建挂载点
    mkdir -p /mnt/iso
    # 永久挂载ISO(写入fstab,替换ISO实际路径)
    echo "/opt/openEuler-24.03-LTS-SP1-x86_64-dvd.iso /mnt/iso iso9660 defaults 0 0" >> /etc/fstab
    # 生效挂载(无报错即成功)
    mount -a
    # 验证挂载(有BaseOS/AppStream即成功)
    ls /mnt/iso

    三、本地 DNF 仓库配置(openEuler 专属)

    # 进入repo目录,禁用默认网络源
    cd /etc/yum.repos.d/ && mv openEuler.repo openEuler.repo.bak
    # 新建本地repo文件(一键生成,适配GPG密钥)
    cat > local_openEuler.repo << EOF
    [BaseOS]
    name=openEuler-24.03-Local-BaseOS
    baseurl=file:///mnt/iso/BaseOS
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/iso/RPM-GPG-KEY-openEuler
    [AppStream]
    name=openEuler-24.03-Local-AppStream
    baseurl=file:///mnt/iso/AppStream
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/iso/RPM-GPG-KEY-openEuler
    EOF
    # 验证本地仓库(清理缓存+生成+查看)
    dnf clean all && dnf makecache && dnf repolist enabled
    # 测试仓库可用(安装tree)
    dnf install tree -y

    四、NFS 服务端配置(共享 DNF 仓库)

    # 安装NFS服务
    dnf install nfs-utils -y
    # 启动并开机自启NFS
    systemctl enable –now nfs-server
    # 验证NFS服务状态(active/running即成功)
    systemctl status nfs-server –no-pager
    # 配置NFS共享(局域网192.168.1.0/24只读访问,一键写入exports)
    echo "/mnt/iso 192.168.1.0/24(ro,sync,no_root_squash,no_all_squash)" >> /etc/exports
    # 生效NFS配置(无需重启服务)
    exportfs -rv
    # 验证NFS共享(有/mnt/iso即成功)
    showmount -e 127.0.0.1

    五、服务端常用管理 / 验证命令

    # 重启NFS服务
    systemctl restart nfs-server
    # 重新加载NFS共享配置
    exportfs -rv
    # 查看NFS共享列表
    exportfs
    # 查看哪些客户端挂载了本服务端
    showmount -a 192.168.1.100
    # 重新生成本地DNF缓存
    dnf clean all && dnf makecache
    # 查看DNF启用仓库
    dnf repolist enabled

    客户端(192.168.1.101)核心命令

    一、基础环境配置(可选)

    # 配置主机名
    hostnamectl set-hostname openEuler-NFS-DNF-Client
    # 添加本地解析
    echo "192.168.1.100 openEuler-NFS-DNF-Server" >> /etc/hosts && echo "192.168.1.101 openEuler-NFS-DNF-Client" >> /etc/hosts
    # 测试网络连通性(ping服务端)
    ping 192.168.1.100 -c 4

    二、NFS 客户端配置 + 永久挂载服务端共享目录

    # 安装NFS客户端工具
    dnf install nfs-utils -y
    # 新建NFS挂载点
    mkdir -p /mnt/nfs_iso
    # 临时挂载(测试用,重启失效)
    mount -t nfs 192.168.1.100:/mnt/iso /mnt/nfs_iso
    # 永久挂载(写入fstab,加_netdev避免开机挂载失败)
    echo "192.168.1.100:/mnt/iso /mnt/nfs_iso nfs defaults,_netdev 0 0" >> /etc/fstab
    # 生效挂载(无报错即成功)
    mount -a
    # 验证NFS挂载(有BaseOS/AppStream即成功)
    ls /mnt/nfs_iso
    # 查看所有挂载点(过滤NFS)
    df -h | grep nfs

    三、NFS-DNF 共享仓库配置(openEuler 专属)

    # 进入repo目录,禁用默认网络源
    cd /etc/yum.repos.d/ && mv openEuler.repo openEuler.repo.bak
    # 新建NFS-DNF repo文件(一键生成,适配挂载路径)
    cat > nfs_openEuler.repo << EOF
    [BaseOS]
    name=openEuler-24.03-NFS-BaseOS
    baseurl=file:///mnt/nfs_iso/BaseOS
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/nfs_iso/RPM-GPG-KEY-openEuler
    [AppStream]
    name=openEuler-24.03-NFS-AppStream
    baseurl=file:///mnt/nfs_iso/AppStream
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/nfs_iso/RPM-GPG-KEY-openEuler
    EOF
    # 最终验证(清理缓存+生成+查看,断网测试也可执行)
    dnf clean all && dnf makecache && dnf repolist enabled
    # 测试NFS仓库可用(安装wget)
    dnf install wget -y

    四、客户端常用管理 / 应急命令

    # 重新生效NFS永久挂载
    mount -a
    # 正常卸载NFS挂载(无程序访问时)
    umount /mnt/nfs_iso
    # 强制卸载NFS挂载(无法正常卸载时用)
    umount -f /mnt/nfs_iso
    # 验证服务端NFS共享是否可用
    showmount -e 192.168.1.100
    # 重新生成NFS-DNF缓存
    dnf clean all && dnf makecache
    # 查看NFS挂载详细信息
    mount | grep nfs

    通用应急故障排查命令(服务端 / 客户端)

    # 服务端-重启NFS+rpcbind(解决showmount报错)
    systemctl restart rpcbind nfs-server
    # 客户端-重新挂载NFS(解决挂载失效)
    umount -f /mnt/nfs_iso && mount -a
    # 通用-跳过GPG校验(测试环境,修改repo文件)
    sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/*.repo && dnf clean all && dnf makecache
    # 通用-查看DNF仓库详细信息
    dnf repoinfo BaseOS
    # 通用-检查端口连通性(测试NFS 2049端口)
    telnet 192.168.1.100 2049

    赞(0)
    未经允许不得转载:171主机测评 » Linux操作系统部署DNF仓库及NFS共享服务超详细教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址