29-07-2018 12:24

Файловая система "Линукс": тип, описание, структура, проверка системы, восстановление поврежденных файлов

Сразу отметим, что данный материал по большей мере будет теоретическим, направленным на новичков, на формирование общего представления. Поэтому мы рассмотрим общие, самые важные положения о файловой системе "Линукс". Тонкости работы с какой-либо ее разновидностью, непосредственные команды - это уже иная тема разговора. Наша задача - разобраться, что это такое, как функционирует данная система.

Что это такое?

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

How dangerous is the new coronavirus?You will be interested:How dangerous is the new coronavirus?

Повествуя о файловой системе "Линукс Минт", мы будем подразумевать следующее:

  • Весь комплекс структуры файлов "Линукс", начиная с корня.
  • Какой-либо определенный формат хранения информации. Частые примеры: Ext3, Ext4, Btrfs, XFS и проч. Отметим отличительную особенность ядра "Линукс". Оно способно поддерживать до сотни файловых систем разных типов, от современных до совсем устаревших. Каждый из таких видов будет использовать свои структуры метаданных для организации работы с информацией на диске.
  • Логический том или определенный раздел, отформатированный в конкретную разновидность файловой системы. Его можно "примонтировать" к определенной точке монтирования.

Основополагающие функции системы

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

Все файловые системы обязательно обеспечивают пространство имен. Именно оно определяет, как будут именоваться файлы, устанавливают ограничения на длину названия, использование определенных символов. Отвечает за логическую структуру информации на диске. Пример: использование каталогов именно для организации файлов, а не для простого складирования.

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

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

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

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

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

Организация файловой структуры в "Линукс"

Данная файловая система - это комплекс из двух частей:

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

О структуре каталогов

Согласитесь, гораздо проще найти необходимый документ, если файлы хранятся в стройных группах, а не собраны в одну кучу. Структура ФС в "Линукс" - это как раз-таки простая иерархия. Все каталоги здесь находятся в корневом каталоге (/). Соответственно, адрес каждого документа будет начинаться с него.

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

О них мы немного поговорим далее. Отметим, что каталоги /bin, /dev, /etc, /lib, /root, /sbin не могут быть примонтированы. Поэтому они доступны уже до загрузки, так как содержат в себе весь набор нужных файлов. А вот каталоги /media и /mnt всегда пустые. Почему? Это точки монтирования для других систем. Иные ФС можно монтировать позже, так как они не оказывают влияния на запуск.

В "Линукс" все физические разделы и диски соединены в общую файловую систему. Начинается она, как мы говорили, с корня (/), в котором располагаются иные каталоги. Функционирует это из-за того, что /var, /home, /boot, /tmp могут располагаться и на других физических дисках, даже на съемных.

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

Далее мы перейдем к перечислению типов самых распространенных файловых систем под данную ОС.

XFS

Начало разработки этой файловой системы "Линукс" - 1993 год. Создатель - Silicon Graphics. Для большинства пользователей стала доступна в 2000-2002 гг.

Представим важные особенности данной системы в "Линукс":

  • Поддержка объемных файлов и их томов.
  • Для 64-битных систем: 8 эксбибайт - 1 байт (представляется следующим образом: 8*260-1 байт).
  • Наличие непрерывных зон пространства.
  • Онлайн-дефрагментация.
  • Задержка выделения пространства.

Еще одна важная черта этой файловой системы "Линукс": одна из самых первых журналируемых систем для *nix. Соответственно, содержит в себя наиболее отлаженный в данной области исходный код.

ReiserFS

Перед вами еще одна старейшая журналируемая файловая система "Линукс". Ее разработчик - Namesys. Для пользователей доступна с 2001 года. Они отмечают наличие досадных недостатков, но в целом отзываются о ней как о неплохой файловой системе.

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

Максимальный размер тома для данной структуры исчисляется 16 тебибайтами.

JFS (Journaled File System)

Переходим к следующей файловой системе, являющейся разработкой небезызвестной корпорации IBM. Была создана сравнительно давно: в 1990-ом для AIX.

Первый стабильный релиз конкретного для пользователей "Линукс" появился более чем через десятилетие - в 2001 году.

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

Наибольший размер тома для этой системы - 32 пэбибайта.

Системы ext

