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

19 0 Новини високих технологій

Відразу відзначимо, що даний матеріал по більшій мірі буде теоретичним, спрямованих на новачків, на формування загального уявлення. Тому ми розглянемо загальні, найбільш важливі положення про файловій системі "Лінукс". Тонкощі роботи з якою-небудь її різновидом, безпосередні команди - це вже інша тема розмови. Наше завдання - розібратися, що це таке, як функціонує ця система.

Що це таке?

Словосполучення "файлова система" найчастіше вживається в різних контекстах. Тому на початку статті нам потрібно запобігти плутанину. Оповідаючи про файловій системі "Лінукс Мінт", ми будемо мати на увазі наступне:
  • Весь комплекс структури файлів "Лінукс", починаючи з кореня.
  • Якийсь певний формат зберігання інформації. Часті приклади: 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*2 60 -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. Тепер ви знаєте важливу інформацію про файлову систему "Лінукс", про її типи, існуючих на сьогоднішній день, сучасних і застарілих. На відміну від популярної "Віндовс", ця ОС все ж більше підходить для просунутих користувачів. Вищесказане підтверджують алгоритми перевірки відновлення файлової системи.