如何调整无法挂载的 BTRFS 文件系统的大小

如何调整无法挂载的 BTRFS 文件系统的大小

我有一个带有 LVM 的磁盘,其中有两个逻辑卷mediaroot。前者几乎是空的,后者几乎是满的,所以我想调整两者的大小。

逻辑卷media是 dm-crypt + BtrFS。为了调整文件系统、LUKS 容器和逻辑卷的大小,我运行了以下命令:

sudo btrfs filesystem resize 1T /mnt
sudo umount /mnt
sudo cryptsetup close /dev/mapper/luks-container
sudo lvresize --size 1T /dev/mapper/hdd-media

现在我无法/dev/mapper/luks-container再挂载了。相关输出是

[ 2853.075049] BTRFS info (device dm-2): disk space caching is enabled
[ 2853.075058] BTRFS info (device dm-2): has skinny extents
[ 2853.079920] BTRFS error (device dm-2): device total_bytes should be at most 1099494850560 but found 1099511627776
[ 2853.079926] BTRFS error (device dm-2): failed to read chunk tree: -22
[ 2853.081181] BTRFS error (device dm-2): open_ctree failed

因此显然,两种1T大小略有不同,BrtFS 想要大于它所能承受的容量。这完全没有问题,我可以再缩小一点,但为此我必须挂载它,这是不可能的。

我该如何解决这种情况?我如何在无法挂载 BtrFS 的情况下进一步缩小 BtrFS 的大小?

答案1

我找到了一个解决方法。我没有缩小无法挂载的文件系统,而是稍微增加了逻辑卷的大小。

sudo lvresize --size 1025G /dev/mapper/hdd-media

请注意,我必须关闭 LUKS 容器才能使文件系统可安装。

由于这只是一种解决方法,而不是上述问题的答案,因此我不会接受它。

相关内容