Как расширить файловую систему ext3/ext4 с помощью debugfs?

Как расширить файловую систему ext3/ext4 с помощью debugfs?

Я нахожусь в ситуации, когда мне нужно увеличить размер файловой системы ext4 по умолчанию, используемой прошивкой.

Проблема в том, resize2fsчто приходится выполнять дополнительные действия, например, очищать некоторые функции файловой системы и перемещать журнал в начало раздела устройства (в результате мое устройство постоянно зависает до того, как что-либо смонтировать, и поскольку я не знаю, как получить доступ к консоли ядра до adbее запуска, я понятия не имею, как получить к ней доступ или настроить console=параметры ядра для вывода консоли на дисплей устройства).

Так как это для увеличения, обычно не требуется никакого перемещения. Так как использовать debugfsдля изменения размера вместе с (возможно, если нужно) количеством свободных inodes? Я имею в виду, какое поле set_super_valueмне следует задать и какие числа выбрать?

Важнее,как установить контрольные суммы дескриптора группы?

решение1

Если только ваша файловая система не очень мала (< 128 МБ), то вы не можете просто изменить целое число в суперблоке, чтобы изменить размер файловой системы. Существуют другие структуры метаданных, которые необходимо обновить, чтобы файловая система стала полезной. Тем не менее, вымощьиметь возможность обновить поле s_blocks_count в суперблоке с помощью команды debugfs "set_super_value" (ssv), а затем запустить e2fsck, чтобы попытаться самостоятельно восстановить отсутствующие метаданные.

Возможность сделать это во многом зависит от того, насколько сильно вы изменяете размер файловой системы, и была ли включена функция "resize_inode" во время форматирования файловой системы. В противном случае отсутствующие метаданные, которые перестраивает e2fsck, могут перекрываться с другим важным содержимым файловой системы и вызывать некоторые другие проблемы.

Лучший способ проверить, работает ли это, — создать образ всей файловой системы и протестировать его.

Связанный контент