如何使用特定的inode編號在ext3文件系統 中創建文件? (例如:我想創建一個inode-number = 12253的文件)如何使用特定的inode編號創建文件?
回答
inode號由系統分配。用戶代碼在創建文件時無法指定它。
這是一個非常低的數字,所以它有可能已經在使用;如果沒有,你可以運行一個Bash腳本來創建幾千個文件:類似for i in $(seq 1 12000); do touch $i.txt; done
。然後找到你想要的:find/-inum 12253
,並將其重命名爲任何你想要的,並把它放在你想要的。如果您不覆蓋分配的空間,在這種情況下,最有可能創建新的inode,應該這樣做。不過,這是一個sl solution的解決方案,而且必須有更好的方法。
我不認爲從用戶空間創建文件時,有任何編程方式可以請求特定的inode編號。除了在stat()
結果中可見外,inode編號在用戶空間中沒有意義;它們是文件系統內部簿記數據的一部分,就像分配文件內容的塊號一樣。
您可能可以使用debugfs
「更改」現有文件的inode編號,方法是將一個inode的內容複製到另一個inode,然後更新任何目錄條目以指向新的inode並釋放舊的inode。因此,您可以使用任何inode編號創建文件,然後將其「更改」爲所需的文件。但是,這必須非常謹慎,因爲錯誤很可能導致文件系統損壞和數據丟失。您還必須考慮到所需inode號碼已被另一個文件使用的可能性。
我用inode 5創建了一個文件(引導文件):0)卸載卷1)用'debugfs'打開卷,指定'-w'將其打開爲可寫2)'clri <5>'3)' seti <5>'4)'sif <5>模式0x81FF' 5)'ln <5> BootFile' 6)'sif <5> links_count 1'('ln'不改變這個字段)7)關閉'debugfs' 8)掛載音量9)編輯'BootFile' :) – 2013-09-29 22:58:57
我希望你確保inode 5在清除之前沒有包含其他重要文件... – Wyzard 2013-10-01 01:55:48
Inode 5是[保留](http://www.nongnu.org/ext2-doc) /ext2.html#RESERVED-INODES-VALUES),也稱爲「EXT2_BOOT_LOADER_INO」。另外,我在一個受控環境(非關鍵SD卡)中做了這個。 – 2013-10-01 10:19:38
- 1. 用inode編號重命名文件[UNIX]
- 2. 如何創建64位inode?
- 3. 通過MINIX上的文件名檢索文件的inode編號
- 4. 如何用inode調用文件?
- 5. 如何使用批處理文件在特定目的地創建文件夾
- 6. 如何使用SQL創建事件的內部編號
- 7. 如何在特定文件夾上創建空的csv文件?
- 8. 使用C代碼找到一個文件的inode號碼
- 9. 如何創建味道特定的Android林特基線文件
- 10. 以編程方式在特定文件夾中創建文件
- 11. 如何用特定大小的Java創建文件(不稀疏)
- 12. 如何在使用Jquery創建條件時定位特定行
- 13. 使用文本文件的特定部分創建值
- 14. 使用特定編號編輯數據
- 15. 如何安全地創建基於會話編號的文件
- 16. Realbasic:如何在特定文件夾中創建文件?
- 17. 打印C中的Inode編號
- 18. 在C中創建編號文件
- 19. 如何創建特定大小的文本文件C++
- 20. 16b彙編 - 使用自定義文件名創建文件
- 21. 創建特定大小的新文件
- 22. 創建特定的WAR文件
- 23. 創建特定大小的文件
- 24. 使用批量增量編號創建新文件
- 25. 如何創建用戶特定的SharedPreference?
- 26. 使用shell.application創建特殊文件夾
- 27. 如何使用創建文件創建tmp文件名
- 28. 如何以編程方式在SD卡上創建特定大小的文件
- 29. 目錄Inode vs普通文件Inode
- 30. 如何使用AppleScript創建和編寫UTF-16文本文件?
+1有趣的問題! – 2011-04-22 06:34:27
如果該inode號碼被採取了怎麼辦? – bart 2011-04-22 12:12:13