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

1

Настройка:

Для моего ноутбука с двойной загрузкой я купил большой жесткий диск для использования в качестве внешнего 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 ТБ.)

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

DevSolar
источник

Ответы:

4

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

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

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

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

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

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

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

Со страницы руководства для 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.
ThatGraemeGuy
источник
mke2fs также не может сжать раздел, но gparted может; вот почему я подозревал, что может быть какой-то инструмент, способный также изменять размер инода. Но спасибо за совет!
DevSolar