Перейти к основному содержимому

Восстановить загрузчик Linux в Rescue

Последнее изменение:

Основной загрузчик операционных систем Linux — GRUB. Если загрузчик Linux был удален, поврежден или перестал работать после замены диска, вы можете восстановить загрузчик. Для этого загрузите сервер в режиме Rescue, смонтируйте основные разделы аналогично тому, как они смонтированы в основной системе, и установите загрузчик GRUB.

  1. Загрузите сервер в режиме восстановления и диагностики Rescue.

  2. Определите режим загрузки ОС:

    [ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

    В ответе появится информация о режиме загрузки ОС — BIOS или UEFI.

  3. Выведите информацию о разделах на дисках:

    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 — разделы на дисках. В вашей ОС имена разделов могут отличаться.

  4. Определите разделы, которые нужно монтировать:

    • корневой раздел / — обычно это самый большой раздел на диске, в примере на шаге 3 это раздел sda4;
    • загрузочный раздел /boot — обычно это раздел с файловой системой ext4 и размером 512 МБ — 1 ГБ. В примере на шаге 3 это раздел sda3;
    • раздел EFI /boot/efi — используется при загрузке ОС в режиме UEFI. Это раздел с файловой системой vfat. В примере на шаге 3 это раздел sda2.
  5. Смонтируйте корневую файловую систему в директорию /mnt:

    mount /dev/<system_partition> /mnt

    Укажите <system_partition> — корневой раздел /, который вы выбрали на шаге 4, в примере это sda4.

  6. Примонтируйте загрузочный раздел:

    mount /dev/<boot_partition> /mnt/boot

    Укажите <boot_partition> — загрузочный раздел /boot на диске, который вы выбрали на шаге 4, в примере это sda3.

  7. Если используется UEFI-загрузчик ОС, примонтируйте раздел EFI:

    mount /dev/<efi_partition> /mnt/boot/efi

    Укажите <efi_partition> — раздел EFI /boot/efi, который вы выбрали на шаге 4, в примере это sda2.

  8. Смонтируйте служебные файловые системы:

    mount --bind /sys /mnt/sys
    mount --bind /proc /mnt/proc
    mount --bind /dev /mnt/dev
    mount -t devpts devpts /mnt/dev/pts
  9. Подключитесь к окружению:

    chroot /mnt /bin/bash
  10. Экспортируйте переменную PATH:

export export PATH=/usr/sbin:/usr/bin:/sbin:/bin:$PATH
  1. Установите загрузчик GRUB. Команда зависит от загрузчика ОС, который вы определили на шаге 2:

    • UEFI:
    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
    • BIOS:
    grub-install /dev/<disk>

    Укажите <disk> — системный диск, на котором установлена ОС и расположен корневой раздел /, в примере на шаге 3 это sda.

  2. Создайте файл конфигурации GRUB:

    /sbin/grub-mkconfig -o /boot/grub/grub.cfg
  3. После завершения работ выйдите из окружения:

    exit
  4. Размонтируйте служебные файловые системы:

    umount -t devpts devpts /mnt/dev/pts
    umount --bind /dev /mnt/dev
    umount -t sysfs /sys /mnt/sys
    umount -t proc /proc /mnt/proc
  5. Размонтируйте файловую систему:

    umount /dev/<system_partition> /mnt

    Укажите <system_partition> — корневой раздел /, который вы смонтировали на шаге 5, в примере это sda4.

  1. Загрузите сервер в режиме восстановления и диагностики Rescue.

  2. Определите режим загрузки ОС:

    [ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

    В ответе появится информация о режиме загрузки ОС — BIOS или UEFI.

  3. Проверьте, определила ли система RAID-массивы, для этого выведите информацию о разделах на дисках:

    lsblk -o +FSTYPE

    В ответе появится информация о разделах на дисках и конфигурации RAID-массивов. Например:

    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-массивов могут отличаться.

  4. Если на шаге 3 в выводе lsblk есть RAID-массивы, пропустите этот шаг. Если RAID-массивы отсутствуют, запустите сборку RAID-массивов:

    mdadm --assemble --scan
  5. Выведите информацию о разделах на дисках и конфигурации RAID-массивов:

    lsblk -o +FSTYPE

    В ответе появится информация о разделах на дисках и конфигурации RAID-массивов. Например:

    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-массивов могут отличаться.

  6. Определите RAID-разделы, которые нужно монтировать:

    • корневой RAID-раздел / — обычно это самый большой раздел на диске, в примере на шаге 5 это массив md1;
    • загрузочный RAID-раздел /boot — обычно это раздел с файловой системой ext4 и размером 512 МБ — 1 ГБ. В примере на шаге 5 это массив md0;
    • раздел EFI /boot/efi — используется при загрузке ОС в режиме UEFI. Это раздел с файловой системой vfat. В примере на шаге 5 это раздел sda1 и, если раздел EFI был клонирован на второй диск, sdb1.
  7. Смонтируйте корневую файловую систему в директорию /mnt:

    mount /dev/<system_raid_array> /mnt

    Здесь <system_raid_array> — корневой RAID-раздел, который вы выбрали на шаге 6, в примере это md1.

  8. Примонтируйте загрузочный RAID-раздел:

    mount /dev/<boot_raid_array> /mnt/boot

    Укажите <boot_raid_array> — загрузочный RAID-массив /boot, который вы выбрали на шаге 6, в примере это md0.

  9. Если используется UEFI-загрузчик ОС, примонтируйте раздел EFI:

    mount /dev/<efi_partition> /mnt/boot/efi

    Укажите <efi_partition> — раздел EFI /boot/efi, который вы выбрали на шаге 6, в примере это sda1.

  10. Смонтируйте служебные файловые системы:

    mount --bind /sys /mnt/sys
    mount --bind /proc /mnt/proc
    mount --bind /dev /mnt/dev
    mount -t devpts devpts /mnt/dev/pts
  11. Подключитесь к окружению:

    chroot /mnt /bin/bash
  12. Экспортируйте переменную PATH:

    export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
  13. Установите загрузчик 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 может быть больше дисков.

  14. Создайте файл конфигурации GRUB:

    /sbin/grub-mkconfig -o /boot/grub/grub.cfg
  15. После завершения работ выйдите из окружения:

    exit
  16. Если на вашей системе только один раздел EFI, пропустите этот шаг. Если на вашей системе раздел EFI клонирован на несколько дисков, установите загрузчик GRUB на каждый диск:

    16.1. Размонтируйте раздел EFI:

    umount /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/pts

    16.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
  17. Размонтируйте служебные файловые системы:

    umount -t devpts devpts /mnt/dev/pts
    umount --bind /dev /mnt/dev
    umount -t sysfs /sys /mnt/sys
    umount -t proc /proc /mnt/proc
  18. Размонтируйте файловую систему:

    umount /dev/<system_raid_array> /mnt

    Укажите <system_raid_array> — корневой RAID-раздел /, который вы смонтировали на шаге 7, в примере это md1.