如何升级过时的 Linux 发行版

升级到更新版本的 Linux 发行版对于保持安全、兼容和获得支持至关重要。本文提供了升级过时系统的分步说明。

重要提示: 在执行任何升级之前,请备份重要数据,并确保系统有足够的磁盘空间和可靠的互联网连接。

通用备份策略

  • 主目录:包含用户文件、配置和文档。

  • 系统配置文件:存储在 /etc,包括服务器、网络和用户设置。

  • 数据库:MySQL/MariaDB、PostgreSQL 等。

  • 网站或应用数据:存储在 /var/www、自定义应用文件夹等。

  • 自定义脚本和服务:/usr/local、/opt 等目录下的非默认项。

按发行版分类的备份示例

在以下场景中,外部设备已预先挂载到 /mnt/ 目录。

Ubuntu / Debian

备份主目录、数据库和配置文件:

sudo apt update
sudo apt install rsync

示例:将 /home 和 /etc 备份到外部硬盘

sudo rsync -aAXv /home/ /mnt/backup/home/
sudo rsync -aAXv /etc/ /mnt/backup/etc/

可选:备份已安装软件包列表

dpkg --get-selections > package-list.txt

Fedora

sudo dnf install rsync

创建备份

sudo rsync -aAXv /home/ /mnt/backup/home/
sudo rsync -aAXv /etc/ /mnt/backup/etc/

列出已安装的软件包

rpm -qa > installed-packages.txt

Debian:备份 APT 源和配置

sudo cp -r /etc/apt /mnt/backup/etc-apt
sudo cp /etc/fstab /mnt/backup/

CentOS / Rocky / AlmaLinux

对于服务器备份,请包括:

sudo yum install rsync  # 或 dnf(适用于新版本)

文件和配置备份

sudo rsync -aAXv /home/ /mnt/backup/home/
sudo rsync -aAXv /etc/ /mnt/backup/etc/

MySQL/MariaDB 导出

mysqldump -u root -p --all-databases > all-databases.sql

备份安全提示

  • 将备份存储在单独的设备,如外部硬盘或远程服务器。

  • 测试你的备份,尽可能在虚拟机或测试服务器上还原。

  • 对于关键系统,使用支持增量备份加密的工具(如 Borg 或 Restic)。

Ubuntu

Ubuntu 只允许按顺序从一个版本升级到下一个版本。这意味着在升级过程中不能跳过版本。例如,要从 16.04 升级到 20.04,必须先升级到 18.04,然后再从 18.04 升级到 20.04。

首先,请务必查看升级前检查清单,以正确准备服务器顺利升级。

完成后,您可以继续下一步。

Ubuntu 使用do-release-upgrade进行版本升级。

要开始升级,请运行:

sudo do-release-upgrade

系统将进行一些检查,并为您提供升级前摘要以供确认。在此过程中,可能会提示您对某些软件包做出决定(如升级、保留或移除)。

升级结束时,系统会提示您重启。只有重启后,升级才算完成。

Fedora

在尝试升级到新 Fedora Linux 版本之前,请确保系统和已安装的软件包都是最新的。升级过程具有一定风险,请务必备份数据,以便在出现问题时可以恢复。

要启动升级,请按照以下步骤操作:

  1. 升级系统
    sudo dnf upgrade --refresh
    重启服务器

  2. 下载新版本软件包(将 40 替换为所需版本)
    sudo dnf system-upgrade download --releasever=40

  3. 重启并开始升级
    sudo dnf system-upgrade reboot

升级完成后,系统会第二次重启,进入更新后的 Fedora Linux 版本。

Debian

在开始升级之前,请务必备份数据,因为升级过程具有一定风险,可能需要恢复数据。

要更新 Debian 版本,请按照以下步骤操作:

第 1 步。首先,确保系统当前版本已是最新。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get full-upgrade

第 2 步。在文本编辑器中,将 APT 软件包源中的发行版代号替换为下一个版本的代号。
例如,以下行:
#    deb https://deb.debian.org/debian/ buster main
应替换为:

#    deb https://deb.debian.org/debian/ bullseye main
sudo nano /etc/apt/sources.list /etc/apt/sources.list.d/*

如果要迁移到 Bookworm 或更高版本,则有一个新的非自由固件仓库可用。
如有需要,可以根据具体情况添加 non-free 和 non-free-firmware。
例如:
#    deb https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

#    deb https://deb.debian.org/debian/ stable main contrib non-free non-free-firmware

第 3 步。清理并更新软件包列表
sudo apt-get clean
sudo apt-get update

第 4 步。执行主版本升级,如有需要移除软件包:
sudo apt-get upgrade
sudo apt-get full-upgrade

第 5 步。移除不再需要的软件包。请务必检查此列表:有些可能需要保留:
sudo apt-get autoremove

第 6 步。重启以使更改生效(可选,但推荐)
sudo shutdown -r now

现在检查/etc/debian_version/etc/os-release的内容,应该可以看到有关升级后系统的信息。

CentOS/Almalinux/Rocky Linux

这些操作系统不支持从一个主版本直接升级到另一个主版本。要升级到下一个主版本,必须全新安装。

完整流程包括以下步骤:

  1. 备份所有需要迁移到新系统的相关数据。
    包括但不限于:
    - 自定义用户账户(尤其是为特定目的手动创建的)
    - 自定义仓库
    - 需要在新系统上重新安装的手动安装软件包
    - 网站相关内容

    请务必识别服务器负责的所有服务。这可能包括数据库、邮件服务器、DNS 配置等。如果不确定要备份哪些内容,建议全部备份。您也可以咨询开发人员或系统管理员以确定所有关键数据。

  2. 将备份保存到当前服务器以外的安全位置。
    确保备份安全存储,并在准备恢复数据时可访问。

  3. 使用所需的新版本重新安装操作系统。

  4. 将备份恢复到新系统。
    通常包括:
    - 重新创建用户和用户组
    - 恢复数据库
    - 重新上传网站文件
    - 按需重新配置 DNS 记录和其他服务

需要提供有效的电子邮箱