Какую файловую систему использует для работы установленный вами дистрибутив

Обновлено: 04.07.2024

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

Файловая система Linux в корне отличается от Windows, и OS X. В Windows и OS X можно найти программное обеспечение, которое будет добавлено для поддержки нестандартных файловых системах, но обе операционные системы могут быть установлены только на свои собственные файловые системы.

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

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

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

В журнале файл записывается в журнал, а затем журнал записывает файл на диск, когда будет готов. Как только он успешно записан на диск, он удаляется из журнала Punch-Out, и операция завершается. Если связи будут потеряны во время записи на диск, в файловой системе можно проверить журнал для всех операций, которые еще не были завершены, и помнит, где она была прервана.

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

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

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

Сейчас вам, вероятно, не следует использовать Ext на любой машине, в связи с её ограничениями и возрастом. Кроме того, больше не поддерживается во многих дистрибутивах.

EXT2 не является журналируемой файловой системой, и была первой, чтобы обеспечить расширенные атрибуты файлов и 2 Тб диски. Ext2 не использует журнал и значительно меньше, записывает применительно к диску.

Благодаря снижению требованиям записи и следовательно ниже стирание, она идеально подходит для флэш-памяти, особенно для USB флэш-накопителей.

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

EXT3 в основном только с Ext2 журналом. Цель Ext3 была быть совместимой с Ext2 и поэтому диски могут быть преобразованы между двумя системами без необходимости форматирования диска. Проблема с сохранением совместимости имеет много ограничений, до сих пор существующих в Ext2 и Ext3.

Если вам нужно обновить Ext2 файловую систему до Ext3. Вы, вероятно, получите лучшую производительность баз данных с оптимизацией Ext3. Не самый лучший выбор для файловых серверов, потому что ей не хватает восстановления файлов, и это очень важно. EXT4, как и Ext3, сохраняет обратную совместимость со своими предшественниками. Вы также можете смонтировать файловую систему Ext4, как Ext3 без побочных эффектов.

Ext4 уменьшает фрагментацию файлов, при больших объемах и файлах, а также использует отложенное выделение, которое помогает с флэш-памятью, а также фрагментацией. Хотя это используется в других файловых системах, задержка распределения имеет потенциал для потери данных и попала под некоторый контроль.

Лучший выбор для твердотельных накопителей Ext4 и улучшает общую производительность по сравнению с предыдущими версиями и Ext. Если она по умолчанию установлена в ваш дистрибутив, то вам стоит придерживаться её для любого настольного компьютера или ноутбука. Она также показывает перспективные показатели производительности для серверов баз данных.

Хотя она не стабильная в некоторых дистрибутивах, но она в конечном итоге будет по умолчанию заменять Ext4 и в настоящее время предлагает преобразование Ext3/4 на лету в Btrfs.

Btrfs можно устанавливать на большие файловые системы серверов из-за её производительности, образов, и многих других функций. Oracle также работает над заменой для NFS и CIFS и называется CRFs, которая может похвастаться лучшей производительностью и более широкими возможностями. Что делает её лучшим выбором для файлового сервера. Тесты показали, что она отстает от Ext4 на флэш-памяти, и на твердотельных накопителях, таких как сервер базы данных, и даже в некоторых случаях общей системы чтения/записи.

ReiserFS была большим шагом вперед для Linux файловых систем, когда она была введена в 2001 году и включала много новых функций, которые Ext никогда не сможет реализовать. ReiserFS была заменена на Reiser4, которая улучшила многие функции, которых не было или не хватало в первом выпуске. Однако развитие Reiser4 идет очень медленно и до сих пор не имеет поддержки в основных Linux-ядрах. В настоящее время ReiserFS является единственной версией, во некоторых дистрибутивах.

Имеет высокую производительность для небольших файлов, таких как журналы и подходит для баз данных и почтовых серверов. ReiserFS может быть динамически расширена, но она не поддерживает шифрования уровне файловой системы. Будущее Reiser4 сомнительно и Btrfs, вероятно, является лучшим выбором.

XFS была разработана Silicon Graphics в 1994 году для своей операционной системы, а затем была портирована в Linux в 2001 году. Она сопоставима с Ext4 , потому что она также использует отложенное выделение, чтобы помочь с фрагментацией файлов и не позволяет использовать установленные снимки. XFS показала себя, как обеспечивающая хорошую производительность с большими файлами и возможностью быть изменённой, однако вы не можете уменьшить объем XFS.

