Ubuntu误删libaudit.so.1 导致系统无法正常使用、崩溃

误删libaudit.so.1 导致ubuntu无法正常使用

Ubuntu 系统因为 libaudit.so.1 被删除,现在很多关键命令都无法执行,包括 sudosumountsystemctl,这是因为 audit 库是很多系统组件运行的底层依赖。普通方式安装或修复现在都不能用,所以我们需要用手动方式恢复库

方法:用救援模式或 Live ISO 恢复(推荐)

  1. 关闭虚拟机。

  2. 挂载 Ubuntu Live ISO(和原ubuntu 系统同版本最好,比如 ubuntu-24.04.3-desktop-amd64.iso)。

  3. VMware 的虚拟机选项 - 设置 - CD/DVD - 使用ISO映像文件,找出与原系统同一版本映像。

  1. 启动虚拟机并选择安装选项

启动虚拟机,选择 Try and Install ubuntu(安装 Ubuntu Server)。

  1. 进入救援模式

在安装界面加载 or 语言选择界面 ,按 Ctrl + Alt + F2Ctrl + Alt + F3,切换到命令行控制台。在控制台中,你将进入一个最小的 shell 环境,可以执行修复操作。

bash 复制代码
# 若显示以下内容,则表示已经进入了Live/Rescue shell 环境,可以在这里修复系统
ubuntu login:

接下来就是标准的挂载 +chroot+ 重新安装库流程

bash 复制代码
ubuntu login: ubuntu
Password:   ← 直接回车
sudo -i  # 登陆后,切换到 root
# 现在应该看到 # 提示符,表示已经是 root
  1. 挂载原系统分区

    • 使用以下命令查看磁盘分区:
    bash 复制代码
    # 先查看磁盘分区
    lsblk
    • 找到你的 Ubuntu 根分区,例如 /dev/sda2(大小一般最大),记住这个名字。
    bash 复制代码
    # 假设你的根分区是 /dev/sda2,执行以下命令挂载
    # 由于`libaudit.so.1` 被删除,sudo可能会失效,去掉sudo 即可。
    mkdir /mnt/fixroot
    mount /dev/sda2 /mnt/fixroot
    • 挂载必要的虚拟文件系统,以便 chroot 能正常工作:
    bash 复制代码
    mount --bind /dev /mnt/fixroot/dev
    mount --bind /proc /mnt/fixroot/proc
    mount --bind /sys /mnt/fixroot/sys
  2. 进入 chroot 环境

  • 执行以下命令进入 chroot 环境:
bash 复制代码
sudo chroot /mnt/fixroot # 在 chroot 环境中,可以像在原系统中一样执行命令。
  1. 重新安装缺失的库

    • 现在是在 Live / Rescue ISO 下的环境 , 网络可能没有自动启用,或者没有正确配置 DNSchroot 内也会继承当前网络,如果网络不通,apt-get update 会失败。
    bash 复制代码
    # 先在 Live 系统中测试网络
    ping -c 4 8.8.8.8 # 如果能 ping 通,说明网络可达。
    # 测试 DNS:
    ping -c 4 archive.ubuntu.com
    # 如果能 ping IP 但 ping 域名不通,说明是 DNS 问题, 临时使用 Google DNS
    echo "nameserver 8.8.8.8" > /etc/resolv.conf
    # 然后再尝试 apt-get update, 成功通过。
    
    # 更新软件源和包列表:
    apt-get update
    # 若软件源更新失败,可能是
    # 重新安装 libaudit1 和 libauparse0:
    apt-get install --reinstall libaudit1 libauparse0
    # 更新动态链接库缓存:
    ldconfig
    # 检查库文件是否恢复:
    ls -l /lib/x86_64-linux-gnu/libaudit.so.1*
  2. 退出 chroot 并卸载分区

bash 复制代码
exit
umount /mnt/fixroot/dev
umount /mnt/fixroot/proc
umount /mnt/fixroot/sys
umount /mnt/fixroot
  1. 重启系统
bash 复制代码
reboot
# 记得在 VMware 设置里拔掉 ISO 或调整启动顺序,否则会重新进入安装界面。
  1. 若重启后进入GRUB菜单,说明 libaudit.so.1 已经恢复,系统可以启动了,但现在进入了 Recovery Menu
  • 手动进入:开机时按住 ShiftEsc(具体取决于 BIOS / UEFI

  • 进入 GRUB 菜单 → Advanced options for Ubuntu

  • 选择带 (recovery mode) 的项

先启用网络(可选,但有助于修复包):在 Recovery Menu 选择 network → 会启用网络,完成后返回菜单。

修复包(可选,但安全):选择 dpkg → 系统会检查并尝试修复损坏的包。

正常启动系统:选择 resume → 系统会像正常启动一样进入 Ubuntu 登录界面。

相关推荐
FoldWinCard3 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
零涂毕业设计5 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud1235 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质5 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
SakitamaX5 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.5 小时前
Linux系统管理
linux·运维
阿龙的工作记录6 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手6 小时前
Linux的基本指令
linux·运维·服务器
hkj88087 小时前
Ubuntu 切换java版本
java·linux·ubuntu
撩得Android一次心动8 小时前
Linux编程笔记3【个人用】
linux·笔记