一步调整 btrfs 文件系统到最小大小

Tom*_*ale 5 filesystems btrfs

如何在一个步骤中将 btrfs 文件系统的大小调整到可能的最小大小?

我只想要dd尽可能少的数据,并且想要使用,dd因为btrfs send快照越多,速度就越慢。

btrfs filesystem resizemax争论,但没有min争论。

如果我尝试调整大小超过可用空间,我会收到如下消息:

ERROR: unable to resize '/media/backup-alt': No space left on device
Run Code Online (Sandbox Code Playgroud)

我一直在逐步调整向下减小大小(例如传递参数的步骤-128G -64G-32G...),但是这是一个解决方案消耗的收敛时间。

有没有办法一步缩小到最小?

Tom*_*ale 6

到目前为止,我遇到的最佳解决方案是获得最小可用空间(-b用于字节):

sudo btrfs filesystem usage -b /mountpoint
Run Code Online (Sandbox Code Playgroud)
   Free (estimated):              71890542592 (min: 71890542592)
Run Code Online (Sandbox Code Playgroud)

然后按min金额的负数调整大小:

sudo btrfs filesystem resize -71890542592 /mountpoint
Run Code Online (Sandbox Code Playgroud)

或者,如果 min free 和 unallocated 之间存在很大差异,您可以选择使用 (unallocated * 0.9) 因为按确切的未分配字节调整大小似乎失败。

然后,您可以反复缩小少量,直到调整大小失败:

while sudo btrfs filesystem resize -200M /mountpoint; do true; done
Run Code Online (Sandbox Code Playgroud)

这不是一个单一的步骤,但至少大部分是自动化的。循环本身可能是一个步骤,但它可能需要更长的时间进行小的增量调整大小,而不是最初缩小大块。