Большинство дистрибутивов требуют отдельного загрузочного раздела, потому что XFS и GRUB могут быть непредсказуемыми

Производительность с небольшими файлами не так хороша, как и другие файловые системы, что делает её плохим выбором для баз данных, электронной почты и других серверов, которые имеют много журналов. Не так хорошо поддерживается Ext для персональных компьютеров и не имеет значительных улучшений производительности и возможностей по сравнению с ext3/4.

JFS была разработана фирмой IBM в 1990 году и позже портирована в Linux. Она может похвастаться низкой загрузкой процессора и хорошей производительностью для больших и маленьких файлов. JFS разделы могут иметь динамические размеры, но не уменьшилась, как ReiserFS и XFS. Она была очень хорошо спланирована. Однако её тестирование на Linux-серверах не так широка, как внешних, так как она была разработана для AIX.

ZFS стоит упоминания, поскольку она также разрабатывается Oracle после слияния с Sun и имеет сходные черты с Btrfs и ReiserFS. Это было в новостях в последние годы, когда Apple, по слухам, хотела перейти на неё в качестве файловой системы по умолчанию. Благодаря лицензии, Sun CDDL, она не может быть включены в ядро Linux. Однако она имеет поддержку файловой системы Linux через пространственного пользователя (FUSE), который делает возможным использование ZFS. Показывает высокую производительность с большими дисковыми массивами.

Поддерживает множество дополнительных функций, включая объединение дисков, моментальные снимки и динамическое чередование дисков.

Но, она может быть трудно устанавливаемой в Linux, поскольку она требует FUSE и не может поддерживаться вашим дистрибутивом.

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

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

Операционная система Windows может быть установлена только на файловую систему NTFS, поэтому обычно у пользователей не возникает вопросов какую ФС лучше использовать. Но Linux очень сильно отличается, здесь в ядро системы встроены и могут использоваться несколько файловых систем, каждая из которых оптимизирована для решения определенных задач и лучше подходит именно для них.

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

Жесткий диск и разделы

Что такое файловая система?

Дальше больше. Чтобы на каждом разделе можно было работать с файлами и каталогами, необходима файловая система. Мы могли бы писать просто содержимое файлов на диск, но нужно еще где-то хранить данные о папках, имена файлов, их размер, адрес на жестком диске, атрибуты доступа. Всем этим занимается файловая система.

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

Типы файловых систем Linux

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

Основные файловые системы

Каждый дистрибутив Linux позволяет использовать одну из этих файловых систем, каждая из них имеет свои преимущества и недостатки:

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

В 2001 году вышла ext3, которая добавила еще больше стабильности благодаря использованию журналирования. В 2006 была выпущена версия ext4, которая используется во всех дистрибутивах Linux до сегодняшнего дня. В ней было внесено много улучшений, в том числе увеличен максимальный размер раздела до одного экзабайта.

JFS или Journaled File System была разработана в IBM для AIX UNIX и использовалась в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов. При разработке файловой системы ставилась цель создать максимально эффективную файловую систему для многопроцессорных компьютеров. Также как и ext, это журналируемая файловая система, но в журнале хранятся только метаданные, что может привести к использованию старых версий файлов после сбоев.

Другие файловые системы, такие как NTFS, FAT, HFS могут использоваться в Linux, но корневая файловая система linux на них не устанавливается, поскольку они для этого не предназначены.

Специальные файловые системы

Ядро Linux использует специальные файловые системы, чтобы предоставить доступ пользователю и программам к своим настройкам и информации. Наиболее часто вы будете сталкиваться с такими вариантами:

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

Виртуальные файловые системы

Не все файловые системы нужны в ядре. Существуют некоторые решения, которые можно реализовать и в пространстве пользователя. Разработчики ядра создали модуль FUSE ( filesystem in userspace), который позволяет создавать файловые системы в пространстве пользователя. К виртуальным файловым системам можно отнести ФС для шифрования и сетевые файловые системы.

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

Выводы

На завершение видео о том, что такое файловая система и ее структура в linux:

ext4 против Btrfs: какую файловую систему Linux использовать?

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

