我有一个带有 LVM 的磁盘,其中有两个逻辑卷media
和root
。前者几乎是空的,后者几乎是满的,所以我想调整两者的大小。
逻辑卷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 容器才能使文件系统可安装。
由于这只是一种解决方法,而不是上述问题的答案,因此我不会接受它。