В 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, поскольку их больше. Вы можете уменьшить количество суперблоков, но и это пока еще.
Если вы будете хранить в основном файлы большего размера, вы можете увеличить количество байтов на каждый индексный дескриптор, уменьшив, таким образом, количество создаваемых индексных дескрипторов. Это может существенно ускорить время создания.