У пользователей Windows и MacOS нет особых причин для поиска, так как у них есть только один выбор для своей системы - NTFS и HFS+ соответственно. Linux, с другой стороны, имеет множество различных файловых систем, по умолчанию это Fourth Extended Filesystem (ext4). Вы давно хотели сменить ее на B-Tree (Btrfs)? Давайте разберемся, что лучше.

Что делают файловые системы?


Image Credit: Maksym Kaharlytskyi/Unsplash

Как и физические файловые системы, такие как папки и шкафы, цифровые файловые системы управляют файлами. Они контролируют то, как ваша операционная система хранит данные, которые не используются, какую другую информацию (известную как метаданные) к данным прикрепляют, кто или что имеет доступ к данным и так далее.

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

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

Зачем переключать файловые системы?

Ни один код не подходит для всех вариантов использования, это также относится и к файловым системам. Некоторые файловые системы выделяют по разным причинам. Файловая система File Allocation Table (FAT) поддерживается практически всеми современными операционными системами.

USB флэш-накопители и SD-карты используют FAT-систему, так что ваш компьютер может читать их независимо от того, работаете ли вы под Linux, Windows, macOS или другой операционной системой.

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

Текущая файловая система Linux

Большинство версий настольных дистрибутивов Linux по умолчанию используют файловую систему ext4. Она стала улучшенной версией файловой системы ext3, которая до этого была улучшена по сравнению с файловой системой ext2.

ext4 оказалась очень надежной файловой системой, но она устарела. Некоторые пользователи Linux ищут функции, с которыми ext4 не справляется самостоятельно. Существует программное обеспечение, которое решает часть этих проблем, но возможность выполнять эти действия на уровне файловой системы обеспечила бы лучшую производительность. Отсюда и стремление пользователей к Btrfs.

Понимание ext4: плюсы и минусы


Ограничения ext4 остаются довольно впечатляющими. Самый большой объём/раздел, который можно создать с помощью ext4 - 1 эксбибайт, что эквивалентно примерно 1 152 921,5 терабайт. Максимальный размер файла составляет 16 тебибайт или примерно 17,6 терабайт, что намного больше, чем у любого жесткого диска, который обычный пользователь может купить в настоящее время.

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

Несмотря на все свои возможности, она не поддерживает прозрачное сжатие, прозрачное шифрование или дедупликацию данных. Технически, снапшоты поддерживаются, но эта функция является экспериментальной.

Theodore Ts’o, разработчик, сыгравший ключевую роль в создании ext4, назвал ее релизом, основанным на устаревшей технологии 1970-х годов и поверил, что Btrfs предложит лучшее развитие. Это было более десяти лет назад.

Понимание Btrfs: плюсы и минусы


Btrfs, которую можно произнести как "Butter FS", "Better FS" или "B-Tree FS", является более новой файловой системой, переделанной с нуля. Btrfs существует, потому что разработчики хотели расширить функциональность файловой системы, включив в нее дополнительную функциональность, такую как объединение в пулы, снимки и контрольные суммы.

Проект начался в компании Oracle, но с тех пор в разработке принимали участие и другие крупные компании. Список включает Facebook, Netgear, Red Hat и SUSE.

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

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

Конечно, вы все еще можете создавать несколько разделов, чтобы не зеркалировать все. Максимальный размер раздела файловой системы btrfs составляет 16 эксбибайт, так же как максимальный размер файла.

Учитывая, что btrfs сможет охватить несколько жёстких дисков, хорошо, что она поддерживает в 16 раз больше дискового пространства, чем ext4.

Дистрибутивы Linux сделали переход?

Btrfs является стабильной частью ядра Linux с 2013 года, и вы можете переформатировать жесткие диски уже сегодня. Но btrfs не является файловой системой Linux по умолчанию. Большинство дистрибутивов продолжают использовать ext4 по умолчанию.

Почему? Файлы - это самые важные данные на вашем жестком диске. Личные данные незаменимы. Вы можете переустановить ОС и перезагрузить приложения, но без резервной копии потерянные файлы пропадут навсегда. Вот почему очень важно, чтобы файловая система была проверена на надежность, прежде чем переключать миллионы людей на ее использование по умолчанию.

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

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

