Ext4
我可以在 ext4 上創建一個深度 > 1 的文件以進行測試嗎?
為了測試分析工具,我需要一個深度 (
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 [...]