Оглавление |
---|
Информация | ||
---|---|---|
| ||
Информация | ||
---|---|---|
| ||
|
Общие сведения
В данной статье рассматривается способ восстановления загрузочных файлов (содержимого каталога /boot) в ситуации, когда из-за их повреждения нормальная загрузка ОС стала невозможной. Восстановление включает в себя следующие этапы:
- загрузка с инсталляционного диска с последующим переходом в "режим восстановления";
- необязательное резервное копирование содержимого каталога /boot;
- подключение к каталогу /boot временной файловой системы, имеющей свободное место;
- перегенерация файла initrd;
- замена старого файла на новый;
Типичная ситуация, в которой могут потребоваться такие действия: неудачно завершившееся обновление при недостатке места в дисковом разделе /boot. После такого неудачного обновления система перестает загружаться и, как правило, выводит ошибку:
Блок кода |
---|
- - - [ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknow-block(0,0) |
Возможны и другие ошибки.
Возникновения ошибки нехватки места характерно для систем, установленных с использованием LVM, поэтому далее в примере рассматриваются действия с системой, установленной с использованием LVM. Действия для других вариантов установки аналогичны, отличаться будут только названия дисковых разделов.
Загрузка в режиме восстановления
Для загрузки в режиме восстановления требуется инсталляционный диск (USB-накопитель) ОС Astra Linux Special Edition очередное обновление 1.6.
Порядок действий:
- Вставить инсталляционный диск в привод;
- Загрузиться с инсталляционного диска;
- Выбрать "Режим восстановления":
- Проследовать по пунктам (нажимая Enter) до выбора корневой файловой системы, где выбрать ..../root:
- Затем выбрать запуск оболочки так же в /dev/16-lvm-vg/root:
После выполнения указанных действий должен загрузиться терминал с синим фоном: - Нажать CTRL+ALT+F2 и нажать Enter, после чего должен открыться терминал на черном фоне:
В терминале на темном фоне выполнить команду :
Command chroot /target
.Резервное копирование каталога /boot
Резервное копирование каталога /boot не обязательно.
Копирование выполняется в каталог /home, в папку boot-backup, в случае успешного восстановления загрузки системы не забудьте его удалить.
Для создания резервной копии выполните в терминале команду:
Command |
---|
cp -r /boot/ /home/boot-backup |
Дождитесь завершение работы команды.
Освобождение места в каталоге /boot
Проверить содержимое каталога /boot:
Command | ||
---|---|---|
| ||
итого 226516 |
В примере выше видно, что в каталоге /boot хранятся две версии ядра - 4.15.3-1 и 4.15.3-2, и каждая версия представлена в двух вариантах - generic и hardened. Удалить ненужные файлы можно командой rm. Например, если не используется ядро hardened, то удалить все файлы, относящиеся к этому ядру:
Command |
---|
rm /boot/*-4.15.3-1-hardened |
Создание initrd
Новый initrd создать командой:
Command |
---|
update-initramfs -t -u -k 4.15.3-2-generic |
При этом вместо номера 4.15.3-2 использовать номер имеющегося в системе ядра, которое предполагается использовать.
Необязательное создание гарантированного свободного места
Монтирование tmpfs в каталог /boot
Для того, чтобы смонтировать в каталог /boot чистую файловую систему, имеющую свободное место, выполните команду:Command |
---|
mount -t tmpfs none /boot |
После выполнения монтирования старое содержимое каталога /boot станет недоступно, и каталог будет представляться пустым.
Создание и перемещение initrd
Новый initrd в примонтированной файловой системе создать такой же командой:
Command |
---|
update-initramfs -t -u -k 4.15.3-2-generic |
При этом вместо номера 4.15.3-2 использовать номер имеющегося в системе ядра, которое предполагается загружать в дальнейшем.
Так как после отмонтирования времнной файловой системы всё её содержимое будет утеряно, нужно сохранить новый сформированный initrd, например, скопировав его в каталог /home командой:
Command |
---|
cp -r /boot/initrd.img-4.15.3-2-generic /home |
Замена initrd
Отмонтировать tmpfs от каталога /boot командой:
Command |
---|
umount /boot |
После отмонтирования tmpfs старое содержимое каталога /boot станет вновь доступно.
Заменить старый файл initrd.img-4.15.3-2-generic на новый командой:
Command |
---|
cp -r /home/initrd.img-4.15.3-2-generic /boot/ |
Если для копирования недостаточно места - повторить удаление ненужных файлов, после чего повторить операцию копирования.
Перезагрузка системы
После замены файла initrd обязательно выполнить команду:
Command |
---|
update-grub |
Выйти из режима восстановления :
Command |
---|
exit |
Извлечь диск из привода и перезагрузить систему командой:
Command |
---|
reboot |
После выполнения указанных операция система должна загрузиться штатно.
Действия после успешной перезагрузки
Дальнейший порядок действия зависит от причины, вызвавшей неисправность.
В частности, в случае незавершённой установки обновления, следует завершить установку обновления командой:
Command |
---|
sudo apt -f install |