Один известный дистрибутив определил, что прошло достаточно времени, чтобы переключиться. OpenSUSE теперь использует btrfs по умолчанию для раздела /root, в котором находится операционная система. Однако для раздела /home, в котором хранятся ваши личные файлы, openSUSE решила использовать вместо него файловую систему XFS.

Так что нет, переход прошел не совсем так, как ожидалось. Но, как мы знаем, новым технологиям иногда требуется много времени для распространения по всему окружению Linux.

Структура и типы файловых систем в Linux

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

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

Файловые системы в операционной системе Linux. Базовые понятия

ОС Linux предоставляет выбор еще на стадии установки: в ядро системы встроены разные файловые системы (ФС). При этом пользователь должен выбрать ту, что отвечает его требованиям и задачам. Перед теми, кто использует Windows, такой вопрос не стоит — эту ОС можно установить только на NTFS. Отличается от Windows и иерархическое устройство самих ФС, и структура каталогов.

Linux поддерживает деление жесткого диска на разделы. Для подсчета и определения физических границ используется специальная таблица разделов — GPT или MBR. Она содержит метку и номер раздела, а также адреса физического расположения точек начала и конца раздела.

Организация файловой системы Linux

В Linux на каждый раздел можно установить свою ФС, которая отвечает за порядок и способ организации информации. В основе файловых систем лежит набор правил, определяющий, где и каким образом хранятся данные. Следующий «слой» ФС — практический (технический) способ организации информации на каждом конкретном типе носителя (опять же, учитывая правила, заложенные в основу системы).

От выбора файловой системы зависят:

  • скорость работы с файлами;
  • их сохранность;
  • скорость записи;
  • размер файлов.

Тип ФС также определяет, будут ли данные храниться в оперативной памяти (ОП) и как именно пользователь сможет изменить конфигурацию ядра.

Файловая система (ФС) — архитектура хранения данных, которые могут находиться в разделах жесткого диска и ОП. Выдает пользователю доступ к конфигурации ядра. Определяет, какую структуру принимают файлы в каждом из разделов, создает правила для их генерации, а также управляет файлами в соответствии с особенностями каждой конкретной ФС.

ФС Linux — пространство раздела, поделенное на блоки определенного размера. Он определяется кратностью размеру сектора. Соответственно, это могут быть 1024, 2048, 4096 или 8120 байт. Важно помнить, что размер каждого блока известен изначально, ограничен максимальным размером ФС и зависит от требований, которые выдвигает пользователь к каждому из блоков.

Для обмена данными существует сразу два способа. Первый из них — виртуальная файловая система (VFS). С помощью данного типа ФС происходит совместная работа ядра и приложений, установленных в системе. VFS позволяет пользователю работать, не учитывая особенности каждой конкретной ФС. Второй способ — драйверы файловых систем. Именно они отвечают за связь между «железом» и софтом.

Список файловых систем, которые поддерживаются ядром, находится в файле /proc/filesystems:

Структура и иерархия файловой системы. Структура каталога

Файловая система в Linux определяет также организацию расположения файлов, по сути представляя собой иерархическую структуру «дерева»: начинается с корневого каталога «/» и разрастается ветвями в зависимости от работы системы.

ФС также характерно понятие целостности: в такой системе изменения, внесенные в один файл, не приведут к изменению другого файла, не связанного с первым. У всех данных есть собственная физическая память. В Linux целостность ФС проверяется специальной командой — fsck.

Типы файлов условно можно разделить на несколько групп. Некоторые из них такие же, как и в ОС Windows, — текстовые документы, медиа и изображения. Отличия начинаются с каталогов, которые являются отдельным типом файлов. Жесткие диски относят к блочным устройствам. Принтеры — к символьным. Отдельную группу составляют символические ссылки, о которых речь пойдет ниже. К типам файлов относится каналы межпроцессного взаимодействия — PIPE (FIFO), а также гнезда (разъемы центрального процессора).

Тип файла определяется с помощью команды ls (параметр -l).

В ФС каждый файл определяется конкретным индексом — Inode (от англ. index node — «индексный дескриптор»). Но при этом один файл (речь о физическом размещении) может иметь сразу несколько имен (или путей). И если в структуре ФС файлы будут отличаться, то на жестком диске им может соответствовать один файл. Это означает, что ФС Linux перекрестно-иерархична, а ветви дерева могут пересекаться.

