Восстановить загрузчик ОС
Примечание
Данная инструкция применима к серверам с операционными системами Linux, работающими в Legacy-режиме. Порядок действий для восстановления GRUB в UEFI-режиме отличается.
При возникновении на сервере BareMetal проблем с загрузчиком GRUB
Чтобы восстановить загрузчик:
-
Запустите сервер с CD-образа Rescue-CD.
В основном меню SystemRescue выберите опцию Boot SystemRescue using default options, нажмите ENTER и дождитесь загрузки операционной системы SystemRescue.
-
Посмотрите информацию об устройствах хранения (дисках и созданных на них разделах) сервера:
fdisk -l
Результат:
Disk /dev/sda: 838.36 GiB, 900185481216 bytes, 1758174768 sectors Disk model: SAMSUNG MZ7GE900 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: D79F5407-DEEC-4A1D-983F-3AC5******** Device Start End Sectors Size Type /dev/sda1 2048 614399 612352 299M BIOS boot /dev/sda2 614400 21585919 20971520 10G Linux filesystem /dev/sda3 21585920 34168831 12582912 6G Linux filesystem /dev/sda4 34168832 1732861951 1698693120 810G Linux filesystem Disk /dev/sdb: 838.36 GiB, 900185481216 bytes, 1758174768 sectors Disk model: SAMSUNG MZ7GE900 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: CDZACB4C-1618-4BAF-A6BB-D2B9******** Device Start End Sectors Size Type /dev/sdb1 2048 614399 612352 299M BIOS boot /dev/sdb2 614400 21585919 20971520 10G Linux filesystem /dev/sdb3 21585920 34168831 12582912 6G Linux filesystem /dev/sdb4 34168832 1732861951 1698693120 810G Linux filesystem Disk /dev/md127: 6 GiB, 6438256640 bytes, 12574720 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/md126: 9.99 GiB, 10729029632 bytes, 20955136 sectors = 512 bytes Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/md125: 809.88 GiB, 869596659712 bytes, 1698430976 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop: 824.97 MiB, 865046528 bytes, 1689544 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
В примере выше утилита
fdisk
вывела информацию о физических дисках (/dev/sda
и/dev/sdb
) и их разделах, а также о созданном из них RAID-массиве, содержащем три раздела:/dev/md127
,/dev/md126
и/dev/md125
.На сервере, который используется в качестве примера:
/dev/md126
— раздел/boot
;/dev/md127
— разделSWAP
;/dev/md125
— раздел/
с корневой файловой системой.
Разделы
/boot
и/
необходимо смонтировать в операционную систему SystemRescue. -
Смонтируйте разделы с корневой файловой системой и загрузочными файлами операционной системы сервера BareMetal в ОС SystemRescue:
mount /dev/md125 /mnt/ mount /dev/md126 /mnt/boot
Примечание
Если в системе нет RAID-массива, монтировать нужно непосредственно разделы физического диска (
/dev/sda1
,/dev/sda2
и т.д.).Если операционная система установлена на диск с использованием LVM
, монтировать нужно раздел/dev/mapper
.Если используется UEFI
-загрузчик, то смонтируйте также соответствующий раздел с EFI, например:mount /dev/sda3 /mnt/boot/efi
, где/dev/sda3
— раздел c EFI. -
Примонтируйте директории
/sys
,/proc
и/dev
:mount --bind /sys /mnt/sys mount --bind /proc /mnt/proc mount --bind /dev /mnt/dev
-
Создайте новую среду оболочки ОС SystemRescue с окружением в смонтированной ранее файловой системе ОС сервера BareMetal:
chroot /mnt /bin/bash
-
Если на дисках не установлен GRUB, установите его. GRUB должен быть установлен на все диски, с которых вы планируете загружать ОС сервера. Если GRUB уже установлен, переходите к следующему шагу.
Для сервера, используемого в качестве примера, GRUB необходимо установить на диски
/dev/sda
и/dev/sdb
:grub-install /dev/sda grub-install /dev/sdb
Результат:
Installing for i386-pc platform. Installation finished. No error reported.
-
Сгенерируйте файл конфигурации GRUB:
update-grub
Результат:
Sourcing file '/etc/default/grub' Sourcing file '/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/uml inuz-5.15.0-130-generic Found initrd image: /boot/initrd.img-5.15.0-130-generic Found linux image: /boot/vmlinuz-5.15.0-113-generic Found initrd image: /boot/initrd.img-5.15.0-113-generic Found linux image: /boot/vmlinuz-5.15.0-25-generic Found initrd image: /boot/initrd.img-5.15.0-25-generic Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. done
-
Выйдите из созданного окружения
chroot
:exit
-
Отключите виртуальный CD-дисковод в KVM-консоли:
- В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите на значок с изображением CD-диска.
- В открывшемся окне в секции CD/DVD Media1 нажмите кнопку Disconnect.
- Нажмите Close.
-
Перезапустите сервер:
reboot