返校的时候我想 NAS 太重了,懒得带了,于是把硬盘拆了出来,准备接到 Rock5 上用,然而一接上我傻了。。。

屁用没有的官方文档

如果你直接在网上搜索文档的话,多半会搜到这一篇 当 Synology NAS 出现故障时,如何使用计算机恢复数据?,绝大部分博客什么的都是照抄官网的这一篇。

然而当你真正去使用的时候,才会发现这篇屁用没有。别说 lvm 了,你连这个硬盘上连个分区都见不到,谈何挂载。

修复分区表

在这之前,推荐先备份硬盘前 10M 的空间,防止以后还想用,我就忘了备份了,不知道后面群晖还能不能用😭。

dd if=/dev/sda of=backup.img bs=1M count=10

然后安装并使用 testdisk

sudo apt install testdisk
sudo testdisk /dev/sdb

一定要选 EFI 格式,Analyse -> Quick Search,只需要保留最后一个分区,按 Enter -> Write,然后重启。

挂载 LVM

现在分区出来了,一定可以上面了那个文章了吧,然而还是不行。

用上面文章的给的 mdadm -AsfR && vgchange -ay 会在 dmesg 里报一个 missing superblock,要用

mdadm --assemble /dev/md0 /dev/sda1 --update=devicesize --verbose
vgchange -ay

似乎会自动补上 superblock,之后再用就不需要了。

挂载 BTRFS

我为什么不用 ext4 呢

鬼知道群晖这个 btrfs 实现里加了什么魔法,直接挂载会报一个

invalid root flags, have 0x400000000 expect mask 0x1000000000001

这是内核的一个补丁导致的 [btrfs: tree-checker: Add ROOT_ITEM check
](https://github.com/torvalds/linux/commit/259ee7754b6793af8bdd77f9ca818bc41cfe9541)

要么重新编译内核, patch 掉这段,除了这段还有别的要改得,但是考虑到数据安全,我不敢动了。

要么像我一样,装个有旧内核的虚拟机。对于 ubuntu 来说,没有引入这个补丁的最后一个版本是 4.15.0-108,可以直接安装 ubuntu 18.04.4 来解决。

但不管怎么解决,都还是很恶心人,之后找个机会迁移到 True NAS 算了。