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

相关推荐
春日见38 分钟前
眼在手上外参标定保姆级教学---离线手眼标定(vscode + opencv)
linux·运维·开发语言·人工智能·数码相机·计算机视觉·matlab
java小吕布2 小时前
CentOS 7 服务器性能监控实战指南
linux·服务器·centos
椰子今天很可爱2 小时前
仿照muduo库实现一个高并发服务器
linux·服务器·c++
小豆子范德萨2 小时前
cursor连接远程window服务器的WSL-ubuntu
运维·服务器·ubuntu
Xの哲學8 小时前
Linux grep命令:文本搜索的艺术与科学
linux·服务器·算法·架构·边缘计算
夜月yeyue8 小时前
Linux 调度类(sched_class)
linux·运维·c语言·单片机·性能优化
VekiSon9 小时前
Linux系统编程——IPC进程间通信:信号通信与共享内存
linux·运维·服务器
南山nash9 小时前
CentOs7 安装 Docker 详细步骤
linux·运维·docker·容器
徐先生 @_@|||10 小时前
Conda最基础使用命令
linux·windows·conda
wdfk_prog10 小时前
[Linux]学习笔记系列 -- [fs][drop_caches]
linux·笔记·学习