Здравствуйте, уважаемые читатели моего блога!

Не так давно я провёл обзор этапа установки операционной системы Astra Linux 1.8 (ссылка), а вчера уже оценил на практике удобство его использования для сброса паролей.

Сегодня я покажу, насколько это стало проще, чем было раньше.

Помимо сброса паролей мы разберем порядок восстановления системы после неудачного обновления (в частности – если обновление было прервано, пакеты не установились до конца, образ начальной загрузки ядра повреждён), а также в случае повреждения загрузчика GRUB.

Не имеет значения, что повреждённая система (система с забытым паролем) младше, чем 1.8 (например, недавно я сбрасывал пароль на старой доброй Astra Linux SE 1.5, где активировали блокировку пользователей после устаревания пароля, а пользователю-администратору установили срок действия пароля в 90 суток – не надо так).

Напоминаю, что если Вам помогла эта статья, Вы можете помочь мне развивать этот сайт (хотя бы оплачивая аренду сервера). Для этого введите любую сумму в окно ниже и нажмите поддержать (принимаются любые виды оплаты).


Как создать загрузочную флешку и загрузиться с неё на компьютере, я описывал ранее (ссылка). Перейдём сразу к работе с LiveCD, после его загрузки мы увидим рабочий стол Astra Linux 1.8.

Astra Linux Desktop
Рабочий стол LiveCD Astra Linux 1.8

Сброс забытого пароля

Откроем консоль комбинацией клавиш WIN + T, либо перейдём в “Пуск – инструменты – терминал”.

Открыть терминал через "Пуск"
Открыть терминал через “Пуск”

В консоли введём команду:

lsblk -o +FSTYPE

В выводе найдём корневой раздел операционной системы. Устройство /dev/sda – это наша загрузочная флешка, на неё не смотрим. Нас интересует устройство /dev/sdb.

В большинстве случаев корневой раздел будет с файловой системой ext4, такой раздел будет один (если в ходе установки всё устанавливалось на один раздел), либо таких разделов будет несколько, но корневой будет размером от 20 Гб, и в большинстве случаев первый в списке.

Так как я работаю с виртуальной машиной – в моём случае такой раздел один и это /dev/sdb1.

Корневой раздел /dev/sdb1
Корневой раздел найден

Далее нам необходимо открыть консоль с правами суперпользователя и монтировать раздел /dev/sdb1 в директорию /mnt, для этого выполним команды:

sudo su
mount /dev/sdb1 /mnt
Монтируем корневой раздел
Монтируем корневой раздел к директории mnt

Осталось отредактировать файл с /etc/passwd и отключить проверку пароля пользователя.

Откроем файл /etc/passwd в редакторе mcedit:

mcedit /mnt/etc/passwd

Удалим символ “х” в строке Вашего пользователя (в моём примере user) и сохраним результат, нажав клавишу F10 (на вопрос о сохранении ответим “Да”).

Собственно, на этом сброс пароля завершён, можно загрузиться и зайти без пароля.

Восстановление после прерванного обновления

В случае если проблемы с обновлением Astra Linux вызваны тем, что процесс был прерван, LiveCD Astra Linux 1.8 так же может помочь. Выполняем манипуляции из раздела “Сброс забытого пароля”, кроме редактирования файла /mnt/etc/passwd.

Вход в повреждённую систему (chroot)

Далее выполняем команды монтирования каталогов proc, dev, sys – они понадобятся для работы в режиме chroot.

mount --bind /dev/ /mnt/dev/
mount --bind /sys/ /mnt/sys/
mount --bind /proc/ /mnt/proc/

Если в вашей системе директории var, tmp, home это отдельные разделы – монтируйте и их, например:

mount /dev/sda5 /mnt/home
mount /dev/sda6 /mnt/var
mount /dev/sda7 /mnt/tmp

Выполним chroot к корневому каталогу повреждённой системы:

chroot /mnt/
Вход в неудачно обновлённую систему с помощью chroot
Вход в неудачно обновлённую систему с помощью chroot

Копирование установочного диска

Монтируем установочный диск с Astra Linux.

mount /dev/sr0 /mnt/

Скопируем содержимое установочного диска в корневую систему. Если все директории в корневом разделе, то местоположение каталога роли не играет. Если home на отдельном разделе, используйте его.

cp –R /mnt/ /home/dist

Извлечём установочный диск Astra Linux.

umount /dev/sr0

Обратите внимание, если обновление и диск установки это один диск (обычно выглядит это так – installation-1.7.5.9-16.10.23_16.58.iso, либо installation-1.8.1.12-29.08.24_15.37.iso), то второго диска у Вас не будет и раздел “копирование диска с обновлением” необходимо пропустить.

Копирование диска с обновлением

Вставим диск с обновлением, актуальное обновление доступно на официальном сайте – ссылка. Монтируем диск.

mount /dev/sr0 /mnt/

Скопируем файлы обновления в основную систему.

cp –R /mnt/ /home/update

Отредактируем файл sources.list, указав расположение каталогов с репозиториями.

mcedit /etc/apt/sources.list

Извлечём диск обновления Astra Linux.

umount /dev/sr0

Обновление /etc/apt/sources.list

Отроем sources.list в редакторе mcedit.

mcedit /etc/apt/sources.list

Приведём файл sources.list в зависимости от версии ОС к необходимому виду.

Пример для Astra Linux 1.6, если диска два:

deb file:/home/dist smolensk contrib main non-free
deb file:/home/update smolensk contrib main non-free

Пример для Astra Linux 1.7, если диск один:

deb file:/home/dist 1.7_x86-64 main contrib non-free

Сохраним изменения клавишей F10 (и на вопрос о сохранении ответим “Да”).

Завершение обновления

Обновим список пакетов.

apt update

Форсированно продолжим установку.

apt -f install
Обновление системы
Обновление системы

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

Обновление образа начальной загрузки

Обновление образа начальной загрузки занимает длительное время, если его прервать в неудачный момент после перезагрузки система не загрузится.

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

update-initramfs -k all -u
Обновление образа начальной загрузки системы

После завершения обновления, можно перезагрузить систему и проверить её работоспособность.

Восстановление GRUB

Вы также можете восстановить GRUB в случае, если он был повреждён или случайно удалён.

Определив корневой раздел (как это сделать, я написал в самом начале этой статьи, в разделе “Сброс забытого пароля”).

Выполним команды монтирования корневой файловой системы и каталогов proc, dev, sys:

mount /dev/sdb1 /mnt/
mount --bind /dev/ /mnt/dev/
mount --bind /sys/ /mnt/sys/
mount --bind /proc/ /mnt/proc/

И установим grub с помощью команды:

grub-install --root-directory=/mnt /dev/sdb
Установка GRUB
Установка GRUB

Далее зайдём в систему в режиме chroot и обновим конфигурационный файл grub:

chroot /mnt
update-grub

Перезагрузим систему и проверим её работоспособность.

На этом я прощаюсь с Вами, до новых встреч!

Александр Марухин
sandro331k@yandex.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *