在 Ubuntu 16.04 上有一个 2 驱动器 raid1 btrfs 阵列,我不再需要成为 raid1。我想我会尝试分离磁盘并将其转换为单个驱动器以保持数据跟随这些说明:
umount t
remove disk t1---
mount /dev/t1 t -o degraded
btrfs bal start -mconvert=single -dconvert=single t
btrfs dev delete missing t
btrfs bal start -mconvert=dup
btrfs bal start -mconvert=single -dconvert=single t
该步骤完成后必须重新启动[不要问] 。在重新启动之前,我验证磁盘仍然安装在“t”处,并且我可以看到我期望的所有文件和目录。
重新启动后,我找不到继续该过程的方法。我无法正常挂载:
$ sudo mount /dev/sdc1 /mnt/t
mount: wrong fs type, bad option, bad superblock on /dev/sdc1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try dmesg | tail or so.
$ dmesg | tail
[ 2885.993255] BTRFS info (device sdc1): disk space caching is enabled
[ 2886.021902] BTRFS: failed to read chunk tree on sdc1
[ 2886.031164] BTRFS: open_ctree failed
而且我无法将其降级安装(与重新平衡之前的方式相同):
$ sudo mount /dev/sdc1 /mnt/t -o degraded
mount: wrong fs type, bad option, bad superblock on /dev/sdc1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try dmesg | tail or so.
$ dmesg | tail
[ 3110.756320] BTRFS info (device sdc1): allowing degraded mounts
[ 3110.756330] BTRFS info (device sdc1): disk space caching is enabled
[ 3110.838626] BTRFS info (device sdc1): bdev /dev/sdc1 errs: wr 470683, rd 503082, flush 0, corrupt 0, gen 0
[ 3111.986155] BTRFS: missing devices(1) exceeds the limit(0), writeable mount is not allowed
[ 3112.019429] BTRFS: open_ctree failed
所以我无法继续该程序。有办法继续吗?正如我之前提到的,分区在重新启动之前似乎是健康的。显然,一种解决方案是在 raid1 对中的另一个驱动器上执行该过程,但该驱动器的状况可能更糟(系统在平衡完成之前重新启动)。
这不是危机 - 我的数据已备份。我只是想避免复制 4TB,也许该解决方案将来会对其他人有所帮助。