Ubuntu无法启动,多项系统服务启动失败(疑似误删交换文件)求助
Ubuntu无法启动,多项系统服务启动失败(疑似误删交换文件)求助
兄弟,我太懂你这种手忙脚乱搞砸系统的崩溃感了!先别慌,咱们一步步来排查解决——从你描述的情况看,误删交换文件(swap)的概率极大,因为swap缺失会导致系统内存不足,直接引发一堆依赖系统资源的服务启动失败,比如你遇到的D-Bus、日志服务、用户登录管理这些。
咱们先从确认swap问题入手,一步步修复:
第一步:用启动盘挂载系统分区,检查swap配置
- 插上你的启动盘并启动,进入live系统
- 打开终端,先查看你的系统分区(比如用
lsblk命令,找到带/标识的分区,比如/dev/sda2) - 挂载系统分区到/mnt:
sudo mount /dev/sda2 /mnt(把/dev/sda2换成你自己的系统分区) - 查看系统的swap配置文件:
cat /mnt/etc/fstab,找有没有类似这样的行:
如果有这条配置,但对应的swap分区/文件不存在,那就是误删swap实锤了。UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx none swap sw 0 0 # 或者是文件形式的swap: /swapfile none swap sw 0 0
第二步:重新创建swap文件(如果之前用的是swap文件)
如果你的swap是文件形式(现在Ubuntu默认大多是swap文件),按下面的步骤重建:
- 进入挂载的系统目录:
cd /mnt - 创建swap文件,大小建议和你的物理内存相当(比如你内存是8G,就设8G):
sudo fallocate -l 4G ./swapfile(这里4G可以改成你需要的大小,比如8G就是8G) - 设置swap文件的权限(必须是600,不然系统无法识别):
sudo chmod 600 ./swapfile - 格式化swap文件:
sudo mkswap ./swapfile - 检查
/mnt/etc/fstab里的swap条目,如果之前的还在,确认路径是/swapfile;如果没了,就添加一行到文件末尾:/swapfile none swap sw 0 0 - 临时挂载swap测试:
sudo swapon ./swapfile,如果没有报错,说明swap创建成功。
第三步:修复可能被误删的其他系统文件
除了swap,你可能不小心删了其他系统文件,导致服务启动失败。咱们可以重新安装那些失败服务对应的包:
- 先切换到挂载的系统环境:
sudo chroot /mnt - 重新安装相关服务的包:
这些分别对应你遇到的D-Bus、系统日志、用户登录管理、热守护进程服务。apt update apt install --reinstall dbus systemd-journald elogind thermald
第四步:重启测试
- 退出chroot环境:
exit - 卸载挂载的系统分区:
sudo umount /mnt - 拔掉启动盘,正常启动系统,看看那些失败的服务能不能正常启动了。
另外提醒你一句:以后用photorec恢复文件的时候,一定要把恢复的文件存到外接硬盘,绝对不能存到原盘,不然瞬间填满硬盘搞崩系统;删文件前一定要仔细核对,别手滑删了系统关键文件!
备注:内容来源于stack exchange,提问作者Smartyguy1




