我ext4
在(磁性)硬盘驱动器上有一个900GB的分区,没有缺陷,也没有坏扇区。除空lost+found
目录外,该分区完全为空。该分区是使用默认参数格式化的,除了将保留的文件系统块的数量设置为1%。
我使用下载了〜900MB文件xubuntu-15.04-desktop-amd64.iso
到分区的安装点目录wget
。下载完成后,我发现文件分为四个片段:
filefrag -v /media/emma/red/xubuntu-15.04-desktop-amd64.iso
Filesystem type is: ef53
File size of /media/emma/red/xubuntu-15.04-desktop-amd64.iso is 1009778688 (246528 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
3: 96256.. 126975: 133120.. 163839: 30720:
4: 126976.. 159743: 165888.. 198655: 32768: 163840:
5: 159744.. 190463: 198656.. 229375: 30720:
6: 190464.. 223231: 231424.. 264191: 32768: 229376:
7: 223232.. 246527: 264192.. 287487: 23296: eof
/media/emma/red/xubuntu-15.04-desktop-amd64.iso: 4 extents found
考虑到这可能会以wget
某种方式释放出来,我从分区中删除了ISO文件,使其再次为空,然后使用将〜700MB文件复制v1.mp4
到了分区cp
。该文件也被碎片化了。它分为三个片段:
filefrag -v /media/emma/red/v1.mp4
Filesystem type is: ef53
File size of /media/emma/red/v1.mp4 is 737904458 (180153 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
3: 96256.. 126975: 133120.. 163839: 30720:
4: 126976.. 159743: 165888.. 198655: 32768: 163840:
5: 159744.. 180152: 198656.. 219064: 20409: eof
/media/emma/red/v1.mp4: 3 extents found
为什么会这样呢?有办法防止它发生吗?我以为ext4
可以抵抗碎片。取而代之的是,我发现当卷的其余所有部分都未使用时,它会立即将单个文件分割成碎片。这似乎比FAT32
和都糟NTFS
。