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 登录界面。

相关推荐
---学无止境---2 小时前
Linux内存映射构建艺术:VMA链接与管理的深度剖析
linux
MarcoPage4 小时前
Python 字典推导式入门:一行构建键值对映射
java·linux·python
埃伊蟹黄面5 小时前
计算机的“身体”与“灵魂”:冯·诺依曼架构与操作系统
linux
winner88817 小时前
Linux 软件安装 “命令密码本”:yum/apt/brew 一网打尽
linux·运维·服务器
思麟呀8 小时前
Linux的基础IO流
linux·运维·服务器·开发语言·c++
winner88819 小时前
嵌入式Linux驱动开发全流程:工具协作+核心概念拆解(从入门到理解)
linux·运维·驱动开发
ShiinaKaze9 小时前
fatal error: bits/c++config.h: No such file or directory
linux·gcc·g++
Archy_Wang_19 小时前
脚本自动生成专业Linux巡检报告
linux·运维·服务器
java_logo10 小时前
SGLANG Docker容器化部署指南
linux·运维·docker·容器·eureka·1024程序员节