Skip to content

手动修复iPhone文件系统一例

vector090 edited this page Jun 12, 2016 · 5 revisions

问题现象

接到一部iPhone6,有几个问题:

  • 据机主反映说有时微信再打开会看不到信息了,卸载重装后能勉强恢复正常,但有可能过一段时间又出现类似情况。
  • 手机里有个莫名其妙的无图标程序占着几十兆空间,删也删不掉 —— 这次卸载掉了,下次进桌面和设置,发现居然还在。
  • 最严重的问题是:机身可用空间莫名其妙不断减少 —— 总内存16G,现在可用空间只有几百兆甚至几十兆。照片只占了4G多。日常拍照不多,软件也装得很少,但可用空间仍日益明显减少,并且显示的各项占用空间加在一起,远远没有达到总空间那么大。iTunes之类工具汇报说是“其他”部分占用6个多G。太奇葩了,不处理不行。

处理过程

  • 参照网上写的清理内存的方法,重置iTunes同步,删各种缓存,检查WhatsApp更新,重装异常程序再卸载……折腾了数天,仍收效甚微。
  • 无奈之下,只有越狱一条路可走:亲自到系统里看看,到底是什么东西占内存。
  • 越狱顺利。装了openssh和各种util。
  • 简单查看空间似乎没有异样。du有点麻烦,还好通过Cydia可以装Disk Pie,看统计所有文件大小为 10G/14G。这就看出问题了。那理应剩余2G左右空间,怎么没了呢。于是想到要做fsck了。
  • fsck运行看到问题了:/dev/disk0s1s2 出现文件系统错乱和剩余空间错误!这就解释了微信异常和程序删不掉的现象。
  • 直接运行fsck是只读模式,又不确定能不能热umount,怕搞坏系统。google了一把,只找到这一篇类似的 http://www.ifans.com/forums/threads/first-one-damagedfiles-on-iphone-failed-fsck-attempt.355229/page-2 似乎还有点风险。最后决定冒冒险,多开几个ssh会话当备份,并且在命令行里一气执行 umount /dev/disk0s1s2 ; fsck -fy ; sleep 300 ; reboot #万一出现系统卡住,希望也能靠这行命令自动重启。不过后来似乎直接卡住了。是在另一个ssh会话里手动fsck -fy,第一遍的时候修复了问题,在fsck做第二次检查时,手机重启了。忐忑几分钟之后,手机顺利启动。查看空间,占用8G多,剩余3.6G,这才对!就看后续用着要是没问题,就算是解决了这个老大难问题了!

原因推测

磁盘信息出现混乱,如果是在电脑上,一般是因为非法关机导致。手机虽然有低电自动关机的机制,但也有可能在某些情况下异常自动关机 —— 例如在快没电的时候打电话,就有可能出现磁盘受损的现象。因此,平时使用时,最好保持手机够电,不要用到光才去充。