银河麒麟 V10 内网 YUM 源修复实战教程(U盘中转版)

文章目录

  • [银河麒麟 V10 内网 YUM 源修复实战教程(U盘中转版)](#银河麒麟 V10 内网 YUM 源修复实战教程(U盘中转版))
    • 前言
    • [第一部分:原理篇------YUM 是如何工作的?](#第一部分:原理篇——YUM 是如何工作的?)
      • [1. YUM 源的配置文件结构](#1. YUM 源的配置文件结构)
      • [2. baseurl 的三种协议](#2. baseurl 的三种协议)
      • [3. ISO 镜像与软件仓库的关系](#3. ISO 镜像与软件仓库的关系)
    • 第二部分:准备工作
      • [1. 确认环境信息(基于你的截图)](#1. 确认环境信息(基于你的截图))
      • [2. U 盘挂载知识](#2. U 盘挂载知识)
    • [第三部分:方案一------直接拷贝 Repo 文件(推荐)](#第三部分:方案一——直接拷贝 Repo 文件(推荐))
      • [步骤 1:在正常机器上打包文件](#步骤 1:在正常机器上打包文件)
      • [步骤 2:通过 U 盘中转](#步骤 2:通过 U 盘中转)
      • [步骤 3:在故障机器上恢复](#步骤 3:在故障机器上恢复)
    • [第四部分:方案二------挂载 ISO 做本地源(终极方案)](#第四部分:方案二——挂载 ISO 做本地源(终极方案))
      • [步骤 1:准备 ISO 镜像](#步骤 1:准备 ISO 镜像)
      • [步骤 2:挂载 ISO 镜像](#步骤 2:挂载 ISO 镜像)
      • [步骤 3:编写本地源配置文件](#步骤 3:编写本地源配置文件)
      • [步骤 4:验证](#步骤 4:验证)
    • 第五部分:常见问题排查(Troubleshooting)
    • 附录:常用命令速查

银河麒麟 V10 内网 YUM 源修复实战教程(U盘中转版)

前言

在企业内网环境中,服务器通常无法直接访问互联网。当某台服务器的 YUM 源配置丢失或损坏时,无法通过 yum install 修复自身。本教程将讲解如何在完全断网 的情况下,利用一台正常的服务器和 U 盘作为中转,通过拷贝源文件 或挂载 ISO 镜像两种方式,修复故障服务器的软件仓库配置。

第一部分:原理篇------YUM 是如何工作的?

在动手之前,理解原理能帮你避开 90% 的坑。

1. YUM 源的配置文件结构

YUM 的配置文件位于 /etc/yum.repos.d/ 目录下,后缀必须是 .repo。一个标准的 .repo 文件包含以下核心字段:

ini 复制代码
[repo-id]          # 仓库的唯一标识ID,不能有空格
name=描述信息       # 给人看的名字
baseurl=地址        # 核心!告诉系统去哪里下载软件包
enabled=1          # 是否启用该仓库(1启用,0禁用)
gpgcheck=0         # 是否检查数字签名(0不检查,1检查)

2. baseurl 的三种协议

这是内网修复的关键:

  • http:// / https://:从网络服务器下载(内网需搭建 HTTP 服务)。
  • ftp://:从 FTP 服务器下载。
  • file:///:本地协议 。直接读取本机硬盘上的目录。这是我们在没有网络时最常用的方式。

3. ISO 镜像与软件仓库的关系

操作系统的安装光盘(ISO)本质上就是一个包含了所有基础 RPM 包的"离线软件仓库"。只要把 ISO 挂载到系统目录,并配置 baseurl=file:///挂载点,这台机器就拥有了一个完整的本地软件源。


第二部分:准备工作

1. 确认环境信息(基于你的截图)

  • 正常机器(源机器):已确认为 Kylin Linux Advanced Server V10 (Lance),架构 x86_64。
  • 故障机器(目标机器) :架构必须也是 x86_64。如果架构不同(如一个是 Intel,一个是飞腾 ARM),绝对不能直接拷贝源文件,必须使用方案二(ISO 镜像法)。
  • 工具:一个格式化为 FAT32 或 NTFS 格式的 U 盘。

2. U 盘挂载知识

在 Linux 中,U 盘不会像 Windows 那样自动弹出盘符,需要手动挂载。

  • 插入 U 盘后,使用 lsblk 或 fdisk -l 查看设备名(通常是 /dev/sdb1)。
  • 创建挂载点:mkdir -p /mnt/usb
  • 挂载命令:mount /dev/sdb1 /mnt/usb

第三部分:方案一------直接拷贝 Repo 文件(推荐)

适用场景 :两台机器系统版本、SP 补丁版本、CPU 架构完全一致。

优点:操作简单,速度快。

步骤 1:在正常机器上打包文件

为了防止拷贝过程中文件损坏或权限丢失,建议打包传输。

bash 复制代码
# 进入配置目录
cd /etc/yum.repos.d/

# 将所有 repo 文件打包
tar czf kylin-repos-backup.tar.gz *.repo

步骤 2:通过 U 盘中转

  1. 将 U 盘插入正常机器,挂载并拷贝文件:

    bash 复制代码
    mount /dev/sdb1 /mnt/usb
    cp kylin-repos-backup.tar.gz /mnt/usb/
    umount /mnt/usb
  2. 将 U 盘插入故障机器,挂载并取出文件:

    bash 复制代码
    mount /dev/sdb1 /mnt/usb
    cp /mnt/usb/kylin-repos-backup.tar.gz /tmp/

步骤 3:在故障机器上恢复

bash 复制代码
# 1. 备份当前可能存在的错误配置
mkdir -p /etc/yum.repos.d/bak_old
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak_old/

# 2. 解压恢复新配置
cd /etc/yum.repos.d/
tar xzf /tmp/kylin-repos-backup.tar.gz

# 3. 清理缓存并重建元数据
yum clean all
yum makecache

如果看到 Metadata Cache Created,说明修复成功。


第四部分:方案二------挂载 ISO 做本地源(终极方案)

适用场景 :找不到正常的机器、两台机器版本不一致、或者拷贝的文件依然报错。

优点:100% 稳定,不依赖外部网络地址。

步骤 1:准备 ISO 镜像

你需要一份与故障机器版本对应的银河麒麟 V10 x86_64 的安装镜像文件(.iso)。可以通过 U 盘将 ISO 文件拷贝到故障机器的 /opt 目录下。

步骤 2:挂载 ISO 镜像

bash 复制代码
# 1. 创建挂载点
mkdir -p /mnt/kylin_iso

# 2. 挂载 ISO 文件(假设文件名为 Kylin-V10-SP3.iso)
mount -o loop /opt/Kylin-V10-SP3.iso /mnt/kylin_iso

注意:-o loop 参数表示将文件当作磁盘设备挂载。

步骤 3:编写本地源配置文件

使用 vi 创建一个新的 repo 文件:

bash 复制代码
vi /etc/yum.repos.d/kylin-local.repo

写入以下内容(注意 baseurl 指向刚才的挂载点):

ini 复制代码
[kylin-local-iso]
name=Kylin Local ISO Source
baseurl=file:///mnt/kylin_iso
enabled=1
gpgcheck=0

步骤 4:验证

bash 复制代码
yum clean all
yum makecache
yum list | head

如果能列出软件包列表,说明本地源配置成功。以后安装软件直接用 yum install xxx 即可。


第五部分:常见问题排查(Troubleshooting)

报错现象 原因分析 解决方案
Cannot find a valid baseurl for repo .repo 文件里的地址无法访问,或者 ISO 没挂载上。 检查 baseurl 路径是否存在;执行 ls /mnt/kylin_iso 确认有内容。
GPG key retrieval failed 开启了签名检查但找不到密钥文件。 将 .repo 文件中的 gpgcheck=1 改为 gpgcheck=0。
repodata/repomd.xml not found 指向的目录不是标准的 yum 仓库根目录。 ISO 挂载点通常就是根目录;如果是拷贝的目录,确保里面有 repodata 文件夹。
U 盘无法挂载 文件系统不支持或设备忙。 尝试 mount -t vfat /dev/sdb1 /mnt/usb;或用 umount /dev/sdb1 先卸载。
架构不匹配报错 在 x86 机器上用了 ARM 的源。 必须使用 uname -m 确认架构,严格对应 ISO 或 Repo 文件。

附录:常用命令速查

  • cat /etc/os-release:查看系统详细版本。
  • uname -m:查看 CPU 架构(x86_64 或 aarch64)。
  • lsblk:查看磁盘和 U 盘分区情况。
  • df -h:查看挂载情况。
  • yum repolist:查看当前启用的仓库列表。
相关推荐
ManageEngineITSM6 小时前
工单分类怎么设计?类别、子类别与自动分派的实用方法
大数据·服务器·数据库·人工智能·分类·数据挖掘
CANI_PLUS7 小时前
电脑文件共享
运维·服务器
Linux界最忧郁之人7 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
whyutianict_vv7 小时前
零基础转 AI 运维:投入清单、技术路线与核对表
linux·运维·人工智能·ai
无言听风雨丶7 小时前
systemd 与信号 / 僵尸进程:Linux 进程管理的底层逻辑与排错
linux·服务器·网络
DevOpenClub8 小时前
高考一分一段 API:分数查位次、科类枚举与历史对照
linux·数据库·高考
小贾要学习8 小时前
【C++后端开发项目】Reactor 模型 / C++ 仿写 muduo HTTP 服务器:让底层网络库真正跑起网页
linux·服务器·c++·http·网络编程·muduo·reactor模型
g5zhu58968 小时前
没有公网ip的情况下,本地能ping服务器服务器不能ping本地,让服务器能访问本地某端口的简单方法
服务器·网络协议·tcp/ip
Blockbuater_drug8 小时前
OpenMM分子动力学模拟02 安装:Linux:conda 一条命令装通 GPU 加速的分子模拟环境
linux·conda·cuda·gpu驱动·pythonpath·openmm安装
程序员JerrySUN8 小时前
PCIe Gen5 SSD 为什么读得快、写得慢?从存储原理到 Linux 性能实测
linux·服务器·网络