e4defrag
- 我所知道的唯一一款 Linux 碎片整理工具 - 输出大量手册中未涵盖的信息。我认为如果一个命令输出了某些内容,那么它就很重要,因此我希望了解输出内容。
以下是示例输出(没有超级用户权限和详细程度):
$ e4defrag defrag/
e4defrag 1.45.5 (07-Jan-2020)
ext4 defragmentation for directory(defrag/)
[2/3]/*/defrag/986M.file: 100% [ OK ]
[3/3]/*/defrag/986M.file2: 100% [ OK ]
Success: [ 2/3 ]
Failure: [ 1/3 ]
我猜 100% 意味着对e4defrag
整个文件进行了碎片整理,好的表示文件已进行碎片整理,成功 2/3_OK_ 的数量是,但失败是什么?我应该担心吗?
当我要求更详细时,我得到:
e4defrag -v defrag/
e4defrag 1.45.5 (07-Jan-2020)
ext4 defragmentation for directory(defrag/)
[1/3] "/*/defrag"
File is not regular file [ NG ]
[2/3]/*/defrag/986M.file: 100% extents: 1 -> 1 [ OK ]
[3/3]/*/defrag/986M.file2: 100% extents: 3 -> 3 [ OK ]
Success: [ 2/3 ]
Failure: [ 1/3 ]
Total extents: 4->4
Fragmented percentage: 50%->50%
我可以看到碎片整理目录由于不是常规文件,因此无法进行碎片整理,但为什么它不好(天然气:e4defrag - 输出是什么意思?)?两个常规文件都一样,但一个写为 1 个扩展,另一个写为 3 个。为什么e4defrag
明明无法碎片整理却算成功?碎片百分比? 碎片文件百分比?过大范围百分比?
但是当我以 root 身份运行该命令时,事情开始变得非常令人困惑-c
:
# e4defrag -c defrag/
e4defrag 1.45.5 (07-Jan-2020)
<Fragmented files> now/best size/ext
1. /*/defrag/986M.file2
3/1 336408 KB
2. /*/defrag/986M.file
1/1 1009224 KB
Total/best extents 4/2
Average size per extent 504612 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This directory (defrag/) does not need defragmentation.
Done.
现在两个文件都被列为碎片文件……我的猜测是错误的。那么,我应该如何解释输出?
[编辑]
我刚刚发现,e4defrag
将具有多个范围的文件计为碎片,而它知道范围是连续的:
$ sudo filefrag file.file
file.file: 1 extent found
$ sudo e4defrag -vc file.file
e4defrag 1.45.5 (07-Jan-2020)
<File>
[ext 1]: start 22388736: logical 0: len 32768
[ext 2]: start 22421504: logical 32768: len 32768
[ext 3]: start 22454272: logical 65536: len 32768
[ext 4]: start 22487040: logical 98304: len 27962
Total/best extents 4/1
Average size per extent 126266 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This file (file.file) does not need defragmentation.
Done.