![如何透過 debugfs 擴大 ext3/ext4 檔案系統?](https://rvso.com/image/170272/%E5%A6%82%E4%BD%95%E9%80%8F%E9%81%8E%20debugfs%20%E6%93%B4%E5%A4%A7%20ext3%2Fext4%20%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1%EF%BC%9F.png)
我現在的情況是想擴大韌體使用的 ext4 檔案系統的預設大小。
問題是resize2fs
做額外的事情,例如清除一些文件系統功能並將日誌重新定位到設備分區的開頭(因此我的設備在安裝任何東西之前不斷崩潰,並且我不知道如何訪問內核控制台之前adb
可以啟動後,我不知道如何訪問它或調整console=
內核參數以將控制台打印在設備的顯示器上)。
由於是擴建,一般不需要搬遷。那麼如何使用debugfs
來更改大小以及(也許需要的話)空閒索引節點的數量?我的意思是我應該設定哪個欄位set_super_value
以及選擇哪些數字?
更重要的是,如何設定群組描述符校驗和?
答案1
除非您的檔案系統非常小(< 128MB),否則您不能只更改超級區塊中的整數來調整檔案系統的大小。還有其他元資料結構需要更新才能使檔案系統有用。也就是說,你可能能夠使用 debugfs“set_super_value”(ssv) 命令更新超級塊中的 s_blocks_count 字段,然後運行 e2fsck 以使其嘗試重建丟失的元資料本身。
執行此操作的能力在很大程度上取決於您調整檔案系統大小的程度,以及在格式化檔案系統時是否啟用了「resize_inode」功能。否則,e2fsck 重建的遺失元資料可能與其他重要的檔案系統內容重疊,並可能導致一些其他問題。
驗證這是否有效的最佳方法是製作整個檔案系統的映像並對其進行測試。