在 Linux 中对根分区执行坏块扫描

paf*_*fcu 5 linux ext3 fsck partitioning

我的根分区格式为 ext3,我想对其执行坏块扫描。通常e2fsck -c -c 会执行此操作,但您不能在已安装的分区上运行它。我知道可以通过创建文件/forcefsck来强制 fsck 在引导时运行,但是否可以指定它还应该检查坏块?如果没有,检查根分区上的坏块的推荐方法是什么?我想避免必须创建救援磁盘并从它启动。

har*_*ymc 5

请参阅挂载 Linux 文件系统时是否可以运行 fsck 或 e2fsck?,其中指出在已挂载的文件系统上运行任何 fsck 都可能导致磁盘或数据损坏。

它提出了以下解决方案:

A.将系统降到单用户模式,卸载系统,然后运行 ​​e2fsck

init 1
umount /dev/sda
e2fsck -y /dev/sda3
Run Code Online (Sandbox Code Playgroud)

B.从安装光盘启动进入救援模式

boot: linux rescue nomount<br/>
mknod /dev/sda
mknod /dev/sda3
fsck /dev/sda3
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是使用 fsck 在引导时以 root 身份检查整个磁盘(交换除外):

shutdown -Fr now
Run Code Online (Sandbox Code Playgroud)

其中 -F 代表强制 fsck 检查,-r 代表重启。


Tob*_*obu 5

如果您的初始化脚本支持它(Fedora IIRC),您可以添加-c -c/fsckoptions然后创建/forcefsck并重新启动)。不幸的是,此功能并非在所有地方都可用。您可能必须重新启动到 LiveCD/LiveUSB。