Как изменить размер инода в разделе EXT3?

12213
DevSolar

Настройка:

Для моего ноутбука с двойной загрузкой я купил большой жесткий диск для использования в качестве внешнего USB-решения. Я решил использовать EXT3 в качестве файловой системы, намереваясь использовать Ext2IFS для доступа к диску из Windows (как я уже делал с различными другими внешними устройствами).

Эта проблема:

Linux - мой основной выбор в качестве ОС; таким образом, диск был уже заполнен на 2/3, прежде чем я пытался получить к нему доступ из Windows. Только тогда я понял, что совершил серьезную ошибку - я забыл ограничить размер индекса до 128. Значение по умолчанию, используемое в дистрибутиве Linux, было 256, к которому Ext2IFS не может получить доступ.

При 1 ТБ накопитель является моим самым большим хранилищем, а при 2/3 его заполнении было бы неудобно выполнять резервное копирование.

Вопрос:

Можно ли изменить размер инода на разделе EXT3 (без потери данных)? Мне все равно, если это займет пару часов.


Пост скриптум:

Дэвид Спиллетт отлично ответил на оригинальный вопрос - «как изменить размер инода на разделе EXT3?».

Основной вопрос, однако, был «как я могу получить доступ к ext3 раздел с Windows, после того, как я создал его со значениями Linux по умолчанию для размера инода?».

Ответом будет Ext2Fsd, драйвер EXT3 для Windows, который не блокируется при больших размерах inode. (Однако он не поддерживает таблицы разделов GUID, необходимые для дисков объемом более 2 ТБ.)

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

1

2 ответа на вопрос

4
David Spillett

Вы не можете изменить это на месте, насколько я знаю. Вы можете сделать это, не найдя другого диска Tb, на который можно скопировать данные, пока вы перестраиваете файловую систему с помощью метода округления:

  1. уменьшите текущую файловую систему до минимума и уменьшите длину раздела соответственно
  2. добавить второй раздел во вновь освобожденное пространство
  3. смонтируйте оба и перенесите как можно больше в новый раздел
  4. Снова сожмите первый раздел, переместите новый вниз на диск и увеличьте его, чтобы заполнить диск, и повторите шаг 3.
  5. вам может потребоваться повторить шаг 4 один или два раза больше в зависимости от того, насколько полно исходная файловая система должна была начинаться с

Вы можете сделать все выше вручную fdisk, resize2fsи связанные с ними инструменты, или с пробор, который доступен в большинстве репозиториев дистрибутива и как Live CD . gparted это, пожалуй, самый безопасный вариант на сегодняшний день, если вы уже не очень хорошо знакомы с ручными инструментами.

Но основные операции перемещения / изменения размера файловой системы, подобные этим, я всегда делаю хорошие резервные копии перед запуском, потому что, если что-то пойдет не так, вы можете уничтожить все в уязвимой файловой системе (-ах). Поэтому, если вы страдаете параноидальным здоровьем, вышеприведенное не устраняет необходимость искать место для копирования данных во время переформатирования / перегруппировки ... Хотя, если большая часть данных является заменяемой, повторно загружая музыкальный / видео контент и т. Д., Вы может сделать резервную копию самых важных вещей и рискнуть с остальными.

В качестве альтернативы переформатированию / перестановке диска теперь вы можете запустить небольшую виртуальную машину Linux (с vmware или vbox), подключить к ней USB-накопитель и передать данные в хост-систему (Windows) через Samba. Конечно, это неэффективно и менее удобно, но вполне может быть достаточно эффективным «на время», пока вы не разберетесь или не решите более постоянное решение, такое как покупка нового диска для переформатирования и переноса всего, и это, безусловно, безопаснее, чем массивная работа файловой системы на данные, которые вы не скопировали. Вам не нужно выделять много ресурсов для виртуальной машины, я полагаю, что установка Ubuntu на сервере или базовая установка Debian с удовольствием запустят такой общий ресурс Samba в 128 МБ ОЗУ или меньше и не потребуют намного больше, чем один ГБ. дискового пространства (на самом деле, это может занять всего пару сотен Мб, если таковой) на хост-машине.

+1. Схема shrink-move-shrinkagain - очень хорошее предложение; Я не уверен, что мог бы придумать это сам. Действительно, большая часть данных может быть заменена в случае необходимости, поэтому я могу обойтись одним или двумя сотнями МБ резервной копии вместо целого блока. Спасибо! DevSolar 14 лет назад 1
1
ThatGraemeGuy

Вы не можете изменить это, вы должны воссоздать файловую систему с нуля.

Со страницы руководства для mke2fs :

-I inode-size Specify the size of each inode in bytes. mke2fs creates 256-byte inodes by default. ... It is not possible to change this value after the filesystem is created. 
mke2fs также не может сжать раздел, но gparted может; вот почему я подозревал, что может быть какой-то инструмент, способный также изменять размер инода. Но спасибо за совет! DevSolar 14 лет назад 0

Похожие вопросы