树莓派起死回生之superblock损坏修复

时间:2022-08-15 17:24:32

【0x00】

  某日我正要练习写HTML5,但又不想把电脑文件弄得太混乱,故就在树莓派上搭建服务器,准备建个小网站练练手。

配置完后,写了点HTML5加了点javascript,后来切换电源后启动不。之前就有点不稳定,起初以为是电源线接触不良,

换了线之后也不行,把sd卡拔了下来,发现sd卡有块塑料角掉了,但是看触点接触应该没问题,我又用酒精把触点擦了一

下,再启动还是不行。由于没有显示器,就懒得弄了,放了几天等显示器到了再弄。

 

【0x01】

  今天连上了显示器没有任何输出,于是确定是压根没有启动。所以我找了个以前玩xbmc的sd卡,插上后,启动了。

于是确定是sd卡的问题。我把sd卡插在电脑上,电脑自动挂载出boot卷,然而另一个卷没有自动挂载出来。于是手动检

查了下/dev目录里mmcXXX0,mmcXXX0p1,mmcXXX0p2。

  前两个都可以正常挂载,第三个挂载时提示superblock错误。

于是百度了一下

它是硬盘分区开头——开头的第一个byte是byte 0,从 byte 1024开始往后的一部分数据。由于 block size最小是 1024 bytes,所以super block可能是在block 1中(此时block 的大小正好是 1024 bytes),也可能是在block 0中。 超级块中的数据其实就是文件卷的控制信息部分,也可以说它是卷资源表,有关文件卷的大部分信息都保存在这里。例如:硬盘分区中每个block的大小、硬盘分区上一共有多少个block group、以及每个block group中有多少个inode。

然后

fsck.ext4 -v /dev/mmcXXX0p2

mmcXXX0p2代表具体设备文件,依实际情况而定。

插到树莓派上,成功启动。

但是有错误输出,忘了截图。。。

上面鸟文大概的意思是要么输入ctrl+d重启要么乖乖给老子输入root用户密码。

按ctrl+d后发现是死循环,然后我决定输入root密码(问题是密码我忘了,平时都是用pi用户)。

试了几个成功登录,随便输了些shell命令发现有的能用有的不能用,有点像安全模式。

然后我果断输入了fsck检查了下磁盘错误,一连串yes后,重启成功。

 

【0x02】

  这个树莓派是一代B型,从13年就在我身边,也好几年了。。。由于性能的落伍,它已经从我的

板子里退居二线了。。。怀念这个板子带给我许多快乐(虽然它的速度有点令我抓狂),当初咬牙花的

300大洋也算值了。