Восстановить загрузчик ОС
Примечание
Данная инструкция применима к серверам с операционными системами 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