与 VMFS 斗争(下)群晖 btrfs 文件系统的扫描

2022-02-10 11:37:26 11点赞 63收藏 20评论

自从去年下半年以来就一直在和 VMFS 文件系统斗争。这个系列也是开篇以来拖了很久。本来还计划了个中篇 - VMFS on VSAN,但想想家用一般不会接触到。就先把下篇给填上。

群晖 ext4 请参考 与 VMFS 斗争(上)群晖 ext4 文件系统的扫描修复

背景

家里的服务器由于阵列卡缓存和缓存电池同时故障,在一次小区大面积停电后虚拟机全军覆没。其中windows做chkdsk就正常了;photonos开机直接进rescue mode做fsck就正常了。唯独群晖的brtfs,修正起来非常麻烦。

群晖存储池“已损毁”的修复

这台群晖同样挂载了两块虚拟磁盘作为存储。但其结构与之前的稍有不同:

与 VMFS 斗争(下)群晖 btrfs 文件系统的扫描

其中md0存储了群晖操作系统文件,md1存储了群晖的配置文件。位于/volume1的应用程序、应用配置以及保存的文件都无法正常读写入。检查了系统分区和配置存储分区均正常,所以将问题锁定在sdb3和md2。

由于群晖自带的btrfs管理版本低且功能差,直接关机并将该虚拟硬盘挂载到Ubuntu下。

大部分btrfs的中文修复教程都指向一个命令:btrfs check。在Ubuntu下,首先需要安装支持工具:

apt-get update && apt-get install -y mdadm lvm2 btrfs-prog

然后查看分区内的block并根据读出的block修复:

btrfs-find-root /dev/md/3

btrfs check --repair --tree-root 950302949376 --super 2 /dev/md/3

然而并没有什么用,到最后因 Couldn't setup device tree 而失败。或尝试重置分区索引:

btrfs rescue super-recover /dev/md/3

然而也没有什么用,到最后提示 Disk I/O error

群晖 btrfs 损坏后的文件导出

经过一番科学的搜索,发现可以扫描并导出分区内的文件。首先查看分区文件夹入口:

btrfs restore -l /dev/md/3

该命令会返回一堆形如`tree key (257 ROOT_ITEM 0) 950302949376 level 2`的文件夹,但其中只有一个是根文件夹,其他的都是子文件夹。

经过一番尝试,最终确认入口 257 是根文件夹。给Ubuntu挂载了一个nas目录,然后将该文件夹恢复出来:

btrfs restore -vvvv -r 257 -i /dev/md/3 /mnt/nas/257

如果不好确定哪个是根文件夹且硬盘空间足够,也可将所有的ROOT_ITEM都给恢复出来。某个网站给出了一个很有效的批处理:

btrfs restore -l /dev/md/3 | grep ROOT_ITEM | awk 'substr($3,2) ~ /^[0-9]+$/ {print substr($3,2)}' | xargs -I % sh -c 'mkdir /mnt/nas/%; btrfs restore -vvvv -r % -i /dev/md/3 /mnt/nas/%'

后记

从易用性以及广泛性来看,ext4显然是比btrfs更好的文件系统。但就功能来说,btrfs更胜一筹。只不过一旦btrfs文件系统有损坏,修复不但很麻烦而且不一定成功。但btrfs在容错方面做得不错,至少还可以把文件给导出来……

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

4892.5元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2399元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

3199元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6899元起

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

5167.19元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3199元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DX517 5盘位NAS存 黑色

Synology 群晖 DX517 5盘位NAS存 黑色

3718.6元起

群晖(Synology)DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

群晖(Synology)DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS218j 2盘位NAS(Armada 385 88F6820、512MB)

Synology 群晖 DS218j 2盘位NAS(Armada 385 88F6820、512MB)

1359元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1189元起
20评论

  • 精彩
  • 最新
  • 插到新设备上 不能修复吗

    校验提示文案

    提交
    虚拟盘 怎么插 [皱眉]

    校验提示文案

    提交
    这样啊 我是小白 不太懂

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我的也是显示盘坏了 然后直接重新装了系统 里面的东西都还在 就是弄不出来 最后发现是主板有问题 售后换了主板 这块盘一直在手上 插上去就提示要把存储池先格式化 我们这的人说只能拆盘恢复 所以我的问题是 我这种情况 盘还有别的方法可以把数据弄出来么

    校验提示文案

    提交
    硬盘没物理损坏,拆盘一定是错误方法。理论上直接挂pc3000之类的扫描一下就可以了。麻烦的话相当于格式化恢复,需要手工编目录。

    校验提示文案

    提交
    我问了我们这群晖的总代 说只能拆盘 费用2000好像 回头我了解下pc3000是个啥
    那格式化恢复那种也不需要拆盘的么?
    感谢大神

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 我是初二那天关机后,路由换了个,电脑没法登陆了,手机管家显示系统损坏。文件丢失。网上说重装系统。但是登陆不了页面。最后手机登陆后,手机重装的系统。很奇怪为什么电脑不行。

    校验提示文案

    提交
    chrome浏览器不太行。

    校验提示文案

    提交
    收起所有回复
  • 你这标题不对啊,你这是导出文件了,并没有修复文件系统

    校验提示文案

    提交
    嗯嗯,修复失败了

    校验提示文案

    提交
    收起所有回复
  • btrfs restore -l /dev/md/3这里怎样确认根目录的?

    校验提示文案

    提交
    群晖就是这么定义的,第一第二个(阵列)分区是系统,第三个是数据

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
63
扫一下,分享更方便,购买更轻松