Ubuntu 无法启动,如何修复其 ext4 系统分区?

Ubuntu 无法启动,如何修复其 ext4 系统分区?

我的上网本在启动 Ubuntu 时崩溃了(我在启动时不小心拔掉了一个 USB 盘),现在无法启动了。它给出以下错误并进入 ash(BusyBox 内置)shell:

mounting /dev on /root/dev failed: No such file or directory.
mounting /sys on /root/sys failed: No such file or directory.
mounting /proc on /root/proc failed: No such file or directory.

Target filesystem doesn't have /sbin/init
No init found. Try passing init= bootarg

我从实时 CD 启动并尝试检查我的 Linux 分区,但是不起作用:

ubuntu@ubuntu:/media$ sudo e2fsck /dev/sda2
e2fsck 1.41.12 (17-May-2010)
e2fsck: Device or resource busy while trying to open /dev/sda2
Filesystem mounted or opened exclusively by another program?

ubuntu@ubuntu:/media$ sudo fsck.ext4 /dev/sda2
e2fsck 1.41.12 (17-May-2010)
fsck.ext4: Device or resource busy while trying to open /dev/sda2
Filesystem mounted or opened exclusively by another program?

ubuntu@ubuntu:/media$ fuser /dev/sda2
ubuntu@ubuntu:/media$ fuser /dev/sda2 -v

当我尝试使用磁盘实用程序检查分区时出现以下错误:

File system is NOT clean.

安装分区也不起作用(它只是挂起)。但是我可以在 GParted 中看到该分区,并且可以成功安装并访问同一硬盘上的 Windows 分区(我也可以从该分区启动 Windows)。

有什么方法可以修复分区或者至少保存我的数据吗?

提前致谢!

答案1

我遇到了“目标文件系统没有 /sbin/init”的错误。我尝试使用 fsck,但由于以下问题,它不起作用。 

fsck: Device or resource busy while trying to open /dev/sda1
Filesystem mounted or opened exclusively by another program?

解决方案如下:

  • 从实时 Ubuntu CD 启动
  • 删除第一个 inode

    sudo debugfs -w /dev/sda1
    debugfs 1.41.11 (14-Mar-2010)
    debugfs: clri <8>
    debugfs: quit
    
  • 重新启动 Live CD 并执行

    sudo fsck -yv /dev/sda1
    

这次一定会成功。 

答案2

使用旧内核启动并升级到 10.10 解决了这个问题。现在我正在检查硬盘并进行更多备份。

相关内容