Восстановить загрузчик 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 -t devpts devpts /mnt/dev/pts
umount --bind /dev /mnt/dev
umount -t sysfs /sys /mnt/sys
umount -t proc /proc /mnt/proc -
Размонтируйте файловую систему:
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/<system_raid_array> /mntЗдесь
<system_raid_array>— корневой RAID-раздел, который вы выбрали на шаге 6, в примере этоmd1. -
Примонтируйте загрузочный RAID-раздел:
mount /dev/<boot_raid_array> /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/efi16.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/bash16.5. Установите загрузчик GRUB:
grub-install --target=x86_64-efi --efi-directory=/efi2 --bootloader-id=GRUB16.6. Создайте файл конфигурации GRUB:
/sbin/grub-mkconfig -o /boot/grub/grub.cfg16.7. После завершения работ выйдите из окружения:
exit -
Размонтируйте служебные файловые системы:
umount -t devpts devpts /mnt/dev/pts
umount --bind /dev /mnt/dev
umount -t sysfs /sys /mnt/sys
umount -t proc /proc /mnt/proc -
Размонтируйте файловую систему:
umount /dev/<system_raid_array> /mntУкажите
<system_raid_array>— корневой RAID-раздел/, который вы смонтировали на шаге 7, в примере этоmd1.