Ext4

我可以在 ext4 上創建一個深度 > 1 的文件以進行測試嗎?

  • December 16, 2015

為了測試分析工具,我需要一個深度 ( eh.eh_depth) 大於 1 的文件。

我嘗試了幾件事:

  • 一個大文件(1GiB)
  • 創建數百個較小的文件(1MiB),每隔一個刪除一個,然後用一個文件填充磁碟(希望產生大量碎片)。

在這兩種情況下,我的深度都只有 1!

我什至嘗試在十六進制編輯器中手動修改 inode,但最終損壞了文件系統。

我想知道它是否可以用 來完成debugfs,但我看不到怎麼做?

PS:我在 stackoverflow 上看到了 ‘increasing depth of extent tree in ext4’ 問題,但我真的不想創建 174GiB 文件。

如果您想要一個具有很多範圍的文件,只需執行以下操作:

$ perl -we 'for ($i=0;$i<100000;$i++) {seek STDOUT,$i*8192,0; print "."}' > a
$ ll a
-rw-r--r-- 1 stephane stephane 819191809 Dec 15 23:50 a
$ filefrag a
a: 100000 extents found

這是一個稀疏文件,其中每個其他塊都是稀疏的,因此它強制範圍為 4KiB 大。

debugfs:  dump_extents a
Level Entries         Logical          Physical Length Flags
0/ 2   1/  1      0 - 199998   33413           199999
1/ 2   1/295      0 -    679   33409              680
2/ 2   1/340      0 -      0   34816 -   34816      1
2/ 2   2/340      2 -      2   34818 -   34818      1
[...]

引用自:https://unix.stackexchange.com/questions/249598