在不破坏分区和不用重新配置系统的前提下,对x86_64的OpenWrt系统进行升级是一项重要且需要谨慎处理的任务。本文将提供详细的升级步骤,确保您能顺利完成升级过程。
准备工作
在执行升级之前,请务必备份重要数据,并在操作过程中注意事项。
- 备份内核模块列表和已安装软件列表:
# 导出已安装的内核模块列表
opkg list-installed | grep kmod | cut -f 1 -d ' ' > /root/kmod-list.txt
# 导出已安装软件列表
opkg list-installed | cut -f 1 -d ' ' > /root/packages-list.txt
- 下载新版本固件:
# 下载新版本的 generic-kernel.bin
cd /tmp
wget https://downloads.openwrt.org/releases/23.05.2/targets/x86/64/openwrt-23.05.2-x86-64-generic-kernel.bin
# 下载 rootfs.tar.gz 并解压到 /tmp/upgrade
wget https://downloads.openwrt.org/releases/23.05.2/targets/x86/64/openwrt-23.05.2-x86-64-rootfs.tar.gz
mkdir /tmp/upgrade
tar -xvzf openwrt-23.05.2-x86-64-rootfs.tar.gz -C /tmp/upgrade
升级步骤
- 备份旧版本内核文件:
# 备份旧版本内核文件
cp /boot/vmlinuz /boot/vmlinuz.old
- 安装新版本内核文件:
# 将下载的 generic-kernel.bin 文件覆盖到 /boot/vmlinuz
cp /tmp/openwrt-23.05.2-x86-64-generic-kernel.bin /boot/vmlinuz
- 准备升级环境:
# 删除配置文件、密码文件、主机名、hosts、resolv.conf 等文件,以避免覆盖现有配置
rm -rf /tmp/upgrade/etc/config
rm /tmp/upgrade/etc/passwd
rm /tmp/upgrade/etc/shadow
rm /tmp/upgrade/etc/group
rm /tmp/upgrade/etc/hostname
rm /tmp/upgrade/etc/hosts
rm /tmp/upgrade/etc/resolv.conf
- 复制新版本文件到系统:
# 使用 cp -rf 命令复制新版本文件到系统
cp -a /tmp/upgrade/. /
- 升级软件包:
# 升级所有软件包
opkg update
opkg upgrade $(opkg list-upgradable | cut -f 1 -d ' ')
- 恢复内核模块和软件包:
# 安装1-2步导出的内核模块和软件包
xargs -a /root/kmod-list.txt opkg install
xargs -a /root/packages-list.txt opkg install
- 完成升级:
# 最后,执行 reboot 命令完成升级过程
reboot
注意事项
- 升级过程中,请确保网络连接稳定。
- 如果遇到任何问题,请及时停止操作,并寻求专业帮助。
- 请谨慎操作,避免操作失误导致数据丢失或系统损坏。
通过本指南,您应能够顺利将OpenWrt系统从22.03版本升级至23.05版本,以享受新版本带来的功能和改进。
祝您顺利完成升级!