您可以借助root和终端仿真器(例如Android Terminal Emulator(或使用adb shell
)来解决此问题。执行此工作的二进制文件称为fsck
,通常位于/system/xbin
或中/system/bin
。有时您需要它的特殊变体,例如,可能被称为fsck.exfat
之类的东西,所以首先让我们确保找到正确的二进制文件:
cd /system/xbin
ls fsc*
如果找不到,请重复/system/bin
。我将假定它首先被找到,并且被简单地称为fsck
(如果不是,则相应地调整以下内容)。
由于fsck
来自于“Linux的核心”,我们可以参考它的手册页的语法。尽管可能有些选项无法在Android上使用,但最基本的选项应该可以。有关详细信息,请参见链接的手册页(或运行Linux VM并man fsck
在该页面消失的情况下使用)-我将在此处坚持以下基本知识:
首先,我们需要找到您的SD卡绑定到的设备。如果已安装,该mount
命令将为我们提供帮助:
mount
基本上就是这样:检查输出并查看SD卡的位置。通常,这是使用的东西vold
,但是在设备之间是不同的。输出可能包括类似的内容/dev/block/vold/179:17 on /mnt/storage/sdcard
-在这种情况下,我报价的第一部分是我们的设备。为了修复“驱动器”,您需要先卸下它。这可以通过设置菜单来完成,或者就像在终端一样,通过发出
umount /dev/block/vold/179:17
现在我们可以进行维修工作了。基本语法是:
fsck [options] [-t fstype] <filesystem> [fsoptions]
因此,我们首先尝试最简单的方法,并希望fsck
自己弄清楚所有事情:
fsck -C -r /dev/block/vold/179:17
这基本上意味着:显示进度(-C),并始终要求用户修复(-r)上的任何错误/dev/block/vold/179:17
。如果仍然无法解决,请查看链接的手册页以获取更多选项。
su
和运行/system/bin/fsck.exfat
?