Разберем в этом подзаголовке четыре одноименных типа файловой системы Linux:

  • Ext (extended filesystem). Появилась на свет в апреле 1992 года. Что важно отметить, являлась первой файловой системой, которую разработали специально под нужды "Линукс". Создателем выступил Remy Card. Цель разработки: преодолеть ограничения предыдущей файловой системы Minix.
  • Ext2. Система авторства того же разработчика. Была представлена в 1993 году. Ее существенный минус: система не была журналируемой. Этот недостаток была призвана исправить уже следующая разработка.
  • Ext3. Еще один тип файловой системы Linux. По сути, не являлся самостоятельной разработкой, а был всего лишь расширением для предыдущей. Разработчик - Стивен Твиди. Система была представлена в 1999 году, чтобы в 2001-ом уже стать включенной в основное ядро "Линукс". На фоне прошлых разработок выделяется скромными размерами пространства. Приведем пример для 32-битных систем: до 4 тебибайт. Но при этом ее выделяет важное достоинство: является одной из самых стабильных и широко поддерживаемых в семействе "Линукс".
  • Ext4. Что это за разработка? Если говорить кратко, то это версия предыдущей, но только адаптированная уже для 64-битных систем. Ее выделяла способность поддерживать большие пространства - до 1 эксбибайт. Структура файловой системы Linux данной разновидности также выделяется следующим: наличие непрерывных областей дисковых пространств, онлайн-дефрагментация, возможность задержки выделения пространства и проч. Прямая совместимость с предыдущей разработкой тут также обеспечена. Обратная совместимость будет ограниченной (при отсутствии способности к непрерывным областям дисковых пространств).

Reiser4

Какая файловая система "Линукс" скрывается под этим названием? Это первая попытка создать систему нового поколения для данной ОС. Была представлена миру в 2004 году. Выделяют ее следующие особенности:

  • Транзакции.
  • Возможность задержки выделения пространства.
  • Встроенная возможность сжатия информации и кодирования данных.

Разработчик новинки - Ханс Рейзер (собственно, файловая система и была названа в честь своего создателя). Он предлагал пользователем "Линукс" использовать свое детище в качестве БД с улучшенными метаданными.

К сожалению, судьба передовой Reiser4 оказалась связанной с судьбой ее создателя. В 2008 году Ханса Рейзера осудили за убийство. После этого события о файловой системе предпочли забыть.

UPD: Btrfs

Продолжаем разбирать файловые системы "Линукс", "Виндовс". Надо отметить, что данный проект первоначально был начат корпорацией Oracle. В дальнейшем его поддержали и для систем "Линукс". Немало найдется пользователей, которые выделяют эту файловую систему как ответ на ZFS.

Далее мы представим ключевые особенности Btrfs:

  • Поддержка технологии copy-on-write. Ее главное достоинство в том, что позволяет делать снимки зон диска - так называемые снапшоты. Их ценность в том, что очень помогают при необходимости восстановления системы.
  • Контроль за целостностью данных, а также метаданных.
  • Сжатие информации.
  • Оптимизированный режим, специально разработанный для пользователей накопителей SSD, который можно задать при монтировании.
  • Возможность перехода на Btrfs с ext3.

В дальнейшем (с августа 2008 года) система стала выпускаться под GNU GPL.

Tux 2 и Tux 3

Tux 2 - еще одна файловая система под "Линукс". Особенность разработки в том, что она широко известна, но при этом публично не анонсирована. Создатель системы - Дэниэл Филипс. Особенность его творения в том, что структура базируется на "файловом дереве", которое надежно защищает систему от сбоев. Кстати, подобную миссию несет в себе и журналирование. Организовано как надстройка ext 2.

Переходим к следующей разработке - Tux 3. Многие отмечают, что она выпущена в качестве достойной альтернативы Btrfs. Важная особенность: создана на базе Filesystem in Userspace (так называется специальный модуль для разработки ФС на *nix платформах).

Цель этого проекта: избавиться от ставшего привычным журналирования, взамен ему предложив версионное восстановление (по состоянию на определенный промежуток времени).

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

UPD: Xiafs

В чем отличие этой файловой системы Linux Mint? Разберем ключевые черты.

Как задумка, так и разработка данного открытия - идея Frank Xia. Базой для системы выступала MINIX.

Сегодня разработка считается морально устаревшей, практически не применяется. В свое время ее создавали в качестве альтернативы распространенной ext. В конце 1993 года Xiafs добавили в стандартное ядро "Линукс". Ее отличала приличная стабильность, меньшая зона дисковых пространств под контрольные структуры.

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

