Какую файловую систему Linux использовать?
При форматировании разделов на ПК с Linux вы увидите множество вариантов файловой системы. Эти варианты не должны быть подавляющими. Если вы не уверены, какую файловую систему Linux использовать, ответ прост.
Быстрый ответ: используйте Ext4, если вы не уверены
Мы сразу разберемся с сорняками и разберем разницу между различными файловыми системами, но если вы не уверены: используйте Ext4.
Ext4 является файловой системой по умолчанию в большинстве дистрибутивов Linux по определенной причине. Это улучшенная версия старой файловой системы Ext3. Это не самая передовая файловая система, но это хорошо: это означает, что Ext4 надежен и стабилен.
В будущем дистрибутивы Linux будут постепенно переходить на BtrFS. BtrFS все еще находится на переднем крае и видит много разработок, поэтому вы захотите избежать этого в производственных системах. Риск повреждения данных или других проблем не стоит потенциального улучшения в скорости.
Обратите внимание, однако, что этот совет «использовать Ext4» относится только к системным разделам Linux и другим разделам на диске, доступ к которым имеет только Linux. Если вы форматируете внешний диск, которым хотите поделиться с другими операционными системами, вы не должны использовать Ext4, потому что Windows, macOS и другие устройства не могут читать файловые системы Ext4. Вы захотите использовать exFAT или FAT32 при форматировании внешнего диска в Linux.
Если вы настраиваете разделы на своем главном загрузочном диске Linux, вы также захотите создать раздел подкачки размером не менее нескольких ГБ при настройке этих разделов. Этот раздел используется для «подкачки». Это похоже на файл подкачки в Windows. Linux переставляет память в пространство подкачки, когда ее ОЗУ переполнена. Этот раздел должен быть отформатирован как «swap» вместо конкретной файловой системы.
Что такое журналирование?
Одна вещь, которую вы заметите при выборе между файловыми системами, это то, что некоторые из них помечены как файловая система «журналирования», а некоторые нет. Это важно.
Журналирование предназначено для предотвращения повреждения данных от сбоев и внезапной потери питания. Допустим, ваша система выполняет запись файла на диск, и она внезапно теряет питание. Без журнала ваш компьютер не знал бы, был ли файл полностью записан на диск. Файл останется на диске поврежденным.
С журналом ваш компьютер будет замечать, что он собирается записать определенный файл на диск в журнале, записать этот файл на диск и затем удалить это задание из журнала. Если во время записи файла питание отключилось, Linux при загрузке проверит журнал файловой системы и возобновит все частично выполненные задания. Это предотвращает потерю данных и повреждение файлов.
Журналирование немного снижает производительность записи на диск, но оно того стоит на настольном компьютере или ноутбуке. Это не так много, как вы думаете. Полный файл не записывается в журнал. Вместо этого в журнал записываются только метаданные файла, индекс или место на диске до его записи на диск..
Каждая современная файловая система поддерживает ведение журнала, и вы захотите использовать файловую систему, которая поддерживает ведение журнала при настройке настольного компьютера или ноутбука.
Файловые системы, которые не обеспечивают ведение журнала, доступны для использования на высокопроизводительных серверах и других подобных системах, где администратор хочет добиться дополнительной производительности. Они также идеально подходят для съемных флеш-накопителей, где вам не нужны большие накладные расходы и дополнительные записи в журналы..
В чем разница между всеми этими файловыми системами Linux?
В то время как Microsoft разрабатывает Windows, а Apple контролирует macOS, Linux - это проект с открытым исходным кодом, разработанный сообществом. Любой (или любая компания), обладающая навыками и временем, может создать новую файловую систему Linux. Это одна из причин, почему существует так много вариантов. Вот различия:
- Ext расшифровывается как «Расширенная файловая система» и был первым, созданным специально для Linux. У этого было четыре главных пересмотра. «Ext» - это первая версия файловой системы, представленная в 1992 году. Это было серьезное обновление по сравнению с файловой системой Minix, которая использовалась в то время, но в ней отсутствуют важные функции. Многие дистрибутивы Linux больше не поддерживают Ext.
- Ext2 не является файловой системой журналирования. Когда это было сделано, это была первая файловая система, поддерживающая расширенные атрибуты файлов и 2 терабайтных диска. Отсутствие журнала в Ext2 означает, что он записывает на диск меньше, что делает его полезным для флэш-памяти, такой как USB-накопители. Однако файловые системы, такие как exFAT и FAT32, также не используют ведение журнала и более совместимы с различными операционными системами, поэтому мы рекомендуем вам избегать Ext2, если вы по каким-либо причинам не нуждаетесь в нем..
- Ext3 в основном просто Ext2 с журналированием. Ext3 был разработан для обратной совместимости с Ext2, что позволяет преобразовывать разделы между Ext2 и Ext3 без необходимости форматирования. Он существует дольше, чем Ext4, но Ext4 существует с 2008 года и широко тестируется. На этом этапе вам лучше использовать Ext4.
- Ext4 был также разработан, чтобы быть обратно совместимым. Вы можете смонтировать файловую систему Ext4 как Ext3 или смонтировать файловую систему Ext2 или Ext3 как Ext4. Он включает в себя новые функции, которые уменьшают фрагментацию файлов, допускает большие объемы и файлы и использует отложенное выделение для увеличения срока службы флэш-памяти. Это самая современная версия файловой системы Ext, используемая по умолчанию в большинстве дистрибутивов Linux..
- Btrfs, произносится как «масло» или «лучше» FS, был первоначально разработан Oracle. Он означает «Файловая система B-Tree» и позволяет создавать пулы накопителей, мгновенные снимки, прозрачное сжатие и оперативную дефрагментацию. Он разделяет те же идеи, что и ReiserFS, файловая система, которую некоторые дистрибутивы Linux использовали по умолчанию. BtrFS разработан, чтобы быть чистым отрывом от серии файловых систем Ext. Тед Цо, сопровождающий файловую систему Ext4, считает Ext4 краткосрочным решением и считает, что BtrFS - это путь вперед. Ожидается, что в ближайшие несколько лет BtrFS станет стандартом как для корпоративных серверов, так и для пользовательских настольных Linux-дистрибутивов..
- ReiserFS Это был большой шаг вперед для файловых систем Linux, когда он был представлен в 2001 году и включал в себя множество новых функций, которые Ext никогда не сможет реализовать. ReiserFS был заменен Reiser4, который улучшил многие функции, которые были неполными или отсутствовали в первоначальном выпуске, в 2004 году. Но разработка Reiser4 застопорилась после того, как главный разработчик, Ганс Рейзер, был отправлен в тюрьму в 2008 году. Reiser4 до сих пор нет в основном ядре Linux и вряд ли туда попадет. BtrFS - лучший долгосрочный выбор.
- ZFS был разработан Sun Microsystems для Solaris и в настоящее время принадлежит Oracle. ZFS поддерживает множество расширенных функций, включая пул накопителей, снимки и динамическое чередование дисков. BtrFS по умолчанию перенесет многие из этих функций в Linux. Каждый файл имеет контрольную сумму, поэтому ZFS может определить, поврежден файл или нет. Sun с открытым исходным кодом ZFS под лицензией Sun CDDL, что означает, что она не может быть включена в ядро Linux. Однако вы можете установить поддержку ZFS в любом дистрибутиве Linux. Ubuntu теперь также предлагает официальную поддержку ZFS, начиная с Ubuntu 16.04. Ubuntu по умолчанию использует ZFS для контейнеров.
- XFS был разработан Silicon Graphics в 1994 году для операционной системы SGI IRX и был портирован на Linux в 2001 году. Он в некотором роде похож на Ext4, так как он также использует отложенное выделение для фрагментации файлов и не допускает монтирования моментальных снимков. Это может быть увеличено, но не сокращено, на лету. XFS имеет хорошую производительность при работе с большими файлами, но имеет худшую производительность, чем другие файловые системы при работе со многими маленькими файлами. Это может быть полезно для определенных типов серверов, которые в первую очередь должны иметь дело с большими файлами.
- JFS, или «Журнализованная файловая система», разработанная IBM для операционной системы IBM AIX в 1990 году и позднее перенесенная в Linux. Он может похвастаться низким использованием процессора и хорошей производительностью как для больших, так и для маленьких файлов. Размер JFS-разделов можно динамически изменять, но не сокращать. Он был чрезвычайно хорошо спланирован и имеет поддержку почти во всех основных дистрибутивах, однако его производственное тестирование на серверах Linux не такое обширное, как Ext, как это было разработано для AIX. Ext4 чаще используется и более широко тестируется.
- Своп является опцией при форматировании диска, но не является реальной файловой системой. Он используется в качестве виртуальной памяти и не имеет структуры файловой системы. Вы не можете смонтировать его, чтобы просмотреть его содержимое. Подкачка используется ядром Linux как «пустое место» для временного хранения данных, которые не помещаются в ОЗУ. Это также используется для зимней спячки. В то время как Windows хранит свой файл подкачки в виде файла в основном системном разделе, Linux просто резервирует отдельный пустой раздел для пространства подкачки..
- FAT16, FAT32, а также EXFAT: Файловые системы Microsoft FAT часто используются при форматировании диска в Linux. Эти файловые системы не включают журнал, поэтому они идеально подходят для внешних USB-накопителей. Они являются стандартом де-факто, который может прочитать каждая операционная система - Windows, macOS, Linux и другие устройства. Это делает их идеальной файловой системой для форматирования внешнего диска, который вы хотите использовать с другими операционными системами. FAT32 старше. exFAT является идеальным вариантом, так как он поддерживает файлы размером более 4 ГБ и разделы размером более 8 ТБ, в отличие от FAT32.
Существуют и другие файловые системы Linux, в том числе файловые системы, разработанные специально для флеш-памяти во встроенных устройствах и на SD-картах. Но эти варианты вы чаще всего видите при использовании Linux.