Як відновити файлову систему в fsck

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

Але якщо живлення вимикається несподівано, частина даних втрачається, і можуть бути втрачені важливі дані, пошкоджень або призвести до самої файлової системи. У цій статті ми розглянемо як відновити файлову систему fsck, для декількох популярних файлових систем, а також поговоримо про те, як відбувається відновлення ext4.

трохи теорії

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

Сучасні файлові системи діляться на два типи - журнальованою і нежурналіруемие. Журналіуемие файлові системи записують в лог всі дії, які збираються виконати, а після виконання стирають ці записи. Це дозволяє дуже швидко зрозуміти чи була файлова система пошкоджена. Але не сильно допомагає при відновленні. Щоб відновити файлову систему linux необхідно перевірити кожен блок файлової системи і знайти пошкоджені сектора.

Для цих цілей використовується утиліта fsck. По суті, це оболонка для інших утиліт, орієнтованих на роботу тільки з тієї чи іншої файлової системою, наприклад, для fat одна утиліта, а для ext4 зовсім інша.

У більшості систем для кореневого розділу перевірка fsck запускається автоматично, але це не стосується інших розділів, а також не спрацює якщо ви відключили перевірку.

Основи роботи з fsck

У цій статті ми розглянемо ручну роботу з fsck. Можливо, вам знадобитися LiveCD носій, щоб запустити з нього утиліту, якщо кореневий розділ пошкоджений. Якщо ж ні, то система зможе завантажитися в режим відновлення і ви будете використовувати утиліту звідти. Також ви можете запустити fsck в уже завантаженої системі. Тільки для роботи потрібні права суперкористувача, тому виконуйте її через sudo.

А тепер давайте розглянемо сам синтаксис утиліти:

$ fsck [Опції] [Опціі_файловой_сістеми] [Раздел_діска]

Основні опції вказують спосіб поведінки утиліти, оболонки fsck. Розділ диска - це файл пристрою розділу в каталозі / dev, наприклад, / dev / sda1 або / dev / sda2. Опції файлової системи специфічні для кожної окремої утиліти перевірки.




А тепер давайте розглянемо корисні опції fsck:

  • -l - не виконувати інший екземпляр fsck для цього жорсткого диска, поки поточний не від`ôднаôтесь роботу. Для SSD параметр ігнорується;
  • -t - задати типи файлових систем, які потрібно перевірити. Необов`язково вказувати пристрій, можна перевірити кілька розділів однією командою, просто вказавши потрібний тип файлової системи. Це може бути сама файлова система, наприклад, ext4 або її опції в форматі opts = ro. Утиліта переглядає всі файлові системи, підключені в fstab. Якщо задати ще і розділ то до нього буде застосована перевірка саме зазначеного типу, без автовизначення;
  • -A - перевірити всі файлові системи з / etc / fstab. Ось тут застосовуються параметри перевірки файлових систем, зазначені в / etc / fstab, в тому числі і пріоритетність. В першу чергу перевіряється корінь. Зазвичай використовується при старті системи;
  • -C - показати прогрес перевірки файлової системи;
  • -M - не перевіряти, якщо файлова система змонтована;
  • -N - нічого не виконувати, показати, що перевірка завершена успішно;
  • -R - не перевіряти кореневу файлову систему;
  • -T - Більше не показувати інформацію про утиліту;
  • -V - максимально детальний висновок.

Це були глобальні опції утиліти. А тепер розглянемо опції для роботи з файловою системою, їх менше, але вони будуть більш цікаві:

  • -a - під час перевірки виправити всі виявлені помилки, без будь-яких питань. Опція застаріла і її використовувати не рекомендується;
  • -n - виконати тільки перевірку файлової системи, нічого не виправляти;
  • -r - питати перед виправленням кожної помилки, використовується за умовчанням для файлових систем ext;
  • -y - відповідає на всі питання про виправлення помилок ствердно, можна сказати, що це еквівалент a.
  • -c - знайти і занести в чорний список все биті блоки на жорсткому диску. Доступно тільки для ext3 і ext4;
  • -f - примусова перевірка файлової системи, навіть якщо по журналу вона чиста;
  • -b - задати адресу суперблоку, якщо основний був пошкоджений;
  • -p - ще один сучасний аналог опції -a, виконує перевірку і виправлення автоматично. По суті, для цієї мети можна використовувати одну з трьох опцій: p, a, y.

Тепер ми всі розібрали і ви готові виконувати відновлення файлової системи linux. Перейдемо до справи.

Як відновити файлову систему в fsck

Припустимо, ви вже завантажилися в LiveCD систему або режим відновлення. Ну, одним словом, готові до відновлення ext4 або будь-який інший пошкодженої ФС. Утиліта вже встановлена ​​за замовчуванням у всіх дистрибутивах, так що встановлювати нічого не потрібно.

Відновлення файлової системи

Якщо ваша файлова система знаходиться на розділі з адресою / dev / sda1 виконайте:

$ Sudo mkfs -t ext4 -n / dev / sda1


fsck1

Насправді ця команда створює нову файлову систему. Замість ext4 підставте ту файлову систему, в яку був відформатований розділ, розмір блоку теж повинен збігатися інакше нічого не спрацює. З опцією -n ніяких змін на диск не вноситься, а тільки виводиться інформація, в тому числі про суперблоці.

Тепер у нас є шість резервних адрес суперблоков і ми можемо спробувати відновити файлову систему за допомогою кожного з них, наприклад:

$ Sudo fsck -fy / dev / sda1

fsck4

биті сектора

Або ще ми можемо знайти биті сектора і більше в них нічого не писати:

$ Sudo fsck -t ext4 / dev / sdb1

fsck6

Перевірка всіх файлових систем

За допомогою прапора -A ви можете перевірити всі файлові системи, підключені до комп`ютера:

$ Sudo fsck -AR -y

Або виключити всі примонтировать файлові системи:

$ Sudo fsck -A -t ext4 -y

Або можна також фільтрувати по опціях монтування в / etc / fstab, наприклад, перевіримо файлові системи, які монтуються тільки для читання:

$ Sudo mount -o remount, ro / dev / sdb1

А тепер перевірка файлової системи fsck в примусовому режимі:

$ Sudo fsck -n / dev / sdb1

fsck8

висновки

Ось і все, тепер ви знаєте як виконується відновлення файлової системи ext4 або будь-який інший, підтримуваної в linux fsck. Якщо у вас залишилися питання, питайте в коментарях!

На десерт сьогодні відео англійською про відмінності файлових систем ext4 і xfs, як зазвичай, є титри:

Поділися в соціальних мережах:

Схожі
Файлова система zfsФайлова система zfs
Команда recover - відновлення збережених даних на пошкодженому диску.Команда recover - відновлення збережених даних на пошкодженому диску.
Відновлення видалених файлів linuxВідновлення видалених файлів linux
Файлова система linuxФайлова система linux
Яка файлова система краще exfat або ntfs?Яка файлова система краще exfat або ntfs?
Розбивка диска для установки linuxРозбивка диска для установки linux
Безпечне вилучення флешки, навіщо це потрібно?Безпечне вилучення флешки, навіщо це потрібно?
Нове покоління файлової системи для windows - refsНове покоління файлової системи для windows - refs
Перетворення файлової системи fat16 або fat32 в ntfs за допомогою windows xpПеретворення файлової системи fat16 або fat32 в ntfs за допомогою windows xp
Огляд ext4 vs btrfs vs xfsОгляд ext4 vs btrfs vs xfs
» » Як відновити файлову систему в fsck