1. 升级前准备工作
国产操作系统升级前需要进行充分的准备工作,包括环境评估、资源准备、风险评估等,确保升级过程顺利进行。更多学习教程www.fgedu.net.cn
$ cat /etc/os-release
NAME=”openEuler”
VERSION=”22.03 (LTS-SP1)”
ID=”openEuler”
VERSION_ID=”22.03″
PRETTY_NAME=”openEuler 22.03 (LTS-SP1)”
ANSI_COLOR=”0;31″
# 检查当前系统版本(麒麟)
$ cat /etc/.kyinfo
[dist]
name=Kylin
os=linux
arch=x86_64
edition=V10
version=V10-SP1-2203
[servicekey]
key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# 检查系统硬件信息
$ dmidecode -t system
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Huawei
Product Name: TaiShan 200 2280
Version: V100R001
Serial Number: 1234567890
UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Wake-up Type: Power Switch
SKU Number: 1234567890
Family: TaiShan
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Huawei
Product Name: BC82AMDDA
Version: V100R001
Serial Number: 1234567890
Asset Tag: 1234567890
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Default string
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
# 检查CPU架构
$ uname -m
aarch64
$ lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 128
On-line CPU(s) list: 0-127
Thread(s) per core: 1
Core(s) per socket: 64
Socket(s): 2
NUMA node(s): 4
Vendor ID: ARM
Model: 0
Model name: Kunpeng-920
Stepping: r1p0
CPU max MHz: 2600.0000
CPU min MHz: 200.0000
BogoMIPS: 200.00
L1d cache: 64K
L1i cache: 64K
L2 cache: 512K
L3 cache: 65536K
NUMA node0 CPU(s): 0-31
NUMA node1 CPU(s): 32-63
NUMA node2 CPU(s): 64-95
NUMA node3 CPU(s): 96-127
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 8.5M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda2 100G 45G 55G 45% /
/dev/sda1 500M 120M 380M 24% /boot
/dev/sdb1 500G 200G 300G 40% /data
# 检查内存使用
$ free -h
total used free shared buff/cache available
Mem: 251G 8.5G 235G 120M 7.2G 241G
Swap: 32G 0B 32G
# 检查运行中的服务
$ systemctl list-units –type=service –state=running | head -20
UNIT LOAD ACTIVE SUB DESCRIPTION
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
firewalld.service loaded active running firewalld – dynamic firewall daemon
getty@tty1.service loaded active running Getty on tty1
irqbalance.service loaded active running irqbalance daemon
kdump.service loaded active running Crash recovery kernel arming
NetworkManager.service loaded active running Network Manager
polkit.service loaded active running Authorization Manager
rsyslog.service loaded active running System Logging Service
sshd.service loaded active running OpenSSH server daemon
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-udevd.service loaded active running udev Kernel Device Manager
tuned.service loaded active running Dynamic System Tuning Daemon
vmtoolsd.service loaded active running Service for virtual machines hosted on VMware
2. 系统备份
系统备份是升级前的重要步骤,确保在升级失败时可以恢复系统。学习交流加群风哥微信: itpux-com
$ mkdir -p /backup/os-upgrade-$(date +%Y%m%d)
$ cd /backup/os-upgrade-$(date +%Y%m%d)
# 备份重要配置文件
$ tar -czvf etc-backup.tar.gz /etc
$ tar -czvf home-backup.tar.gz /home
$ tar -czvf root-backup.tar.gz /root
$ tar -czvf var-backup.tar.gz /var/log /var/spool/cron
# 备份软件包列表
$ rpm -qa > installed-packages.txt
$ cat installed-packages.txt | head -20
NetworkManager-1.32.12-9.oe2203sp1.aarch64
NetworkManager-libnm-1.32.12-9.oe2203sp1.aarch64
NetworkManager-team-1.32.12-9.oe2203sp1.aarch64
NetworkManager-tui-1.32.12-9.oe2203sp1.aarch64
acl-2.3.1-2.oe2203sp1.aarch64
attr-2.5.1-2.oe2203sp1.aarch64
audit-3.0.6-5.oe2203sp1.aarch64
audit-libs-3.0.6-5.oe2203sp1.aarch64
basesystem-12-6.oe2203sp1.noarch
bash-5.1.8-2.oe2203sp1.aarch64
bind-export-libs-9.16.23-3.oe2203sp1.aarch64
binutils-2.37-6.oe2203sp1.aarch64
bzip2-1.0.8-4.oe2203sp1.aarch64
bzip2-libs-1.0.8-4.oe2203sp1.aarch64
ca-certificates-2022.2.54-5.oe2203sp1.noarch
chkconfig-1.20-3.oe2203sp1.aarch64
chrony-4.1-2.oe2203sp1.aarch64
coreutils-8.32-13.oe2203sp1.aarch64
cpio-2.13-4.oe2203sp1.aarch64
cracklib-2.9.7-4.oe2203sp1.aarch64
# 备份分区表
$ sfdisk -d /dev/sda > partition-table-backup.txt
$ cat partition-table-backup.txt
label: gpt
label-id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
device: /dev/sda
unit: sectors
first-lba: 2048
last-lba: 209715166
/dev/sda1 : start= 2048, size= 1048576, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, name=”EFI System Partition”
/dev/sda2 : start= 1050624, size= 209664543, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, name=”Linux filesystem”
# 创建系统镜像备份
$ dd if=/dev/sda of=/backup/os-upgrade-$(date +%Y%m%d)/disk-image.img bs=4M status=progress
209715200 bytes (210 MB, 200 MiB) copied, 1 s, 210 MB/s
3. 欧拉操作系统升级
欧拉操作系统升级可以通过dnf或yum进行在线升级,也可以使用ISO镜像进行离线升级。
$ dnf update -y
Last metadata expiration check: 0:05:21 ago on Thu Apr 3 10:00:00 2026.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Upgrading:
kernel aarch64 5.10.0-60.18.0.50.oe2203sp1
everything 45 M
kernel-tools aarch64 5.10.0-60.18.0.50.oe2203sp1
everything 2.3 M
kernel-tools-libs aarch64 5.10.0-60.18.0.50.oe2203sp1
everything 1.2 M
systemd aarch64 249-35.oe2203sp1 everything 3.8 M
systemd-libs aarch64 249-35.oe2203sp1 everything 1.1 M
systemd-pam aarch64 249-35.oe2203sp1 everything 456 k
systemd-udev aarch64 249-35.oe2203sp1 everything 1.8 M
Transaction Summary
================================================================================
Upgrade 7 Packages
Total download size: 55 M
Downloading Packages:
(1/7): kernel-tools-5.10.0-60.18.0.50.oe2203sp1.aarch64.rpm 2.3 MB/s | 2.3 MB 00:00
(2/7): kernel-tools-libs-5.10.0-60.18.0.50.oe2203sp1.aarch64.rpm 1.2 MB/s | 1.2 MB 00:00
(3/7): systemd-249-35.oe2203sp1.aarch64.rpm 3.8 MB/s | 3.8 MB 00:00
(4/7): systemd-libs-249-35.oe2203sp1.aarch64.rpm 1.1 MB/s | 1.1 MB 00:00
(5/7): systemd-pam-249-35.oe2203sp1.aarch64.rpm 456 kB/s | 456 kB 00:00
(6/7): systemd-udev-249-35.oe2203sp1.aarch64.rpm 1.8 MB/s | 1.8 MB 00:00
(7/7): kernel-5.10.0-60.18.0.50.oe2203sp1.aarch64.rpm 45 MB/s | 45 MB 00:01
——————————————————————————–
Total 23 MB/s | 55 MB 00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : systemd-libs-249-35.oe2203sp1.aarch64 1/14
Upgrading : systemd-pam-249-35.oe2203sp1.aarch64 2/14
Upgrading : systemd-udev-249-35.oe2203sp1.aarch64 3/14
Upgrading : systemd-249-35.oe2203sp1.aarch64 4/14
Upgrading : kernel-tools-libs-5.10.0-60.18.0.50.oe2203sp1.aarch64 5/14
Upgrading : kernel-tools-5.10.0-60.18.0.50.oe2203sp1.aarch64 6/14
Installing : kernel-5.10.0-60.18.0.50.oe2203sp1.aarch64 7/14
Cleanup : systemd-249-34.oe2203sp1.aarch64 8/14
Cleanup : systemd-libs-249-34.oe2203sp1.aarch64 9/14
Cleanup : systemd-pam-249-34.oe2203sp1.aarch64 10/14
Cleanup : systemd-udev-249-34.oe2203sp1.aarch64 11/14
Cleanup : kernel-tools-5.10.0-60.18.0.49.oe2203sp1.aarch64 12/14
Cleanup : kernel-tools-libs-5.10.0-60.18.0.49.oe2203sp1.aarch64 13/14
Cleanup : kernel-5.10.0-60.18.0.49.oe2203sp1.aarch64 14/14
Running scriptlet: kernel-5.10.0-60.18.0.49.oe2203sp1.aarch64 14/14
Verifying : kernel-5.10.0-60.18.0.50.oe2203sp1.aarch64 1/14
Verifying : kernel-tools-5.10.0-60.18.0.50.oe2203sp1.aarch64 2/14
Verifying : kernel-tools-libs-5.10.0-60.18.0.50.oe2203sp1.aarch64 3/14
Verifying : systemd-249-35.oe2203sp1.aarch64 4/14
Verifying : systemd-libs-249-35.oe2203sp1.aarch64 5/14
Verifying : systemd-pam-249-35.oe2203sp1.aarch64 6/14
Verifying : systemd-udev-249-35.oe2203sp1.aarch64 7/14
Upgraded:
kernel-5.10.0-60.18.0.50.oe2203sp1.aarch64
kernel-tools-5.10.0-60.18.0.50.oe2203sp1.aarch64
kernel-tools-libs-5.10.0-60.18.0.50.oe2203sp1.aarch64
systemd-249-35.oe2203sp1.aarch64
systemd-libs-249-35.oe2203sp1.aarch64
systemd-pam-249-35.oe2203sp1.aarch64
systemd-udev-249-35.oe2203sp1.aarch64
Complete!
$ dnf install -y dnf-plugin-release-upgrade
$ dnf release-upgrade -y
Last metadata expiration check: 0:10:00 ago on Thu Apr 3 10:30:00 2026.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Upgrading:
openEuler-release noarch 22.03LTS-SP2-1.oe2203sp2
everything 23 k
openEuler-release-everything
noarch 22.03LTS-SP2-1.oe2203sp2
everything 12 k
Transaction Summary
================================================================================
Upgrade 2 Packages
Total download size: 35 k
Downloading Packages:
(1/2): openEuler-release-22.03LTS-SP2-1.oe2203sp2.noarch.rpm 23 kB/s | 23 kB 00:00
(2/2): openEuler-release-everything-22.03LTS-SP2-1.oe2203sp2.noarch.rpm 12 kB/s | 12 kB 00:00
——————————————————————————–
Total 35 kB/s | 35 kB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : openEuler-release-22.03LTS-SP2-1.oe2203sp2.noarch 1/4
Upgrading : openEuler-release-everything-22.03LTS-SP2-1.oe2203sp2.noarch 2/4
Cleanup : openEuler-release-22.03LTS-SP1-1.oe2203sp1.noarch 3/4
Cleanup : openEuler-release-everything-22.03LTS-SP1-1.oe2203sp1.noarch 4/4
Verifying : openEuler-release-22.03LTS-SP2-1.oe2203sp2.noarch 1/4
Verifying : openEuler-release-everything-22.03LTS-SP2-1.oe2203sp2.noarch 2/4
Upgraded:
openEuler-release-22.03LTS-SP2-1.oe2203sp2.noarch
openEuler-release-everything-22.03LTS-SP2-1.oe2203sp2.noarch
Complete!
# 重启系统
$ reboot
# 验证升级后的版本
$ cat /etc/os-release
NAME=”openEuler”
VERSION=”22.03 (LTS-SP2)”
ID=”openEuler”
VERSION_ID=”22.03″
PRETTY_NAME=”openEuler 22.03 (LTS-SP2)”
ANSI_COLOR=”0;31″
4. 麒麟操作系统升级
麒麟操作系统升级可以通过apt或kylin-update工具进行在线升级。
$ apt update
Hit:1 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1 InRelease
Hit:2 http://archive.kylinos.cn/kylin/partner juniper InRelease
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
All packages are up to date.
$ apt upgrade -y
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Calculating upgrade… Done
The following packages will be upgraded:
base-files bash dbus dbus-x11 dpkg firefox grub-common grub2-common
grub-efi-arm64 grub-efi-arm64-bin grub-efi-arm64-signed initramfs-tools
initramfs-tools-bin initramfs-tools-core libdbus-1-3 libdpkg-perl
libnetplan0 libnss-systemd libpam-systemd libsystemd0 linux-firmware
linux-generic netplan.io python3-distupgrade python3-update-manager
systemd systemd-sysv systemd-timesyncd ubuntu-release-upgrader-core
update-manager-core
30 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 234 MB of archives.
After this operation, 12.3 MB of additional disk space will be used.
Get:1 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main arm64 base-files arm64 11.1.0kylin1 [56.7 kB]
Get:2 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main arm64 bash arm64 5.1-6kylin1 [678 kB]
Get:3 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main arm64 dbus arm64 1.12.20-2kylin1 [156 kB]
…
Fetched 234 MB in 2min 34s (1,520 kB/s)
(Reading database … 234567 files and directories currently installed.)
Preparing to unpack …/base-files_11.1.0kylin1_arm64.deb …
Unpacking base-files (11.1.0kylin1) over (11.1.0kylin0) …
Setting up base-files (11.1.0kylin1) …
Installing new version of config file /etc/issue …
Installing new version of config file /etc/issue.net …
Installing new version of config file /etc/lsb-release …
(Reading database … 234567 files and directories currently installed.)
Preparing to unpack …/bash_5.1-6kylin1_arm64.deb …
Unpacking bash (5.1-6kylin1) over (5.1-6kylin0) …
Setting up bash (5.1-6kylin1) …
update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode
(Reading database … 234567 files and directories currently installed.)
Preparing to unpack …/dbus_1.12.20-2kylin1_arm64.deb …
Unpacking dbus (1.12.20-2kylin1) over (1.12.20-2kylin0) …
Setting up dbus (1.12.20-2kylin1) …
…
Processing triggers for libc-bin (2.31-0kylin9) …
Processing triggers for systemd (249.11-0kylin7) …
Processing triggers for initramfs-tools (0.140kylin1) …
update-initramfs: Generating /boot/initrd.img-5.4.18-53-generic
Processing triggers for linux-image-5.4.18-53-generic (5.4.18-53.61) …
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.4.18-53-generic
/etc/kernel/postinst.d/zz-update-grub:
Sourcing file `/etc/default/grub’
Generating grub configuration file …
Found linux image: /boot/vmlinuz-5.4.18-53-generic
Found initrd image: /boot/initrd.img-5.4.18-53-generic
Found linux image: /boot/vmlinuz-5.4.18-52-generic
Found initrd image: /boot/initrd.img-5.4.18-52-generic
done
5. 系统迁移策略
系统迁移需要考虑数据完整性、业务连续性等因素,制定详细的迁移计划。学习交流加群风哥QQ113257174
$ rsync -avz –progress –exclude=’/proc’ –exclude=’/sys’ –exclude=’/dev’ –exclude=’/run’ –exclude=’/boot’ / /mnt/new-system/
sending incremental file list
./
bin/
bin/bash
1,234,567 100% 123.45MB/s 0:00:00 (xfr#1, to-chk=123456/234567)
bin/cat
567,890 100% 56.78MB/s 0:00:00 (xfr#2, to-chk=123455/234567)
bin/chmod
678,901 100% 67.89MB/s 0:00:00 (xfr#3, to-chk=123454/234567)
…
etc/
etc/NetworkManager/
etc/NetworkManager/NetworkManager.conf
1,234 100% 0.12MB/s 0:00:00 (xfr#12345, to-chk=111111/234567)
etc/NetworkManager/dispatcher.d/
etc/NetworkManager/dispatcher.d/01-ifupdown
2,345 100% 0.23MB/s 0:00:00 (xfr#12346, to-chk=111110/234567)
…
sent 45,678,901,234 bytes received 1,234,567 bytes 123,456,789.01 bytes/sec
total size is 123,456,789,012 speedup is 2.70
# 复制启动文件
$ cp -a /boot /mnt/new-system/
# 更新fstab
$ cat /mnt/new-system/etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults 1 1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot ext4 defaults 1 2
UUID=XXXX-XXXX /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/centos-swap swap swap defaults 0 0
6. 升级验证
升级完成后需要进行全面的验证,确保系统正常运行。更多学习教程公众号风哥教程itpux_com
$ cat /etc/os-release
NAME=”openEuler”
VERSION=”22.03 (LTS-SP2)”
ID=”openEuler”
VERSION_ID=”22.03″
PRETTY_NAME=”openEuler 22.03 (LTS-SP2)”
ANSI_COLOR=”0;31″
# 验证内核版本
$ uname -r
5.10.0-60.18.0.50.oe2203sp2.aarch64
# 验证服务状态
$ systemctl is-active sshd
active
$ systemctl is-active NetworkManager
active
# 验证网络连接
$ ping -c 3 www.fgedu.net.cn
PING www.fgedu.net.cn (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.567 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.456 ms
64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=0.432 ms
— www.fgedu.net.cn ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.432/0.485/0.567/0.062 ms
# 验证磁盘空间
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 8.5M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda2 100G 48G 52G 49% /
/dev/sda1 500M 120M 380M 24% /boot
/dev/sdb1 500G 200G 300G 40% /data
7. 回滚方案
回滚方案是升级过程中的重要保障,当升级出现问题时可以快速恢复到之前的状态。
$ cd /backup/os-upgrade-20260403
# 恢复配置文件
$ tar -xzvf etc-backup.tar.gz -C /
$ tar -xzvf home-backup.tar.gz -C /
$ tar -xzvf root-backup.tar.gz -C /
# 恢复软件包
$ dnf downgrade $(cat installed-packages.txt)
# 恢复分区表
$ sfdisk /dev/sda < partition-table-backup.txt
# 恢复磁盘镜像
$ dd if=disk-image.img of=/dev/sda bs=4M status=progress
8. 最佳实践
国产操作系统升级与迁移的最佳实践包括:
- 制定详细的升级计划和回滚方案
- 选择合适的升级时间窗口
- 完整备份系统和数据
- 验证新版本兼容性
- 在非生产环境先行测试
- 升级后进行全面验证
- 监控系统运行状态
- 记录升级过程和结果
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
