如何修复树莓派的boot问题

raspberrypi
如果在玩转树莓派的过程中,你也出现过SD卡莫名其妙的问题或者树莓派不能启动的问题,下面这提示些或许对你有用。我把自己遇到的类似的问题以及解决方法都记录了下来。

这些问题从树莓派升级修改/boot/config.txt文件,到从备份中恢复SD卡的超级块,再到SD卡上的内容被意外擦除了,导致必须恢复文件等,都有涉及。我们都经历过事情被搞乱时的尴尬,这里实在是有太多事情会被搞砸了。

有关boot的问题

这是我经常用的一种非常有效的参考方法。首先搞清楚是不是修改过什么东西。

  1. 你是不是刚刚修改了你的/boot/config.txt
  2. 你是不是删除掉了某些重要的文件?
  3. 你有没有运行树莓派的升级程序?
  4. 你有没有增加新的设备?
  5. 你是不是超频太多了?
  6. 你是否遇到了KBD提示?
  7. 它是不是在关机时显示了一些奇怪的命令例如“device still open for writing?”

应对方法

  1. 如果你仅仅修改了config.txt,你应该把它修改回来然后启动时重新一行一行的修改直到发现是哪一行引起的错误。
  2. 如果你删除了重要的文件,把他们恢复回来。
  3. 如果你运行了树莓派的升级程序但是它没有重新启动,尝试使用默认的/boot/config.txt文件,cma_lwm和cma_hwm这两个选项有时会引起新的固件崩溃。
  4. 如果上面的方法都不好使或者你遇到了指示灯闪烁的问题,把/boot.bak/目录下的所有文件拷贝到/boot/目录下来恢复到老的boot文件。(sudo cp -ap /boot.bak/* /boot/
  5. 如果你最近超频了,试试把超频参数降下来。我超频到1100MHz的时候没事儿,但是超频到1200MHz的时候就相对不稳定了。
  6. 如果你遇到了kdb提示,检查你的电源确保电压值足够,然后在config.txt中把任何超频或超压的参数降下来,然后(如果上两步没有解决问题)依照前面提到的做法替换boot文件。
  7. 如果你的KBD提示错误不能修复,你在开关机时遇到了读/写或输入/输出错误,或者不能找到ext4分区,那么你的SD卡可能已经损坏了,不过不用太担心,仍然有办法恢复你的文件。

首先你应该做的是拷贝一份你的SD卡镜像,把你的SD卡插入Linux系统的电脑,然后使用dd命令来拷贝你的镜像文件,然后你可以在不进一步破坏数据的情况下修复这个镜像文件。你应该做的第一件事儿就是使用备份文件来替换你的SD卡超级块,具体步骤可参考这里。如果还是不起作用,一切都失败了,可以使用自定义的恢复配置文件来救回你的文件,如何操作可以参考这里

这是一篇发布于 11年 前的文章,其中的信息可能已经有所发展或是发生改变,请了解。