Здравствуйте, уважаемые читатели моего блога!
Не так давно я провёл обзор этапа установки операционной системы Astra Linux 1.8 (ссылка), а вчера уже оценил на практике удобство его использования для сброса паролей.
Сегодня я покажу, насколько это стало проще, чем было раньше.
Помимо сброса паролей мы разберем порядок восстановления системы после неудачного обновления (в частности – если обновление было прервано, пакеты не установились до конца, образ начальной загрузки ядра повреждён), а также в случае повреждения загрузчика GRUB.
Не имеет значения, что повреждённая система (система с забытым паролем) младше, чем 1.8 (например, недавно я сбрасывал пароль на старой доброй Astra Linux SE 1.5, где активировали блокировку пользователей после устаревания пароля, а пользователю-администратору установили срок действия пароля в 90 суток – не надо так).
Напоминаю, что если Вам помогла эта статья, Вы можете помочь мне развивать этот сайт (хотя бы оплачивая аренду сервера). Для этого введите любую сумму в окно ниже и нажмите поддержать (принимаются любые виды оплаты).
Как создать загрузочную флешку и загрузиться с неё на компьютере, я описывал ранее (ссылка). Перейдём сразу к работе с LiveCD, после его загрузки мы увидим рабочий стол Astra Linux 1.8.
Сброс забытого пароля
Откроем консоль комбинацией клавиш WIN + T, либо перейдём в “Пуск – инструменты – терминал”.
В консоли введём команду:
lsblk -o +FSTYPE
В выводе найдём корневой раздел операционной системы. Устройство /dev/sda – это наша загрузочная флешка, на неё не смотрим. Нас интересует устройство /dev/sdb.
В большинстве случаев корневой раздел будет с файловой системой ext4, такой раздел будет один (если в ходе установки всё устанавливалось на один раздел), либо таких разделов будет несколько, но корневой будет размером от 20 Гб, и в большинстве случаев первый в списке.
Так как я работаю с виртуальной машиной – в моём случае такой раздел один и это /dev/sdb1.
Далее нам необходимо открыть консоль с правами суперпользователя и монтировать раздел /dev/sdb1 в директорию /mnt, для этого выполним команды:
sudo su
mount /dev/sdb1 /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/
Копирование установочного диска
Монтируем установочный диск с 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
Далее зайдём в систему в режиме chroot и обновим конфигурационный файл grub:
chroot /mnt
update-grub
Перезагрузим систему и проверим её работоспособность.
На этом я прощаюсь с Вами, до новых встреч!