Корневой раздел в Linux один — «/» (root, «корень)». Разделы называются подкаталогами, примонтированными к соответствующим каталогам. Типовая структура каталогов (первых двух уровней), примонтированных к корневому каталогу Linux для сервера, представленного компанией Selectel, выглядит так:

При монтировании происходит ассоциирование каталога с устройством, содержащим ФС (драйвер). Соответствующая ссылка на устройство передается драйверу. Именно он и определяет ФС. Если процедура завершается успешно, ядро заносит информацию (каким драйвером обслуживаются и где расположены файлы и каталоги) в таблицу монтирования. Она находится в файле /proc/mounts.

Данные о каждом файле содержит Inode — специфичный для UNIX-систем индексный дескриптор, хранящий различную метаинформацию (владелец файла, последнее время обращения, размер и так далее).

Когда файл (каталог) перемещается в другую ФС, его Inode тоже создается заново. И только потом удаляется исходный (в рамках той же системы меняется только путь файла). Также отметим, что файл (каталог) существует до того момента, пока хранится информация о его имени или пути к нему. После удаления всей информации блоки, отведенные под файл, становятся свободными (для выделения под другой файл).

Еще одна особенность Linux: существование сразу двух типов ссылок. Во-первых, жесткая ссылка (Hard-Link), которая представляет собой один из путей файла (команда ls -li). Во-вторых, символьная ссылка (Symbolic link) — это файл UNIX с текстовой строкой с путем к оригинальному файлу.

Общая информация о ФС хранится в суперблоке. Сюда относится суммарное число блоков и Inode, число свободных блоков, их размеры и так далее. Важно, чтобы суперблок сохранял свою целостность, поскольку от этого зависит стабильность и работоспособность системы в целом. В ОС создается сразу несколько копий, чтобы можно было восстановить всю необходимую информацию.


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

Команды для работы с файлами в Linux

КомандаЧто делает
lsПросматривает содержимое
текущего каталога
touch file_name Создает файл file_name
mkdir directory_name Создает директорию directory_name
cat file_name Показывает содержимое файла
file_name в терминале
less file_nameОбеспечивает просмотр файла
с помощью скроллинга
rm file_name Удаляет файл file_name
rm -rУдаляет рекурсивно все файлы
из директории
rmdir directoryУдаляет папку directory, которая
находится в текущей папке
ln -s /home/user/directory_name/ /home/user/test/Создает жесткие и символические
ссылки на файлы или папки. Для
создания символической
ссылки используется опция -s
pwdВыводит каталога, в котором
находится пользователь
which programВыводит каталог, в котором
установлена программа
mcЗапускает полнофункциональный
файловый менеджер
с псевдографическим
интерфейсом на основе ncurses.
Требуется установка mc в Ubuntu
cd directory_nameПереходит в директорию
directory_name
cp file_name directory_name Копирует file_name в директорию
directory_name
nanoИнициирует запуск простейшего
текстового редактора командной
строки Linux
mv file_name directory_nameПеремещает file_name в директорию
directory_name
mv old_name new_nameПереименовывает файл/директориюold_name в new_name
locate file_nameВыполняет быстрый поиск файла
chmod 644 file_nameИзменяет права доступа к файлу или каталогу

Типы файловых систем Linux. Какая из файловых систем используется ядром Linux

Как уже говорилось ранее, в Linux несколько предустановленных и доступных ФС. В зависимости от выбора пользователя будут меняться методы работы с файлами, обращения к конфигурации ядра и способы хранения данных в ОП. В зависимости от целей и задач пользователя (а также достоинств и недостатков самих ФС) можно выбрать любую файловую систему, доступную в дистрибутиве ОС.

Список основных файловых систем:

ФС может являться корневой в различных разделах, Linux позволяет использовать разные системы одновременно.

Ext2, Ext3, Ext4

Первая группа ФС — Extended Filesystem (Ext2, Ext3, Ext4) — является стандартом для Linux. Как следствие, это самые распространенные системы. Они редко обновляются, но зато стабильны. Ext2 создавалась специально под Linux (изначально Extended Filesystem делали еще под Minix).

Эта группа ФС поддерживает наибольшее количество доступных функций из всех, предложенных на рынке. Ext3 (2001 г.) стала еще более стабильной, чем ее предшественница, за счет использования журналирования, а версия Ext3 (2006 г.) популярна и среди современных пользователей. Среди улучшений: увеличение максимального размера раздела до 1 Эксабайта.

