温馨提示×

Linux dropped如何升级

小樊
40
2025-12-05 23:43:25
栏目: 智能运维

先澄清含义与准备

  • “dropped”在 Linux 场景下常见有三种含义:
    1. 发行版或软件仓库被停止维护/下线(如 CentOS 7 已 EOL);
    2. 升级过程被中断/卡死(需要继续或回滚);
    3. 日志中出现 “packet dropped”(网络丢包,非系统升级问题)。
  • 操作前务必做好数据备份、确认架构与版本、准备控制台/救援通道,并在变更窗口内执行。

场景一 发行版或仓库被停止维护时的升级路径

  • CentOS 7 等已 EOL 系统,官方仓库可能不可用,建议优先迁移至受支持的 CentOS Stream 或考虑 AlmaLinux/Rocky Linux 等替代发行版。若短期内必须续命,可临时使用第三方仓库(如 ELRepo)仅升级内核,以降低风险。
  • 仅升级内核(ELRepo,示例为 x86_64):
    1. 导入 GPG 并安装 ELRepo 仓库:
      sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
      sudo yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
    2. 查看并安装主线内核(kernel-ml):
      sudo yum --disablerepo=“*” --enablerepo=“elrepo-kernel” list available
      sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
    3. 设置默认启动内核并生成 GRUB 配置:
      grub2-set-default ‘CentOS Linux (6.8.9-1.el7.elrepo.x86_64) 7 (Core)’
      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      reboot
    4. 注意:第三方仓库仅能缓解内核层面的安全风险,无法替代完整的系统升级/迁移方案。
  • 若计划跨大版本(如 7 → 8/Stream),需评估应用兼容性与数据迁移策略,优先采用全新安装 + 数据迁移的方式,避免就地跨版本升级导致不稳定。

场景二 升级过程被中断的继续与回滚

  • RPM/YUM 系(CentOS/RHEL 7):
    • 继续未完成的配置:sudo dpkg --configure -a(适用于 Debian/Ubuntu,若误用请忽略)
    • 继续处理事务:sudo yum-complete-transaction --cleanup-only
    • 常规继续更新:sudo yum update
    • 回滚最近一次事务:查看历史 sudo yum history list;回滚 sudo yum history undo
    • 指定包回滚:sudo yum downgrade -
    • 重要限制:kernel、glibc、selinux、selinux-policy-* 等通常不支持通过 YUM history 或 downgrade 安全回滚,需改用其他方式(如救援模式、重装)。
  • DNF 系(较新发行版):
    • 继续/修复:sudo dnf distro-sync 或 sudo dnf-complete-transaction
    • 回滚:sudo dnf history undo
  • Ubuntu/Debian:
    • 继续中断升级:sudo dpkg --configure -a
    • 继续/完成升级:sudo apt update && apt dist-upgrade
    • 图形化继续:sudo update-manager -c -d(如界面可用)。

场景三 升级后无法启动的修复

  • 进入 GRUB 菜单,选择旧内核临时启动,验证系统可用性。
  • 重建 GRUB 配置与引导:
    • BIOS:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    • UEFI:sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
    • 必要时重装引导:sudo grub2-install /dev/sda
  • 检查并修复文件系统(按需):sudo fsck /dev/sda1(请替换为实际分区)。

场景四 若“dropped”指网络丢包

  • 这并非系统升级问题,可用以下命令定位:
    • 查看实时丢包:ip -s link show
    • 检测链路质量:ping -c 100 <网关或目标IP>
    • 抓包分析:sudo tcpdump -ni any ‘icmp or port <业务端口>’
    • 检查网卡/队列/驱动:ethtool -S 、ethtool -k
    • 调整缓冲区/队列:如 net.core.netdev_budgetnetdev_rss_key、RPS/RFS 等(需结合业务与内核文档谨慎调整)。

0