15

树莓派:劣质储存可能会导致[Unable to run arch-specific checks]异常

 4 years ago
source link: https://www.taterli.com/6818/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

最近一直在树莓派上调试一些软件,然后发现了一个问题,今天能执行的程序,明天就不能执行了,或者明天能执行后天也未必能执行,刚开始还没太过在意这个问题,直到现在越来越严重,可能是现在可以,一小时后就不行,而整个过程树莓派根本没有重启断电过.

2qY3IfA.png!web

大概错误是 error while loading shared libraries: ****.so: Unable to run arch-specific checks (反正没遇到过其他错误!)

因为一开始这些错误从来不会出现在系统库,所以就怀疑是自己程序不对,直到最近,某些系统库也会出问题,比如libc,表现直接开不了机.

但是通常重烧系统就能大概率解决,但是这样也不是办法,后来就把程序都往外部储存器放,结果放在外部储存器的程序从来不出问题,开始怀疑是储存器问题.

然后尝试fsck.ext4修复树莓派本身文件系统,问题竟然也能解决,更能确定是储存器问题.

求证过程:

  • 错误后用fsck.ext4大概率可以修复.(文件系统出问题了,可能是储存,也可以能是逻辑.)
  • 用urwtest测试TF卡读写几圈.(报告没有错误,但是速度很不稳定,时快时慢,有时候甚至卡死.)
  • 用urwtest测试其他TF卡读写几圈.(顺畅没问题,然后这张卡用来树莓派启动完全没问题,基本确定是TF卡问题.)
  • 把疑似问题的TF卡烧了系统后不要启动,放置2小时,基本不能启动.(现在这张TF卡烧好系统启动不到一小时也会出问题了.)
  • 同样树莓派更换好的TF卡,再也没出过问题.(99%确认是储存问题)
  • 用坏的TF卡启动后,把代码存在外部储存器,然后等系统坏了之后又重新烧录系统,代码没问题.
  • 用坏的TF卡启动后,把系统关键的几个lib的hash记录下来,2小时后对比,发生了改变.

所以啊,遇到这种莫名其妙问题,特别是上面那句错误,先看看是不是TF卡挂了.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK