如何通过 debugfs 扩大 ext3/ext4 文件系统?

如何通过 debugfs 扩大 ext3/ext4 文件系统?

我现在的情况是想扩大固件使用的 ext4 文件系统的默认大小。

问题是resize2fs做额外的事情,例如清除一些文件系统功能并将日志重新定位到设备分区的开头(因此我的设备在安装任何东西之前不断崩溃,并且我不知道如何访问内核控制台之前adb可以启动后,我不知道如何访问它或调整console=内核参数以将控制台打印在设备的显示屏上)。

由于是扩建,一般不需要搬迁。那么如何使用debugfs来更改大小以及(也许需要的话)空闲索引节点的数量?我的意思是我应该设置哪个字段set_super_value以及选择哪些数字?

更重要的是,如何设置组描述符校验和

答案1

除非您的文件系统非常小(< 128MB),否则您不能仅更改超级块中的整数来调整文件系统的大小。还有其他元数据结构需要更新才能使文件系统有用。也就是说,你可能能够使用 debugfs“set_super_value”(ssv) 命令更新超级块中的 s_blocks_count 字段,然后运行 ​​e2fsck 以使其尝试重建丢失的元数据本身。

执行此操作的能力在很大程度上取决于您调整文件系统大小的程度,以及在格式化文件系统时是否启用了“resize_inode”功能。否则,e2fsck 重建的丢失元数据可能与其他重要的文件系统内容重叠,并可能导致一些其他问题。

验证这是否有效的最佳方法是制作整个文件系统的映像并对其进行测试。

相关内容