如何使用特定的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. 如何用inode調用文件?
- 3. 如何在特定文件夾上創建空的csv文件?
- 4. 如何創建味道特定的Android林特基線文件
- 5. 使用C代碼找到一個文件的inode號碼
- 6. 如何用特定大小的Java創建文件(不稀疏)
- 7. 如何安全地創建基於會話編號的文件
- 8. Realbasic:如何在特定文件夾中創建文件?
- 9. 在C中創建編號文件
- 10. 打印C中的Inode編號
- 11. 創建特定大小的文件
- 12. 使用批量增量編號創建新文件
- 13. 如何創建用戶特定的SharedPreference?
- 14. 如何使用創建文件創建tmp文件名
- 15. 如何使用AppleScript創建和編寫UTF-16文本文件?
- 16. 如何使用docx4j將特定符號寫入Docx文件
- 17. 使用Real Studio創建特定類型的文件
- 18. 目錄Inode vs普通文件Inode
- 19. 如何使用自動工具創建特定組件?
- 20. 如何使用換行符和引號創建CSV文件?
- 21. 用行號創建文本編輯器
- 22. 如何解析JSON文件以創建特定類的列表?
- 23. 如何在Android中的特定目錄中創建.txt文件?
- 24. 如何在具有特定權限的Grails上創建文件
- 25. 如何在python中的特定路徑創建文件?
- 26. 如何閱讀特定郵件編號的郵件
- 27. 如何使用Unicode編碼創建使用java腳本的文本文件?
- 28. 如何創建調用特定功能
- 29. 如何使用Java或C++獲取文件MFT條目/ inode
- 30. 如何使用谷歌齒輪在特定文件夾中創建數據庫?
+1有趣的問題! – 2011-04-22 06:34:27
如果該inode號碼被採取了怎麼辦? – bart 2011-04-22 12:12:13