10 простых способов восстановить вашу систему Linux

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

Основы работы с 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.
Читайте также:  Онлайн-сервисы для проверки пунктуации (часть 2)

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

1: Восстановление с помощью ядра fsck

Примечание: Новые дистрибутивы (FreeBSD, CoreOS, Debian 8 и Ubuntu ) не могут использовать ядро восстановления. Если вы пользуетесь одним из этих дистрибутивов, переходите к разделу «Восстановление с помощью ISO».

Первое, что нужно сделать, чтобы восстановить систему после повреждения, — смонтировать ядро восстановления, которое позволит запустить утилиту проверки файловой системы fsck. Это может помочь найти и исправить ошибки в файловой системе.

Запуск fsck

Сначала отключите сервер. Для этого введите в командную строку:

Также это можно сделать с помощью панели управления. Нажмите Power Off или аналогичный вариант.

Отключив сервер, перейдите в настройки и откройте раздел восстановления. Запишите, какое ядро использует сервер, чтобы вернуть все на места после восстановления. Затем смонтируйте ядро восстановления (кнопка Mount Recovery Kernel или подобная).

Изменив ядро, запустите сервер.

Затем подключитесь к серверу через консоль. На данный момент SSH-доступ к серверу, скорее всего, отсутствует, поскольку сервер использует ядро восстановления.

В текущем окне откроется сессия терминала, и вы получите доступ к среде Linux.

Теперь нужно запустить fsck, чтобы найти и исправить ошибки в файловой системе.

Способ вызова этой команды будет зависеть от того, поддерживает ли сервер VirtIO. Если да, то жесткий диск сервера, скорее всего — /dev/vda или /dev/vda1 (в зависимости от системы). Вы можете уточнить это, набрав:

Если сервер не поддерживает VirtIO, жесткий диск находится в /dev/sda.

Итак, вам нужно запустить команду:

fsck -yf /dev/vda

fsck -yf /dev/vda1

Утилита fsck запустится и попытается обнаружить ошибки. После этого можно снова отключить сервер.

Вернитесь в панель управления, откройте настройки и найдите параметры ядра. В выпадающем меню выберите ядро, которое использовалось ранее.

Проверка результатов

Изменив ядро, запустите сервер и подключитесь к нему через консоль.

Если сервер раньше не запускался, а теперь запустился – это хороший знак.

Если ранее отдельные команды предупреждали вас о возможном повреждении, попробуйте снова запустить эти операции, чтобы убедиться, что они выполняются без предупреждений.

Читайте также:  71 команда Linux на все случаи жизни. Ну почти

Также важно проверить каталог /lost+found. В него fsck помещает частично восстановленные файлы.

Иногда fsck может восстановить данные файла, но не может найти ссылку на файл в файловой системе. По сути, это файл без имени. В такой ситуации fsck помещает файлы в каталог /lost+found, чтобы вы могли попытаться вручную определить, что это за файл.

Просмотрите содержимое каталога /lost+found:

cd /lost+found ls

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

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

Опции fsck

Команда Fsck должна быть запущена с привилегиями суперпользователя (root). Вы можете использовать ее с разными аргументами. Их использование зависит от вашего конкретного случая. Ниже вы увидите некоторые из наиболее важных опций:

-A — используется для проверки всех файловых систем. Список берется из /etc/fstab. -C — показывать индикатор выполнения. -l — блокирует устройство, чтобы гарантировать, что никакая другая программа не попытается использовать раздел во время проверки. -M — не проверять смонтированные файловые системы. -N — только показывать, что будет сделано — не делать никаких реальных изменений. -P — если вы хотите проверять файловые системы параллельно, включая корневую. -R — не проверять корневую файловую систему. Это полезно только вместе с ‘-A‘. -r — предоставить статистику для каждого проверяемого устройства. -T — не показывает заголовок. -t — исключительно указать типы файловых систем, которые будут проверяться. Типы могут быть разделены запятыми. -V — предоставить описание того, что делается.

Описание

fsck используется для проверки и, в случае необходимости, исправления ошибок одной или нескольких файловых систем. filesys может быть именем устройства (например, /dev/sda7), точкой монтирования этого блочного устройства (/, /mnt/sda7 и т. д.), меткой раздела или UUID-индексом. Обычно fsck параллельно проверяет данные на разных физических дисках, чтобы сократить общее время, необходимое для полной проверки всех дисков.

Если файловых систем не указано и не указана опция -A, то fsck по порядку проверит файловые системы, указанные в /etc/fstab. Это эквивалентно опции -As. Код, возвращаемый fsck, является суммой следующих условий:

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

Фактически fsck представляет собой оболочку для различных средств проверки файловой системы (). Программа для проверки конкретной системы ищется последовательно в /sbin, /etc/fs, /etc и в директориях, указанных в переменной окружения $PATH.

Читайте также:  Взлом Wi-Fi с помощью Kali Linux: записки очкастого эксперта

Запуск fsck в режиме восстановления

Запуск fsck в режиме восстановления требует еще нескольких шагов. Сначала подготовьте систему к перезагрузке. Остановите все важные службы, такие как MySQL/MariaDB и т. д., а затем перезагрузите компьютер.

Во время загрузки удерживайте нажатой клавишу Shift, чтобы отобразилось меню grub. Выберите «Advanced options».

Затем выберите «Recovery mode».

В следующем меню выберите «fsck».

Вас спросят, хотите ли вы перемонтировать вашу корневую файловую систему. Выберите «yes».

Вы должны увидеть что-то похожее на это.

Затем вы можете вернуться к нормальной загрузке, выбрав «Resume».

Тест Hetman Partition Recovery

После затирания «Суперблока» – Hetman Partition Recovery, определила тестовый раздел, распознала его имя и тип файловой системы.

Выполнив быстрый анализ результат не изменился.

Программа нашла все данные, их содержимое можно посмотреть в предпросмотре.

Всю информацию удалось восстановить.

Программа справилась с задачей даже без полного анализа с отличным результатом.

Сохранена структура, имена файлов, содержимое отображается в предпросмотре.

Второе испытание пройдено успешно.

Снимки LVM

Когда дело доходит до сохранения ценных данных, всегда полезно подумать об этом заранее. Если вы просто настраиваете свою систему Linux, стоит рассмотреть LVM (Logical Volume Manager)

как способ организации ваших жестких дисков.

Зачем? Хотя это не совсем приложение, реализация LVM в ядре Linux имеет встроенную функцию моментальных снимков. Вы можете смонтировать снимки и просмотреть их как любой другой диск или раздел, объединить несколько снимков и восстановить их для решения системных проблем. Кроме того, вы можете использовать dattobd, модуль ядра Linux, который поддерживает добавочные снимки работающей работающей системы без необходимости размонтировать разделы или перезагрузить компьютер.

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

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

Кредиты изображений: Клавиша отмены со старой компьютерной клавиатуры от , LVM Hierarchy от Linux Скриншоты через Flickr.