Здравствуйте, уважаемые читатели моего блога!
Пока я был в отпуске, у меня появилось время для написания новых статей, поэтому я с удовольствием продолжаю делиться с Вами опытом устранения типовых проблем при эксплуатации операционной системы Astra Lunux.
И сегодня мы поговорим о проблеме повреждения файловой системы. Выглядеть это может следующим образом — компьютер зависает, пользователь перезагружает его «с кнопки» и система перестаёт загружаться.
Если составить рейтинг среди проблем, которые я устранял в своей практике, эта займёт первое место по частоте случаев. Дело в старом парке компьютеров и частом отключении электроэнергии — к сожалению устранить её без соответствующих финансовых ассигнований невозможно.
В старых версиях операционной системы (например Astra Linux SE 1.5) к проблеме повреждения файловой системы добавлялась проблема с временем из будущего — это когда файловая система была создана, например, в 2059 г. из-за ошибки установленной даты. Потом кто-то меняет время на актуальное, и система больше не загружается. Неприятная проблема, которая устранена из коробки в Astra Linux SE 1.6 и старше. Если Вы столкнулись с данной проблемой, эта статья также поможет её решить.
Спонсор сегодняшнего наглядного пособия — мой коллега из другого филиала. Прислав мне пару фотографий, он попросил помощи в решении проблемы.
Ввиду того, что на фотографиях товарища монитор такой пыльный, что стыдно за нашу организацию, я принял решение изложить симптомы ошибки текстом.
Итак, на экране с загрузкой появляется сообщение:
fsckd-cancel-msg: Press Ctrl+C to cancel all filesystem checks in progress
Если нажать ESC, вы сможете увидеть следующие строки:
You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or ^D to try again to boot into default mode.
Cannot open access to console, the root account is locked. See sulogin(8) man page for more detalis.
Press Enter to continue.
Я рекомендую перезагрузить компьютер и на экране загрузки (три точки на чёрном фоне) сразу нажать ESC, чтобы увидеть, какое блочное устройство не прошло проверку fsck.
Порядок действий аналогичен сбросу пароля, только файловые системы так и остаются в режиме только для чтения.
Зайти в однопользовательский режим проще всего через grub, но если Вы забыли пароль, можно воспользоваться установочным диском. Если и диска у Вас нет, можно подключить диск с повреждённой файловой системой к другому компьютеру с ОС «Astra Linux» (например, вместо CD-ROM’a).
Подготовка к восстановлению файловой системы через GRUB.
Внимание!
Если логин и пароль от загрузчика не подходят, но есть установочный диск (или флешка) — пропустите данный раздел и руководствуйтесь «Подготовкой к восстановлению файловой системы с установочного носителя».
Для начала перезагрузим компьютер и дождёмся появления загрузчика (если загрузчик не появляется — попробуйте нажать ESC).
Выберем ядро generic и нажмём клавишу «e».
Введите логин и пароль от загрузчика Grub.
Найдите строку, начинающуюся на linux, и добавьте в её конец параметр init=/bin/bash — таким образом, после загрузки образа начальной загрузки будет запущена командная оболочка.
Далее необходимо нажать F10.
В результате загрузки Вы получите доступ к командной строке, запущенной пользователем root. Файловая система находится в режиме «read only» — это нам и нужно.
Переходите к разделу «Восстановление файловой системы».
Подготовка к восстановлению файловой системы с установочного носителя.
Самое сложное, что Вам нужно сделать — это загрузиться с диска или флешки. Так как версии BIOS у всех разные, я не смогу описать точный порядок действий, единственное, что могу посоветовать – это нажать клавишу F12 и выбрать в перечне устройств CD/DVD-ROM или флеш-носитель. Если не работает, используйте Delete, F2 или F1.
Вне зависимости от того, какая у Вас версия Astra linux SE – 1.5, 1.6, 1.7, нужно выбрать «Режим восстановления».
После появления «Лицензионного соглашения» сразу нажмите Ctrl + F2. Появится надпись:
Please press Enter to activate this console.
Нажмите Enter — система готова к восстановлению, переходим к следующему разделу.
Восстановление файловой системы.
Далее выполним команду fdisk, чтобы посмотреть, какие разделы присутствуют в системе (если Вы уже знаете проблемный раздел, команду можно не выполнять):
fdisk -l
Хочу отметить, что вывод fdisk я демонстрирую с виртуальной машины. Не нужно устанавливать реальные системы в один раздел (статья по установке операционной системы — ссылка).
Далее нам необходимо выполнить команду форсированной проверки и устранения ошибок fsck по отношению к проблемному разделу.
fsck.ext4 -fy /dev/sda1
Если Вы новичок, можете выполнить команду выше ко всем разделам подряд из столбца «Устр-во» (ничего страшного не произойдёт). То есть Вы просто меняете /dev/sda1 с команды ваше на /dev/sda2 и нажимаете Enter, потом на /dev/sda3 и так далее (по числу разделов fdisk).
Если раздел в порядке, вывод будет следующего вида:
/dev/sda1: recovering journal
/dev/sda1: clean, 9140/2445984 files, 982985/9764864 blocks
А если раздел был повреждён, на экран будут выводиться строки (чем больше повреждение, тем больше строк). В самом конце появятся строки вида:
/dev/sda1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda1: 9140/2445984 files (2.3 % non-contiguous), 982985/9764864 blocks
Вот пример вывода из реальной операционной системы, файловая система которой была повреждена:
Если вы восстанавливали файловую систему используя GRUB — выполните команду:
exec init 5
Если вы восстанавливали файловую систему, используя установочный диск — просто перезагрузите систему командой reboot.
После этого можно оценить масштабы бедствия — это может быть повреждённая учётная запись почты, слетевший профиль пользователя или служебные документы (вы же организовали резервное копирование? 🙂 )
К слову, если повредился профиль Вы можете восстановить его по этой статье — ссылка.
Всех благ Вам и до новых встреч.