Як відновити файлову систему в 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Насправді ця команда створює нову файлову систему. Замість ext4 підставте ту файлову систему, в яку був відформатований розділ, розмір блоку теж повинен збігатися інакше нічого не спрацює. З опцією -n ніяких змін на диск не вноситься, а тільки виводиться інформація, в тому числі про суперблоці.
Тепер у нас є шість резервних адрес суперблоков і ми можемо спробувати відновити файлову систему за допомогою кожного з них, наприклад:
$ Sudo fsck -fy / dev / sda1биті сектора
Або ще ми можемо знайти биті сектора і більше в них нічого не писати:
$ Sudo fsck -t ext4 / dev / sdb1Перевірка всіх файлових систем
За допомогою прапора -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висновки
Ось і все, тепер ви знаєте як виконується відновлення файлової системи ext4 або будь-який інший, підтримуваної в linux fsck. Якщо у вас залишилися питання, питайте в коментарях!
На десерт сьогодні відео англійською про відмінності файлових систем ext4 і xfs, як зазвичай, є титри:
- Перетворення файлової системи fat16 або fat32 в ntfs за допомогою windows xp
- Нове покоління файлової системи для windows - refs
- Огляд ext4 vs btrfs vs xfs
- Файлова система raw - що це?
- Як форматувати флешку в ntfs
- Файлова система raw або як повернути ntfs або fat32?
- Безпечне вилучення флешки, навіщо це потрібно?
- Команда convert
- Команда recover - відновлення збережених даних на пошкодженому диску.
- Типи файлових систем для linux
- Розбивка диска для установки linux
- Робота з файловою системою linux
- Відмінність fat32 від ntfs
- Відновлення видалених файлів linux
- Файлова система reiserfs
- Помилка / dev / sda2 clean files blocks при завантаженні
- Файлова система btrfs
- Файлова система xfs
- Файлова система zfs
- Файлова система linux
- Яка файлова система краще exfat або ntfs?