是否有任何工具或应用程序用于检查SD卡是否存在驱动器错误并从android本身内部修复该错误?
我还想提到我在安装了busybox的根目录上。
#1 楼
您可以借助root和终端仿真器(例如Android终端仿真器(或使用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卡可用的设备d to。如果已安装,则
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
上的任何错误。如果仍然无法解决,请查看链接的手册页以获取更多选项。评论
如果需要,还可以通过从当前工作目录中使用ls / system / bin / fsc *和ls / system / xbin / fsc *来保存cd步骤。您甚至可以使用ls / system / xbin / fsc * / system / bin / fsc *将两者合并为一个命令。
–eldarerathis
13年1月31日在16:52
不,我不会混淆,我不知道的是这个问题实际上与SD卡有关。是的,我确实确实混淆了一些事情。严格来说,您也可以将SD卡格式化为ext,因此这可能适用于这样做的人。
– Lie Ryan
13年11月9日,12:57
点了。尽管“普通用户”(或一个“有疑问的人”)可能更好地坚持使用FAT,至少出于互操作性考虑。至少在大多数操作系统上都容易地支持ExtFS之前,默认情况下它不需要任何其他驱动程序(猜测Windows将会像往常一样是这里的陷阱)。
– Izzy♦
2013年11月9日13:08
感谢您的回答,我认为这是我所需要的。我在umount上遇到错误,您必须是root用户吗?
–有机大理石
16/12/26在13:35
@OrganicMarble是的,当然–对于上述所有命令,否则您将无法以这种方式访问设备(所有以/ dev开头的设备)。
– Izzy♦
16/12/27在20:50
#2 楼
谢谢你,这节省了我的一天:)root@android:/ # mount | grep -i sdcard
/dev/block/nandk /mnt/sdcard vfat rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0
root@android:/ # /system/bin/fsck_msdos -y /dev/block/nandk
评论
感谢您发布此答案,它对我有很大帮助。从接受的答案中,我不知道如何修复vfat文件系统。已投票。
–有机大理石
16/12/27在20:42
#3 楼
如果您的SD卡反复出现错误,则应使用H2testw(仅以德语链接,以德语和英语链接软件。尽管外观相反,我相信这是官方网站),才能确保它确实具有指定的容量。错误的SD卡将自动损坏。评论
感谢您对这个久已忘记的答案的支持。应该是一个评论,但当时我可能没有这个声誉。我现在将其保留在此处,直到评论被发表并可见为止。
–代码
15年7月8日在4:49
我赞成你的评论。
–unforgettableidSupportsMonica
15年11月27日在16:37
@unforgettableid谢谢,只想确保每个人都知道这种风险。丢失数据真的很糟糕。
–代码
15年11月27日在17:17
好的,既然评论已被批准,您可以删除此答案。 :)
–unforgettableidSupportsMonica
16年5月30日在18:50
@unforgettableid将同时保留,以提高可见度
–代码
16年6月6日在23:06
#4 楼
尽管其他答案是正确的(至少是部分正确的),但只需添加一些额外的注释即可。在最新的Android版本上,您不需要手动运行文件系统检查,因为vold
会自动处理此问题。请参阅何时应在可移动MicroSD卡上执行一致性检查?如果要手动执行此操作,则需要一个已root用户的设备,因为无法访问未root用户的设备上的阻止设备。同样,您需要在检查错误之前先卸载文件系统。由于Android 6外部SD卡已安装在
/mnt/media_rw/[UUID]
上,然后在/mnt/runtime/[VIEW]/[UUID]
上进行了仿真。然后将VIEW绑定安装到/storage/[UUID]
。请参阅如何将文件保存到外部SD卡中的详细信息。完全卸载SD卡后,在块设备上运行相应的
fsck.*
二进制文件。通常init
会将SD卡块设备枚举为/dev/block/mmcblk1p*
(p*
表示分区号,通常只是1
),而vold
在/dev/block/vold/[MAJOR:MINOR]
中创建另一个设备节点。您需要找到正确的块设备(也可以在卸载文件系统之前通过mount | grep /mnt/media_rw
进行检查)。 。如果这些不是您的ROM内置的(exFAT直到最近才是封闭源,所以可能存在许可证问题),则可以使用外部二进制文件。或从(dosfstools或exfat)源代码构建。运行文件系统检查:
~# fsck.exfat /dev/block/mmcblk1p1
#5 楼
我在市场上找到了可以“修复损坏的sdcard并扫描坏块”的应用程序。https://play.google.com/store/apps/details?id=com .sylkat.AParted&hl = zh-CN
#6 楼
如果我没记错的话,您可以根据自己的rom进行以下操作,以强制android在重新启动时对内部和外部存储设备进行fsck。su
touch /forcefsck
然后重新启动。
如果手机没有植根,肯定会失败。
来源:http://forum.xda- developers.com/showpost.php?p=57027579&postcount=20
评论
“取决于ROM”是什么意思?
–unforgettableidSupportsMonica
15年11月27日在16:37
该技巧可能不适用于所有手机。不同的手机可能无能为力。此外,您的手机也需要扎根。
– Trekeyus
15年11月28日在17:59
重新启动后,如何知道fsck是否实际运行?
–unforgettableidSupportsMonica
2015年12月14日在8:12
-1。我对你的帖子不满意。原因如下:我花了更多时间调查此事。您建议的技术可能是100%错误的。它可能欺骗读者以为它会有所帮助,但该技术实际上无能为力。
–unforgettableidSupportsMonica
16-6-3的15:00
touch / forcefsck仅在具有初始化脚本的设备上运行,该脚本检查/ forcefsck文件的存在。我不知道有一个具有此类初始化脚本的Android设备。因此,尽管您的技术可能会在Debian,Ubuntu和Mint设备上运行,但我高度怀疑该技术是否可以在任何Android设备上运行。如果有人发现带有检查/ forcefsck的初始化脚本的单个Android设备,请告诉我!只需回复此评论。
–unforgettableidSupportsMonica
16年3月3日在15:00
评论
您是否尝试过使用终端应用程序,执行su并运行/system/bin/fsck.exfat?@Izzy没有给我这样的文件或目录
检查不同的位置,也许是在/ system / xbin中?尝试cding进入目录,然后使用ls fsc *检查可用的目录。必须在某处:)
究竟。 Busybox尝试变得更苗条。用“ man mount”尝试Google姑妈,效果很好:)并在下面查看我的答案。如果有不清楚的地方,请在此处评论(或在聊天中看到我-尽管接下来的几个小时我将不在那里,但仍有其他认识的成员可以帮助您:)
如果您的SD卡反复出现错误,则应使用H2testw(仅以德语链接,以德语和英语链接软件。尽管外观相反,我相信这是官方网站),才能确保它确实具有指定的容量。错误的SD卡将自动损坏。