如果我做
btrfs fi defrag -rv /home
然后我得到一长串需要碎片整理的文件列表。
看起来好像它实际上什么也没做。
是否可以看到碎片整理的进度?
答案1
您可以使用 -f 来刷新,否则它会分批工作并可能停滞。如果它打印了文件,那么它就完成了,但要受到缓存/锁定的影响(希望没有任何文件系统错误)。
-F在转到下一个文件之前刷新每个文件的数据。
-r在给定的目录中递归地对文件进行碎片整理。
注意:不带 -r 的目录参数不会递归地对文件进行碎片整理,但会对某些内部树(范围树和子卷树)进行碎片整理。这很令人困惑,将来可能会被删除。
-v冗长。
$btrfs 文件系统碎片整理 -v -r dir/
递归地对 dir/ 下的文件进行碎片整理,并在处理文件时打印它们。文件名将分批打印,同样,碎片整理触发的数据量将与最后 N 个打印的文件成比例。系统脏内存节流将减慢碎片整理的速度,但仍可能存在大量 IO 负载,系统可能会暂时停滞。
$btrfs 文件系统碎片整理 -v -r -f dir/
递归地对 dir/ 下的文件进行碎片整理,详细地等待所有块都刷新后再处理下一个文件。您可以注意到输出进度较慢且 IO 负载较低(与当前碎片整理的文件成比例)。