UPD: ZFS

Какая файловая система Linux будет в нашем повествовании финальной? Мы поведем речь о Zettabyte File System. Разработчиком явилась корпорация Sun Microsystems. Надо сказать, что первоначально данная файловая система разрабатывалась для небезызвестной в 2005 году операционной структуры "Солярис".

Давайте остановимся на отличительных особенностях разработки:

  • Отсутствие как таковой фрагментации информации.
  • Наличие возможностей управления снапшотами и пулами хранения.
  • Варьируемые размеры блоков.
  • Наличие 64-разрядного механизма контрольных сумм.
  • Самая главная отличительная возможность: способность к адресации 128 бит данных.

Что касается непосредственно "Линукс", здесь разработка может применяться посредством FUSE.

Основы работы с утилитой fsck

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

Если корневой раздел поврежден, то утилиту запускают с внешнего носителя (например, с диска). В ином случае система включается в режиме восстановления. Затем утилита запускается с корневого раздела.

Как выполнить проверку файловой системы Linux? Первым делом нужно познакомиться с полезными функциями утилиты:

  • Не выполнять следующую версию fsck для жесткого диска, пока данный не завершит свою работу.
  • Определение пользователем типов файловых систем, нуждающихся в проверке. Устройство указывать необязательно, так как проверку можно задать одной командой, обозначив необходимый тип ФС.
  • Проверить все файловые системы. Также здесь возможно задать приоритетность. Сначала, естественно, проверяется корень. Обычно применяют при старте системы.
  • Демонстрация прогресса проверки файловых структур.
  • Игнорировать проверку, если файловая система уже смонтирована.
  • Не выполнять никаких действий, показать, что проверка прошла успешно.
  • Игнорировать проверку корневого раздела файловой системы.
  • Предоставить максимально подробный вывод информации.
  • Не демонстрировать данные о самой утилите.

Также есть набор дополнительных опций, что не так часто применяются пользователями, но достаточно интересны для ознакомления:

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

Проверка файловой системы "Линукс"

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

  • Проверка чистой ФС: $ sudo fsck -fy /dev/sda1.
  • Проверка всех ФС, что подключены к данному компьютеру. Помогает присоединение команды -А-. Вот как это выглядит конкретно: $ sudo fsck -A -y.
  • Если же предыдущий метод оказался бессилен (он подходит только для запуска в режиме восстановления), то рекомендуем обратиться к следующей "проверочной" комбинации: $ sudo fsck -AR -y.
  • Проверка с исключением примонтированных файловых систем: $ sudo fsck -M -y.
  • Если вам не нужна проверка всех имеющихся файловых систем, а требуется диагностика только ext4, что делать в данном случае? Предлагаем воспользоваться такой комбинацией: $ sudo fsck -A -t ext4 -y.

А вот проверку примонтированных файловых систем многие специалисты проводить не советуют. Однако если она жизненно необходима, то есть один выход. Для этого вам нужно перемонтировать ФС в специальную версию "Только для чтения". Проверка затем реализуется так: $ sudo mount -o remount,ro /dev/sdb1.

В заключение представим, как производить проверку ФС в так называемом принудительном стандарте: $ sudo fsck -fy /dev/sdb1.

Восстановление ФС

Расскажем, как восстановить файловую систему "Линукс Минт Серена".

Первым делом вам нужно загрузиться через LiveCD или же активировав режим восстановления. Утилита должна быть автоматически загружена на всех дистрибьютивах, отчего самостоятельно ее закачивать и устанавливать не нужно.

По умолчанию ФС можно обнаружить в разделе /dev/sda1. Вам нужно выполнить следующее: $ sudo fsck -y /dev/sda1. Специалисты советуют не отмечать опцию У. В противном случае система задаст вам массу вопросов, на которые требуется утвердительно отвечать.

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

Но специалисты говорят, что спешить прощаться с данными даже в этом случае не стоит. Введите следующую команду: $ sudo mkfs -t ext4 -n /dev/sda1. Система создаст новую файловую систему. Подставьте вместо ext4 ту, в которую вы отформатировали данный раздел. При этом размер блока также совпадает, чтобы прошло восстановление.

В итоге появится шесть резервных дополнительных адресов суперблоков. Файловую систему в данном случае можно попробовать восстановить, используя каждый. Представим один из вариантов восстановления: $ sudo fsck -b 98304 /dev/sda1.

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



Источник