文章目录
- [银河麒麟 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 盘中转
-
将 U 盘插入正常机器,挂载并拷贝文件:
bashmount /dev/sdb1 /mnt/usb cp kylin-repos-backup.tar.gz /mnt/usb/ umount /mnt/usb -
将 U 盘插入故障机器,挂载并取出文件:
bashmount /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:查看当前启用的仓库列表。