You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Ubuntu无法启动,多项系统服务启动失败(疑似误删交换文件)求助

Ubuntu无法启动,多项系统服务启动失败(疑似误删交换文件)求助

兄弟,我太懂你这种手忙脚乱搞砸系统的崩溃感了!先别慌,咱们一步步来排查解决——从你描述的情况看,误删交换文件(swap)的概率极大,因为swap缺失会导致系统内存不足,直接引发一堆依赖系统资源的服务启动失败,比如你遇到的D-Bus、日志服务、用户登录管理这些。

咱们先从确认swap问题入手,一步步修复:

第一步:用启动盘挂载系统分区,检查swap配置

  1. 插上你的启动盘并启动,进入live系统
  2. 打开终端,先查看你的系统分区(比如用lsblk命令,找到带/标识的分区,比如/dev/sda2
  3. 挂载系统分区到/mnt:sudo mount /dev/sda2 /mnt(把/dev/sda2换成你自己的系统分区)
  4. 查看系统的swap配置文件:cat /mnt/etc/fstab,找有没有类似这样的行:
    UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx none swap sw 0 0
    # 或者是文件形式的swap:
    /swapfile none swap sw 0 0
    
    如果有这条配置,但对应的swap分区/文件不存在,那就是误删swap实锤了。

第二步:重新创建swap文件(如果之前用的是swap文件)

如果你的swap是文件形式(现在Ubuntu默认大多是swap文件),按下面的步骤重建:

  1. 进入挂载的系统目录:cd /mnt
  2. 创建swap文件,大小建议和你的物理内存相当(比如你内存是8G,就设8G):sudo fallocate -l 4G ./swapfile(这里4G可以改成你需要的大小,比如8G就是8G
  3. 设置swap文件的权限(必须是600,不然系统无法识别):sudo chmod 600 ./swapfile
  4. 格式化swap文件:sudo mkswap ./swapfile
  5. 检查/mnt/etc/fstab里的swap条目,如果之前的还在,确认路径是/swapfile;如果没了,就添加一行到文件末尾:
    /swapfile none swap sw 0 0
    
  6. 临时挂载swap测试:sudo swapon ./swapfile,如果没有报错,说明swap创建成功。

第三步:修复可能被误删的其他系统文件

除了swap,你可能不小心删了其他系统文件,导致服务启动失败。咱们可以重新安装那些失败服务对应的包:

  1. 先切换到挂载的系统环境:sudo chroot /mnt
  2. 重新安装相关服务的包:
    apt update
    apt install --reinstall dbus systemd-journald elogind thermald
    
    这些分别对应你遇到的D-Bus、系统日志、用户登录管理、热守护进程服务。

第四步:重启测试

  1. 退出chroot环境:exit
  2. 卸载挂载的系统分区:sudo umount /mnt
  3. 拔掉启动盘,正常启动系统,看看那些失败的服务能不能正常启动了。

另外提醒你一句:以后用photorec恢复文件的时候,一定要把恢复的文件存到外接硬盘,绝对不能存到原盘,不然瞬间填满硬盘搞崩系统;删文件前一定要仔细核对,别手滑删了系统关键文件!

备注:内容来源于stack exchange,提问作者Smartyguy1

火山引擎 最新活动