Как восстановиться после повреждения файловой системы, используя однопользовательский режим FreeBSD

Вступление

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

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

Важные соображения и риски

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

Хотя такие варианты восстановления, как fsck, часто бывают полезны, нет гарантии, что они будут работать правильно, а успех зачастую зависит от удачи. Операция fsck может иногда вызывать повреждение данных на активных дисках. Проблемы все еще могут возникать в случаях серьезного повреждения, поэтому рассмотрим эти последние средства для восстановления данных.

Загрузка в однопользовательском режиме

Чтобы загрузить каплю в однопользовательском режиме, вы можете запустить следующую команду:

sudo nextboot -o "-s" -k kernel

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

sudo reboot

После перезагрузки ваша капелька больше не будет доступна по сети через ssh. Теперь вам нужно будет получить доступ к капле через консоль на панели управления. Как только перезагрузка завершится, вы окажетесь в очень минимальной оболочке, подобной показанной ниже:

Изображение: HTTPS: //assets.digitalocean.com/articles/freebsd-single-user/single_user_start.png [изображение]

Когда вы видите строку:

Enter full pathname of shell or RETURN for /bin/sh:

Вы можете нажать + Enter, чтобы начать сеанс оболочки.

Альтернативный метод

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

Сначала на панели управления нажмите кнопку включения / выключения, чтобы перезагрузить капельку.

Сразу после этого откройте консоль вашей капли. Через несколько секунд вы должны увидеть такой экран:

Изображение: HTTPS: //assets.digitalocean.com/articles/freebsd-single-user/boot-menu.png [изображение]

В этом меню выберите пункт + 2 + и нажмите Enter, чтобы продолжить.

Выполнение проверки файловой системы

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

cat /etc/fstab

Вывод, который вы видите, должен быть похож на это:

Изображение: HTTPS: //assets.digitalocean.com/articles/freebsd-single-user/fstab.png [изображение]

Первый элемент в списке показывает файловую систему ufs, которую мы ищем. Теперь вы можете выполнить следующую команду для проверки файловой системы на этом диске.

fsck -yf /dev/gpt/rootfs

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

После завершения проверки файловой системы вы можете перезагрузить дроплет с помощью команды + reboot +, чтобы выйти из однопользовательского режима и перезапустить дроплет в обычном (многопользовательском) режиме.

Подключитесь к вашей капле с помощью SSH-клиента. Если ваша дроплет отвечает на ваше ssh-соединение, а раньше этого не было, то это хороший знак. Если раньше вы сталкивались с конкретными проблемами, которые предупреждали вас о возможности повреждения, попробуйте снова выполнить эти операции, чтобы убедиться в их успешности.

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

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

После запуска fsck посмотрите, было ли что-либо помещено в этот каталог. Поскольку каталог lost + found доступен только пользователю root, мы сначала перейдем к учетной записи root с помощью команды + sudo su +:

sudo su
cd /lost+found
ls

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

Если ваша файловая система все еще заметно повреждена или происходит сбой загрузки при переходе обратно в многопользовательский режим, лучшим вариантом может быть https://www.digitalocean.com/community/tutorials/recovering-files-from-a- взломанный-использование-восстановления-iso [используйте ISO восстановления, чтобы восстановить любые необходимые файлы]. Для этого вам нужно будет open билет с командой поддержки, чтобы они могли загрузить вашу каплю в среду восстановления.

Заключение

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

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