Много работать – не путь к успеху, но работать мало – путь к поражению

Linux: Восстанавливаем GRUB загрузчик после установки обновления Windows

Если на вашем ПК установлено несколько операционных систем и вы пользуетесь мульти-загрузчиком для их выбора и запуска (к примеру GRUB), может случиться такая неприятность, что после очередного обновления Windows (в особенности Windows 11) вы лишитесь возможности мультизагрузки. Windows сама решит за вас, никак не оповестив вашу персону, что "чужой" загрузчик это зло, и просто снесёт его, заменив на свой монопольный. Зачем вам несколько ОС, если у вас есть Windows (сарказм).

Конечно, такое поведение сервиса обновления Windows мягко говоря неожидаемо и бесцеремонно (особенно при условии, что вы не можете его выключить), но надо как-то с этим жить, благо, что мы можем восстановить наш GRUB загрузчик. Об этом и поговорим, на примере восстановления мультизагрузчика для Linux Mint с UEFI.

Я не зря уточнил про UEFI, потому что для тех, кто использует Legacy BIOS загрузчик, процедура восстановления будет немного отличаться. Так как у меня под рукой нет пациента с BIOS вариантом загрузчика, то и рассматривать этот случай у меня нет возможности. Определить, что у вас используется в качестве загрузки UEFI или BIOS можно непосредственно в настройках BIOS вашего ПК. Итак, приступим.

Восстанавливаем GRUB загрузчик

Шаг 1: Подготавливаем и грузимся с LiveUSB/DVD

Как подготовить загрузочный носитель можно прочитать непосредственно у первоисточника: Создание загрузочного носителя. После подготовки загружаемся в ОС Linux Mint.

ВАЖНО! На этом моменте, после загрузки Live версии ОС, у вас есть возможность подмонтировать раздел Linux с вашими данными и выполнить их резервное копирование, если в этом есть необходимость. Далее, мы будем работать с разделами диска, и некорректные действия с ними могут повредить ваши данные.

Шаг 2: Определяем, где у нас находится раздел (efi), а где раздел системы (ext4)

Запускаем утилиту fdisk, чтобы посмотреть все разделы на дисках:


sudo fdisk -l

Получаем к примеру вот такой вывод:

Результат вывода fidsk с одним диском

В моём примере используется ПК с одним SSD диском на NVMe интерфейсе и в системе он именуется как /dev/nvme0n1. У вас может быть несколько дисков, и fdisk выдаст данные по каждому из них, здесь придётся определиться какой из них загрузочный, на нём будет стоять звёздочка (*) в колонке Boot. И именно он нам интересен. Кроме того, он может оказаться SSD или HDD диском на SATA интерфейсе, тогда система поименует его как /dev/sdа (или /dev/sdb и т.д.). В качестве примера, может быть вот такой вывод:

Результат вывода fidsk с несколькими дисками

Возвращаемся к первому примеру вывода. Здесь нам важно понять, что раздел EFI имеет тип EFI (подчёркнуто красным в колонке Type) и он именуется как /dev/nvme0n1p1 (так-же подчеркнуто красным). А раздел системы имеет тип Linux filesystem и именуется как /dev/nvme0n1p5 (так-же всё подчёркнуто красным). С разделами определились, двигаемся дальше.

Шаг 3: Монтируем найденные разделы


sudo mount /dev/nvme0n1p5 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi

Шаг 4: Инсталируем GRUB из подготовленных директорий


sudo grub-install --boot-directory=/mnt/boot --bootloader-id=ubuntu --target=x86_64-efi --efi-directory=/mnt/boot/efi

На этом всё. Перезагружаемся, и после перезагрузки, если есть необходимость, выполняем обновление GRUB:


sudo grub-update