Два типа файловых систем

Журналируемые — данный тип ФС сохраняет историю действий пользователя, а также план проверки системы в специальном файле. Особенности: устойчивость к сбоям и сохранение целостности информации.

Не журналируемые — не предусматривают хранение логов. Особенности: работают быстрее, но не гарантируют сохранность данных.

Чтобы узнать тип ФС, существует команда file -s.

Журналируемая ФС — первая альтернатива для ФС группы Ext. Ее разработали в IBM специально для операционной системы AIX UNIX. Главные плюсы этой системы: стабильность и минимальные требования для работы. Разработчики JFS ставили перед собой цель создать ФС, которая бы эффективно работала на многопроцессорных компьютерах. Кроме того, эта система также относится к журналируемым ФС. Но есть и очевидные недостатки. Если случится непредвиденный сбой в работе системы, ФС может использовать версии файлов, которые уже устарели. Причина заключается в том, что журнал сохраняет только метаданные.

ReiserFS

Эта ФС разработана под руководством Ганса Райзера и названа в честь него. Подходит исключительно под Linux, чаще всего ее используют в качестве возможной замены Ext3. Главные особенности: увеличенная производительность и более широкие возможности. Изменяющийся размер блока дает пользователю возможность объединять небольшие файлы в один блок, таким образом удается избежать фрагментации и повысить качество работы ФС в целом. Размер разделов можно менять прямо в процессе работы, однако эта ФС может показать нестабильные результаты и потерять данные, например, при отключении энергии.

Еще одна журналируемая ФС. Однако, в отличие от аналогов, в логи записывает исключительно те изменения, которые претерпевают метаданные. Разработана для ОС в Silicon Graphics. Важные особенности: быстро работает с файлами сравнительно большого размера, умеет выделять место в отложенном режиме, а также менять размеры разделов в процессе работы. Часто встречается в дистрибутивах на основе Red Hat. Минусы: нельзя уменьшить размер разделов, сложно восстанавливать данные и можно потерять информацию при отключении питания.

Btrfs

Современная ФС, главной особенностью которой является высокая отказоустойчивость. Из дополнительных «бонусов»: удобна для сисадминов и поддерживает сравнительно простой процесс восстановления данных. Поддерживает подтома, разрешает менять размеры разделов в динамическом режиме и позволяет делать снапшоты. Отличается высокой производительность. Применяется как ФС, установленная по умолчанию, в OpenSUSE и SUSE Linux. Главный минус — нестабильность (нарушена обратная совместимость, сложная для поддержки и так далее).

Flash-Friendly File System входит в состав ядра ОС Linux и предназначена для использования с хранилищем на основе флеш-памяти. Разработчик — корпорация Samsung. F2FS разбивает носитель на части, которые снова делятся, и так далее. Эти миниатюрные зоны используются вместо повторного использования одних и тех же размеченных участков.

OpenZFS

OpenZFS — ветвь ZFS, о которой мы пишем ниже). Разработчик — компания Sun для ОС Solaris. В 2016 году Ubuntu включила ее поддержку по умолчанию. Главные плюсы: защита от повреждения данных, поддержка больших файлов и автоматическое восстановление.

Традиционные для Windows ФС NTFS, FAT, HFS применяются в Linux, но пользователь не сможет установить в такие разделы корень, поскольку структура этих ФС для этого не приспособлена.

Специальные файловые системы

Для решения задач, связанных с предоставлением доступа пользователю или программам к настройкам ядру ОС, используются так называемые специальные файловые системы. Ядро использует несколько типов специальных ФС:

  • tmpfs — записывает файлы в ОП. Для этого создается блочное устройство определенного объема, после чего оно подключается к папке.
  • procfs — хранит данные о системных процессах и ядре.
  • sysfs — изменяет настройки ядра ОС.

Виртуальные файловые системы: EncFS, Aufs, NFS и ZFS

Если пользователю необходимо решить задачи, которые не требуют непременного наличия ФС в ядре, применяется модуль FUSE (filesystem in userspace). Он создает ФС в пространстве пользователя. Виртуальные ФС, как правило, поддерживают шифрование и сетевое администрирование. Сегодня на рынке существует целый спектр виртуальных ФС для ряда задач:

Читайте также: