8
7月
2024
17:37

Установка утилиты boot-repair в Debian

8 7月 2024 17:37

Установка boot-repair в Debian сильно отличается от Ubuntu.

О чем данное сообщение?

При запуске с загрузочного LiveCD или загрузочной "флешки" Linux имеется возможность восстановления загрузки операционной системы Linux, установленной на жестком диске, при помощи утилиты boot-repair. При этом, исправление загрузки возможно как в ОС Ubuntu, так и Debian. О последнем варианте данная статья.

Для чего предназначена утилита boot-repair?

При установке Windows параллельно (рядом) с Linux или выполнении команды bcdedit /fixmbr из среды восстановления Windows, как написано в начале этой статьи, портится загрузчик Linux и при включении ПК вместо меню Grub2 сразу же запускается Windows.

Команда "update-grub" применяется при восстановлении grub2, но здесь не помогает:
sudo mount /dev/sda5 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
#sudo mount /dev/sdaX /mnt/boot
sudo chroot /mnt
sudo update-grub
exit
sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
#sudo umount /mnt/boot #если отдельный раздел boor
sudo umount /mnt/

Причина в том, что в системе с mbr загрузчик GRUB2 записывает ссылку на себя в загрузочный сектор (который сейчас занят загрузчиком Windows), поэтому эффекта от update-grub нет.

Решение - использование утилиты boot-repair

При установке boot-repair в Debian есть особенность. Неправильные действия по установке boot-repair в Debian:
PPA-репозиторий не следует добавлять через команду add-apt-repository:
sudo add-apt-repository ppa:yannubuntu/boot-repair данный способ предназначен для Ubuntu

Корректный способ установки boot-repair в Debian:

1) если не запускается add-apt-repository устанавливаем пакет

sudo apt install python3-launchpadlib

2) с помощью add-apt-repository удаляем PPA, если был установлен ранее (пункты 1-2 можно пропустить, если чистая установка)

sudo add-apt-repository --remove ppa:yannubuntu/boot-repair

3) устанавливаем wget

sudo apt install wget

4) скачиваем ключ GPG

wget -O- https://sourceforge.net/projects/boot-repair/files/key.gpg | sudo tee /etc/apt/keyrings/boot-repair.gpg;

5) добавляем репозиторий в файл boot-repair.list в папке /etc/apt/sources.list.d/

echo 'deb [signed-by=/etc/apt/keyrings/boot-repair.gpg] https://ppa.launchpadcontent.net/yannubuntu/boot-repair/ubuntu noble main' | sudo tee /etc/apt/sources.list.d/boot-repair.list;

6) установка boot-repair

sudo apt update && sudo apt install -y boot-repair

Шаги 3-6 описаны в инструкции на странице https://sourceforge.net/p/boot-repair/home/Home/ автора программы yannubuntu.

После установки boot-repair, я выполнил в терминале запуск утилиты boot-repair от имени администратора (sudo). При выборе первого варианта - простого восстановления, спустя несколько минут программа установила загрузчик Linux на жесткий диск и переустановила Grub2, после чего стал доступен выбор ОС в меню Grub2 при следующем включении ПК.


Замечания по использованию boot-repair

(Дополнения от 2026 года):

1) перед использованием boot-repair на ноутбуке с экраном низкого разрешения необходимо изменить масштаб дисплея, чтобы окно стало меньше и поместилось в границы экрана:

xrandr | grep " connected" | awk '{print $1}'
xrandr --output LVDS --scale 1.2x1.2

2) если boot-repair запускается с загрузочного LiveCD, то его способ загрузки UEFI или boot должен точно соответствовать стилю разбивки диска для восстановления. Например, для восстановления меню загрузки жесткого диска разбитого по способу BIOS нужно нажать ESC и выбрать "General USB Disk". А для жесткого диска с разбивкой UEFI (GPT) нужно нажать ESC и выбрать "USB Disk UEFI".

3) При выполнении boot-repair для переустановки grub на экран будет выведена текстовая инструкция. Нужно выполнять команды из этой инструкции в окне терминала одну за одной вручную.

4) При типе загрузки BIOS очень желательно наличие раздела /boot в начале диска (формата ext4, с именем /dev/sda1, размером 300 МБ), в котором будут находиться файлы загрузчика grub2 и файлы ядра vmlinuz, initrd и memtest86 (в сумме 2 ядра и grub2 занимают 270 МБ, одно ядро и grub2 - 170 МБ) . Так как если ОС Linux установлена второй системой, то загрузочный раздел Linux (например, /dev/sda7) находится очень далеко от начала диска. При этом, первая загрузка может пройти нормально, но при аварийном отключении питания ноутбука может произойти сбой загрузки mbr и grub, т.к. BIOS не сможет передать управление загрузчику grub в конце диска.

5) Для редактирования меню UEFI BIOS при использовании разбивки диска GPT можно пригодиться утилита efibootmgr.
При этом операционная система должна быть загружена в режиме UEFI (или с флешки LiveCD в режиме UEFI).
Данная утилита позволяет редактировать меню встроенное в UEFI BIOS и изменять время задержки при загрузке.



相关出版物