Восстановить загрузчик Linux в Rescue
Основной загрузчик операционных систем Linux — GRUB. Если загрузчик Linux был удален, поврежден или перестал работать после замены диска, вы можете восстановить загрузчик. Для этого загрузите сервер в режиме Rescue, смонтируйте основные разделы аналогично тому, как они смонтированы в основной системе, и установите загрузчик GRUB.
Разметка диска без программного RAID
Разметка диска с программным RAID
-
Загрузите сервер в режиме восстановления и диагностики Rescue.
-
Определите режим загрузки ОС:
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"
В ответе появится информация о режиме загрузки ОС —
BIOS
илиUEFI
. -
Выведите информацию о разделах на доступных дисках:
lsblk -o +FSTYPE
В ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS FSTYPE
sda 8:0 0 25G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 512M 0 part vfat
├─sda3 8:2 0 1G 0 part ext4
└─sda4 8:3 0 23,5G 0 part ext4
sdb 8:16 0 8G 0 disk
├─sdb1 8:17 0 4G 0 part ext4
└─sdb2 8:20 0 4G 0 part xfsЗдесь
sda1
,sda2
,sda3
,sda4
,sdb1
,sdb2
— разделы на дисках. В вашей ОС имена разделов могут отличаться. -
Определите разделы, которые нужно монтировать:
- корневой раздел
/
— обычно это самый большой раздел на диске, в примере на шаге 3 это разделsda4
; - загрузочный раздел
/boot
— обычно это раздел с файловой системой ext4 и размером 512 МБ — 1 ГБ. В примере на шаге 3 это разделsda3
; - раздел EFI
/boot/efi
— используется при загрузке ОС в режиме UEFI. Это раздел с файловой системой vfat. В примере на шаге 3 это разделsda2
.
- корневой раздел
-
Смонтируйте корневую файловую систему в директорию
/mnt
:mount /dev/<system_partition> /mnt
Укажите
<system_partition>
— корневой раздел/
, который вы выбрали на шаге 4, в примере этоsda4
. -
Примонтируйте загрузочный раздел:
mount /dev/<boot_partition> /mnt/boot
Укажите
<boot_partition>
— загрузочный раздел/boot
на диске, который вы выбрали на шаге 4, в примере этоsda3
. -
Если используется UEFI-загрузчик ОС, примонтируйте раздел EFI:
mount /dev/<efi_partition> /mnt/boot/efi
Укажите
<efi_partition>
— раздел EFI/boot/efi
, который вы выбрали на шаге 4, в примере этоsda2
. -
Смонтируйте служебные файловые системы:
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount -t devpts devpts /mnt/dev/pts -
Подключитесь к окружению:
chroot /mnt /bin/bash
-
Экспортируйте переменную PATH:
export export PATH=/usr/sbin:/usr/bin:/sbin:/bin:$PATH
-
Установите загрузчик GRUB. Команда зависит от загрузчика ОС, который вы определили на шаге 2:
- UEFI:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
- BIOS:
grub-install /dev/<disk>
Укажите
<disk>
— системный диск, на котором установлена ОС и расположен корневой раздел/
, в примере на шаге 3 этоsda
. -
Создайте файл конфигурации GRUB:
/sbin/grub-mkconfig -o /boot/grub/grub.cfg
-
После завершения работ выйдите из окружения:
exit
-
Размонтируйте файловую систему:
umount /dev/<system_partition> /mnt
Укажите
<system_partition>
— корневой раздел/
, который вы смонтировали на шаге 5, в примере этоsda4
.
-
Загрузите сервер в режиме восстановления и диагностики Rescue.
-
Определите режим загрузки ОС:
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"
В ответе появится информация о режиме загрузки ОС —
BIOS
илиUEFI
. -
Проверьте, определила ли система RAID-массивы, для этого в ыведите информацию о разделах на доступных дисках:
lsblk -o +FSTYPE
В ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT FSTYPE
sda 8:0 0 447.6G 0 disk
├─sda1 8:1 0 512M 0 part vfat
├─sda2 8:2 0 500M 0 part
│ └─md0 9:0 0 500M 0 raid1 ext4
└─sda3 8:3 0 446.6G 0 part
└─md1 9:1 0 446.6G 0 raid1 ext4
sdb 8:16 0 447.6G 0 disk
├─sdb1 8:17 0 512M 0 part
├─sdb2 8:18 0 500M 0 part
│ └─md0 9:0 0 500M 0 raid1 ext4
└─sdb3 8:19 0 446.6G 0 part
└─md1 9:1 0 446.6G 0 raid1 ext4Здесь
md0
,md1
— RAID-массивы на разделах дисков. В вашей ОС имена RAID-массивов могут отличаться. -
Если на шаге 3 в выводе
lsblk
есть RAID-массивы, пропустите этот шаг. Если RAID-массивы отсутствуют, запустите сборку RAID-массивов:mdadm --assemble --scan
-
Выведите информацию о разделах на доступных дисках:
lsblk -o +FSTYPE
В ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT FSTYPE
sda 8:0 0 447.6G 0 disk
├─sda1 8:1 0 512M 0 part vfat
├─sda2 8:2 0 500M 0 part
│ └─md0 9:0 0 500M 0 raid1 ext4
└─sda3 8:3 0 446.6G 0 part
└─md1 9:1 0 446.6G 0 raid1 ext4
sdb 8:16 0 447.6G 0 disk
├─sdb1 8:17 0 512M 0 part
├─sdb2 8:18 0 500M 0 part
│ └─md0 9:0 0 500M 0 raid1 ext4
└─sdb3 8:19 0 446.6G 0 part
└─md1 9:1 0 446.6G 0 raid1 ext4Здесь
md0
,md1
— RAID-массивы на разделах дисков. В вашей ОС имена RAID-массивов могут отличаться. -
Определите RAID-разделы, которые нужно монтировать:
- корневой RAID-раздел
/
— обычно это самый большой раздел на диске, в примере на шаге 5 это массивmd1
; - загрузочный RAID-раздел
/boot
— обычно это раздел с файловой системой ext4 и размером 512 МБ — 1 ГБ. В примере на шаге 5 это массивmd0
; - раздел EFI
/boot/efi
— используется при загрузке ОС в режиме UEFI. Это раздел с файловой системой vfat. В примере на шаге 5 это разделsda1
и, если раздел EFI был клонирован на второй диск,sdb1
.
- корневой RAID-раздел
-
Смонтируйте корневую файловую систему в директорию
/mnt
:mount /dev/<raid_array> /mnt
Здесь
<system_raid_array>
— корневой RAID-раздел, который вы выбрали на шаге 6, в примере этоmd1
. -
Примонтируйте загрузочный RAID-раздел:
mount /dev/<boot_partition> /mnt/boot
Укажите
<boot_raid_array>
— загрузочный RAID-массив/boot
, который вы выбрали на шаге 6, в примере этоmd0
. -
Если используется UEFI-загрузчик ОС, примонтируйте раздел EFI:
mount /dev/<efi_partition> /mnt/boot/efi
Укажите
<efi_partition>
— раздел EFI/boot/efi
, который вы выбрали на шаге 6, в примере этоsda1
. -
Смонтируйте служебные файловые системы:
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount -t devpts devpts /mnt/dev/pts -
Подключитесь к окружению:
chroot /mnt /bin/bash
-
Экспортируйте переменную PATH:
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
-
Установите загрузчик GRUB. Команда зависит от загрузчика ОС, который вы определили на шаге 2:
- UEFI:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
- BIOS — установите загрузчик на каждый диск, с которого будет загружаться ОС:
grub-install /dev/<disk_1>
grub-install /dev/<disk_2>Укажите
<disk_1>
,<disk_2>
— системные диски, на которых установлена ОС и расположен корневой раздел/
, в примере на шаге 5 этоsda
иsdb
. В зависимости от количества устройств в RAID может быть больше дисков. -
Создайте файл конфигурации GRUB:
/sbin/grub-mkconfig -o /boot/grub/grub.cfg
-
После завершения работ выйдите из окружения:
exit
-
Если на вашей системе только один раздел EFI, пропустите этот шаг. Если на вашей системе раздел EFI клонирован на несколько дисков, установите загрузчик GRUB на каждый диск:
16.1. Размонтируйте раздел EFI:
unmount /mnt/boot/efi
16.2. Примонтируйте раздел EFI:
mount /dev/<efi_partition_2> /mnt/efi2
Укажите
<efi_partition_2>
— раздел EFI на втором диске, в примере на шаге 5 этоsdb1
.16.3. Смонтируйте служебные файловые системы:
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount -t devpts devpts /mnt/dev/pts16.4. Подключитесь к окружению:
chroot /mnt /bin/bash
16.5. Установите загрузчик GRUB:
grub-install --target=x86_64-efi --efi-directory=/efi2 --bootloader-id=GRUB
16.6. Создайте файл конфигурации GRUB:
/sbin/grub-mkconfig -o /boot/grub/grub.cfg
16.7. После завершения работ выйдите из окружения:
exit
-
Размонтируйте файловую систему:
umount /dev/<system_raid_array> /mnt
Укажите
<system_raid_array>
— корневой RAID-раздел/
, который вы смонтировали на шаге 7, в примере этоmd1
.