银河麒麟 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:查看当前启用的仓库列表。
相关推荐
韩曙亮1 小时前
【错误记录】网络配置问题处理 ( 获取服务器的 出口 和 入口 IP | 定位网络变化 )
服务器·网络·tcp/ip
开开心心就好1 小时前
文件关联被破坏怎么修?免费工具一键修复
java·服务器·开发语言·pdf·ocr·启发式算法·宽度优先
小白鸽i1 小时前
【linux】麒麟桌面版安装人大金仓V8
linux·运维
Ruiery1 小时前
Linux 6.6内核内存管理深度解析(三):页表与缺页处理 — 虚拟地址怎么按需映射到物理页
linux·运维·服务器
ouynagda1 小时前
iMX6ull Linux 嵌入式驱动开发笔记(LCD / ADXL345 / SPI 子系统)
linux·arm开发·驱动开发·笔记·嵌入式硬件
小诗懂技术1 小时前
linux驱动中断,相关中断的方式与适用场景
linux·arm开发·驱动开发·算法
xiaoqiMikko1 小时前
Linux 实战(九·完):重定向、sudo、通配符的坑 + 报错速查表 —— 三台真机实测
linux·centos
H.莓飛1 小时前
【C++】模板初阶
linux·开发语言·c++·visual studio
十五年专注C++开发1 小时前
基于Asio2实现http服务器的实践总结(二)
服务器·c++·http·asio2