昨天造富机硬盘崩掉,我用一整晚的时间尝试拯救它,但是终究以失败告终,它大概是真的没救了——当然,也可能是我学艺不精,技术不到位。
(图源 :pixabay)
在京东提交了售后申请(维修),但其实SSD可能没啥维修价值,大概率它们取走后会给我发个新的。
这其实很让人纠结,他们发新的SSD过来,我还敢用吗?这已经是同类型的SSD坏掉的第二块了,而且还并没有暴力使用,相反的是几乎都没有怎么用过,就坏了。
另外一个让人纠结的问题是,我造富机的一些代码还在这块SSD上,我必须考虑把数据拯救出来,否则前段时间的工作岂不是就白干了?
拯救数据
smartctl -HA /dev/sdd
测试结果显示这块SSD硬盘危在旦夕,说24小时内就会坏掉。
其实这么说纯属多余,因为不用24小时,现在就已经坏掉啦。倒是它提醒我保存数据,这个倒是有些必要。相比于SSD本身,数据才是最宝贵的资产呀。
经过了大半天的折腾,我总算磕磕绊绊地把数据弄了出来,这说起来也就是三五句话的事情,但是这期间我走了很多弯路,折腾了许久呀。
拯救数据的主要思路就是将SSD整盘数据复制到一个文件中去,然后再从这个文件中尝试恢复数据。
执行以下指令(注意对应设备文件的名字以及留有足够空间):
sudo dd if=/dev/sdd of=/backup/test/image_file.img bs=1M
等待一段时间后,返回如下信息:
这表示,我们已经成功地将SSD上整盘RAW数据复制到数据文件中。
使用如下指令查看这个数据文件:
sudo fdisk -l /backup/test/image_file.img
可见复制的很成功,还有相应的分区呢:
根据第二个分区的起始位置,计算出偏移量,然后使用losetup
将数据文件绑定到loop设备:
sudo losetup --offset=1128267776 /dev/loop9 /backup/test/image_file.img
其中--offset=1128267776
是由以下数据相乘求得:
起始扇区
Start = 2203648
扇区大小Sector size (logical/physical): 512 bytes / 512 bytes
所以,偏移量就是2203648*512 ,即:
操作成功后,我们便可以在sudo fdisk -l
中看到相应设备
然后再将设备mount到对应目录即可:
sudo mount /dev/loop9 media
再进入到media目录,就可以看到原本造富机上熟悉的数据啦:
这样以来,把数据复制出来倒是不急了,因为数据已经不在原本的SSD里,而是在一个文件中啦,随时可以去访问和处理。
这步骤是是不是看起来很简单,但是实际却耗费我大半天的时间,期间遇到无数问题,用血和泪的惨痛教训趟出来的。
遇到的错误举例:
wrong fs type, bad option, bad superblock on /dev/loop9, missing codepage or helper program, or other error.
mount: special device /dev/loop9 does not exist (诡异的是我明明能看到它)
cannot open /dev/loop9p2: No such file or directory (尝试将文件整体挂载)
offset计算错误的问题
"ext2fs_open2: Bad magic number in super-block"
总之,一堆问题,我甚至怀疑我重新做一遍的话,能不能把数据读出来,因为没准这期间哪个胡乱的操作其实起做用呢,谁知道呢?!
清理数据
因为京东要回收旧硬盘,所以还有个重要的事情是要把磁盘数据清理干净,造富机里有很多重要数据,不容有失。
清理数据我同样使用的是dd
指令:
sudo dd if=/dev/zero of=/dev/sdd bs=1M status=progress
一开始速度嗷嗷快:
20多G以后,那速度就没法看了
折腾了大半天才写入80多个G,不过想必重要数据都被覆盖了吧?
京东小哥来去硬盘,我告诉他我在清理数据,他又重新帮我约的明天来取,真是善解人意呀。
其实出了dd
可以用于擦除外,Linux下还有很多指令可以做这件事,大家自己去搜索就好,就不一一介绍了。
题外话
折腾了一整提天没去看股票,刚刚去看了一眼,今天又被暴击,已经连续三个交易日被暴击了。呜呜呜,这三个交易日亏掉的钱,能换数百块这款SSS硬盘了。
不过貌似不折腾SSD,一样也会赔钱,呜呜呜。把钱还给我,我不玩了。
否极泰来!!!!接下去都是好事发生!!
加油!加油!加油!明天会更好!
造富机器👍🏻👍🏻👍🏻
我感觉O哥你这是受到了双重暴击啊,挺住,黎明就在眼前。
希望这造富机能让O哥暴富!