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

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

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

При таком большом количестве доступных реализаций приложениям необходим согласованный способ взаимодействия с ними. Здесь на помощь приходит виртуальная файловая система (VFS). VFS — это уровень абстракции в ядре Linux, который находится между приложениями и различными файловыми системами. Он предоставляет единый, унифицированный интерфейс, гарантируя, что приложения могут работать бесперебойно независимо от базового типа файловой системы. Эта гибкость позволяет вам иметь несколько файловых систем на ваших дисках, часто организованных через разделы, что мы рассмотрим в следующем уроке.

Журналирование для целостности данных

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

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

Распространенные типы файловых систем Linux

Вот некоторые из наиболее распространенных типов файловых систем Linux, с которыми вы столкнетесь:

  • ext4 — как последняя версия нативной расширенной файловой системы Linux (Extended Filesystem), ext4 является выбором по умолчанию для многих дистрибутивов. Она обратно совместима со своими предшественниками (ext2/ext3) и поддерживает очень большие тома дисков (до 1 экзабайта) и размеры файлов (до 16 терабайт). Это надежный и стандартный выбор для большинства сценариев использования.
  • Btrfs — часто называемая «B-tree FS», Btrfs — это современная файловая система с расширенными функциями, такими как встроенные снимки (snapshots), инкрементное резервное копирование и улучшенная производительность. Хотя теперь она считается стабильной и является выбором по умолчанию в некоторых дистрибутивах, она все еще находится в активной разработке.
  • XFS — высокопроизводительная файловая система с журналированием, которая превосходно справляется с большими файлами и параллельными операциями ввода-вывода. Это делает ее отличным выбором для систем, которые управляют большими объемами данных, например, медиасерверов.
  • NTFS и FAT — это стандартные типы файловых систем Windows. Linux предоставляет полную поддержку для их чтения и записи, что полезно для систем с двойной загрузкой.
  • HFS+ — основная файловая система, используемая macOS. Linux по умолчанию имеет для нее поддержку только для чтения, а поддержка записи доступна с помощью дополнительных инструментов.

Вы можете увидеть, какие файловые системы используются на вашей машине, с помощью команды df:

pete@icebox:~$ df -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/sda1      ext4       6461592 2402708   3707604  40% /
udev           devtmpfs    501356       4    501352   1% /dev
tmpfs          tmpfs       102544    1068    101476   2% /run
/dev/sda6      xfs       13752320  460112  13292208   4% /home

Команда df сообщает об использовании дискового пространства файловой системой. Флаг -T специально показывает тип файловой системы. Мы рассмотрим этот инструмент более подробно позже.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

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

  1. Управление разделами и файловыми системами Linux — В этой лаборатории вы попрактикуетесь в создании нового раздела, его форматировании с использованием определенного типа файловой системы, его монтировании и настройке для постоянного монтирования. Это фундаментальные навыки для управления хранилищем в Linux.

Эта лаборатория позволит вам применить эти концепции в реальном сценарии и повысить уверенность в управлении дисками.

Тест

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