当设备读取为繁忙(但已被确认)时,如何 fsck 分区?

当设备读取为繁忙(但已被确认)时,如何 fsck 分区?

我正在尝试运行fsck -p /dev/sda5以修复 ext4 分区上的错误,但是命令输出

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

我已经确认使用/etc/mtab并且lsof没有任何东西正在使用该分区并且它没有安装。我还曾经fuser -k /dev/sda5使用该文件强行关闭任何内容,并umount尝试卸载它但无济于事。

fsck尽管分区读起来很忙,但我如何强制至少检查并希望修复该分区?假设我有足够的信心它既没有安装也没有使用,并且数据损坏的可能性不是问题。

所有命令均以 root 身份从 Ubuntu 10.04 32 位 liveCD 执行。该分区是 Ubuntu 10.04 32 位安装的系统(非主目录)部分。

答案1

有些东西(通常在内核中,如 NFS 线程、交换文件、绑定安装等)可以使文件系统保持忙碌,但这些东西不会显示在fuser.

如果您尝试安装fsck已安装的文件系统,它将被损坏。您应该找到一张不会自动挂载您的文件系统的 Live CD,例如 Knoppix 或 Fedora。

答案2

您可以删除分区fstab并重新启动机器

答案3

尝试启动另一张 liveCD - 我推荐系统救援光盘它是专门为解决 Linux 安装问题而设计的。它也比典型的操作系统 liveCD 小。为了安全起见,请fsck从控制台运行(无 X)。

如果标准fsck -p不起作用,你也可以尝试e2fsck -y -f

答案4

相关问题/答案位于https://serverfault.com/questions/556014/centos-thinks-disk-is-busy-cant-mount-or-fsck

具体来说,文件系统可能已被 fsck 挂载以外的其他程序使用。 fusionr 和 lsof 都可能有助于确定该驱动程序/应用程序是什么。

相关内容