У меня есть куча внешних и внутренних HDD, которые я использую в системе Linux. У меня есть только системы Linux, поэтому использование файловой системы Linux имело бы смысл, верно? Однако в настоящее время я везде использую NTFS, потому что она дает мне больше всего полезного пространства из HDD.
Однако сейчас я хотел бы перейти на файловые системы Linux, в основном из-за прав доступа и совместимости (например, я не могу изменить размер своего зашифрованного с помощью LUKS раздела NTFS в Linux, мне постоянно предлагают выполнить chkdsk в Windows).
Однако, когда я форматировал эти HDD, я перепробовал кучу разных файловых систем, и каждая файловая система Linux, даже ext2, которая, насколько мне известно, не имеет журналирования, использовала много места для себя. Я не помню точных значений, но NTFS дала мне более 100 ГБ на HDD объемом 2 ТБ, что очень много.
Итак, мой вопрос: есть ли способ заставить ext-файловые системы использовать меньше места для себя? Или есть другая файловая система (я пробовал ext2, ext3, ext4, NTFS и vfat - ни одна из них даже близко не подошла к полезному пространству, которое мне предлагала NTFS) с идеальной поддержкой Linux и большим полезным пространством?
Мне бы очень хотелось услышать о том, как и почему файловые системы (особенно ext2, в которой нет журналирования) используют гораздо больше места, чем NTFS, и я не знаю, где еще спросить. Я бы предпочел способ использовать ext4 без журналирования и всего остального, что занимает так много места, если это возможно.
решение1
По умолчанию ext2 и ее последователи резервируют 5% файловой системы для использования пользователем root. Это снижает фрагментацию и снижает вероятность того, что администратор или любые демоны, принадлежащие root, останутся без места для работы.
Эти зарезервированные блоки не позволяют программам, не запущенным от имени root, заполнять ваш диск. Оправдывают ли эти соображения потерю емкости, зависит от того, для чего используется файловая система.
Значение 5% было установлено в 1980-х, когда диски были намного меньше, но было оставлено как есть. В настоящее время 1%, вероятно, достаточно для стабильности системы.
Изменить бронирование можно с помощью -m
опции команды tune2fs
:
tune2fs -m 0 /dev/sda1
Это установит процент зарезервированных блоков на 0% (0 блоков).
Чтобы получить текущее значение (среди прочих), используйте команду:
tune2fs -l <device>
решение2
Еще один момент, о котором еще не говорилось, — это количество инодов, резервируемых в вашей файловой системе.
По умолчанию mkfs создает несколько инодов, что должно позволить разместить в вашей файловой системе множество очень маленьких файлов. Если вы знаете, что файлы будут очень большими, а вы поместите в FS только небольшое количество файлов, вы можете уменьшить количество инодов.
Будьте осторожны! Это число (соотношение между пространством и числом инодов) можно задать только во время создания файловой системы. Даже при расширении ФС соотношение остается прежним.
решение3
если данные, которые вы собираетесь хранить, сжимаемы, btrfs, смонтированная с помощью compress=zstd
(или compress-force=zstd
), вероятно, будет использовать значительно меньше места на диске, чем ext*
- это заставит Btrfs прозрачно сжимать ваши данные перед записью на диск и прозрачно распаковывать их при обратном чтении. Кроме того, ext4 заранее выделяет все иноды при создании файловой системы, Btrfs создает их по мере необходимости, я думаю, это также может сэкономить немного места.