Назад | Перейти на главную страницу

Есть ли для ext4 такое понятие, как "быстрый" формат?

В Windows форматирование файловой системы NTFS выполняется очень быстро. У меня Linux-машина с низким энергопотреблением и небольшим объемом оперативной памяти. Форматирование тома 2 ТБ в ext4 занимает много времени.

Что я могу сделать, чтобы ускорить формат? Я не могу представить, что занимает так много времени? (что занимает так много времени)

Добавить флаг -E lazy_itable_init

Вот что говорится на странице руководства:

Если этот параметр включен и функция uninit_bg включена, таблица inode не будет полностью инициализирована mke2fs. Это заметно ускоряет инициализацию файловой системы, но требует, чтобы ядро ​​завершило инициализацию файловой системы в фоновом режиме при первом монтировании файловой системы. Если значение параметра опущено, по умолчанию устанавливается значение 1, чтобы включить отложенную инициализацию таблицы inode.

Строгий ответ

Решения вроде -E lazy_itable_init не меняйте результат, только ускоряйте процесс. Об этом прямо спрашивали, но во многих случаях людям нужно больше.

Дополнительный бонус

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

Я только что сделал тест. Даже без использования -E lazy_itable_initприведенные ниже параметры ускоряют создание файловой системы 2 ТБ с 16 минут 2 секунды до 1 минуты 21 секунды (ядро 3.5.0 64 бит на Intel i7 2,2 ГГц, диск 2 ТБ при соединении USB2 - SATA, вероятно, будет быстрее).

Для файловой системы, которая будет хранить большие файлы, я использую эту комбинацию:

mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4

где -T largefile4 выбирает варианты в /etc/mke2fs.conf которые обычно содержат что-то вроде:

    inode_ratio = 4194304
    blocksize = -1

Сделать man mke2fs подробнее о каждом из этих вариантов.

Вот соответствующие выдержки:

               sparse_super
                      Create a filesystem with fewer superblock backup copies (saves space on large filesystems).

               large_file
                      Filesystem can contain files that are greater than 2GB.  (Modern kernels set this feature  automatically
                      when a file > 2GB is created.)

   -i bytes-per-inode
          Specify  the  bytes/inode ratio.  mke2fs creates an inode for every bytes-per-inode bytes of space on the disk.  The
          larger the bytes-per-inode ratio, the fewer inodes will be created.  This value generally shouldn't be smaller  than
          the blocksize of the filesystem, since in that case more inodes would be made than can ever be used.  Be warned that
          it is not possible to expand the number of inodes on a filesystem after it is created, so be  careful  deciding  the
          correct value for this parameter.

-m 0 только говорит, что не резервировать 5% для root, что нормально для файловой системы данных (не загрузочной / корневой). 5% диска 2 ТБ означает 100 ГБ. Это довольно значительная разница.

По умолчанию является быстрое форматирование; настройка структур для тома ext * занимает гораздо больше времени, чем для тома NTFS, поскольку их больше. Вы можете уменьшить количество суперблоков, но и это пока еще.

Если вы будете хранить в основном файлы большего размера, вы можете увеличить количество байтов на каждый индексный дескриптор, уменьшив, таким образом, количество создаваемых индексных дескрипторов. Это может существенно ускорить время создания.