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

From Manjaro Linux
Jump to: navigation, search


Обзор

Как и в случае с любой другой операционной системой Linux, GRUB (GRand Unified Bootloader) умеет загружать Manjaro. Если по какой-то причине ваш GRUB не работает (из-за того, что поврежден, неверно сконфигурирован или даже удален), не нужно переустанавливать Manjaro. Вместо этого GRUB можно полностью починить и восстановить в рамках установленной системы Manjaro. Для этого необходимо использовать установочный носитель Manjaro - CD/DVD или накопитель USB.

Загрузитесь с установочного носителя Manjaro

1. Вставьте установочный носитель Manjaro и выполните загрузку с него.

2. Выберите язык (F2) и раскладку клавиатуры (F3).

Совет: Настройка языка и клавиатурной раскладки осуществляется нажатием функциональных клавиш. Поскольку у многих компьютеров каждой функциональной клавише могут быть назначены различные функции, может быть необходимо для их использования удерживать нажатой другую клавишу. Например, на ноутбуке HP G62 для использования функциональных клавиш необходимо нажать и удерживать клавишу 'fn'.


3. Загурзите Manjaro Linux. Не имеет значения, какую опцию загрузки вы выберете, так как установочный носитель будет применён только для исправления или восстановления GRUB, а не для установки системы.

4. Откройте терминал или получите доступ к командной строке live CD.

  • Из графической среды рабочего стола: откройте из меню терминал и наберите в нём sudo su.
 или
  • Из командной строки NET-Edition или при использовании опции Boot in Text mode: введите стандартное имя пользователя root и пароль "manjaro" для входа.

Сделайте chroot в вашу установленную на компьютер Manjaro

note: Прочтите здесь подробнее о chroot.

Существует 2 способа осуществить chroot в существующую установку Manjaro: используя mhwd-chroot или вручную. Выберите один из них:


Использование mhwd-chroot

1. Сначала воспользуйтесь приложением gparted из Меню > Система > GPartEd. Оно предоставляет простой визуальный обзор разделов на вашем жёстком диске (или нескольких дисках).

Или можно использовать

lsblk -f

для вывода списка всех ваших разделов.


2. mhwd-chroot - это инструмент, упрощающий chroot в установленный Linux с live-носителя Manjaro. Установите его командой

sudo pacman -S mhwd-chroot

Запустите mhwd-chroot из стартового меню или в терминале одной из следующих команд:

sudo mhwd-chroot
sudo mhwd-chroot-shell

Затем выберите корневой раздел вашей установленной на компьютер Manjaro.


Идентификация и подготовка установленных разделов вручную

1. Убедитесь, что вы используете учётную запись Root. Это можно определить по символу решётки ('#') вместо доллара ('$') в начале командной строки. Чтобы переключиться на учётную запись Root, введите команду:

sudo su


2. Просмотрите список разделов. Это необходимо для идентификации раздела, в который установлена ваша система Manjaro. Если вы используете отдельный раздел boot, его также необходимо идентифицировать. Для получения списка разделов введите команду:

lsblk -f
  или
sudo blkid -o list -c /dev/nul


В данном конкретном примере диск был ранее разбит при установке на такие разделы:

  • /dev/sda1: раздел boot
  • /dev/sda2: раздел подкачки
  • /dev/sda3: система Manjaro
  • /dev/sda4: место для личных файлов пользователей.


Если вы не уверены, можно воспользоваться приложением gparted, которое можно найти в Меню > Система > GPartEd. Оно предоставляет простое визуальное отображение разделов на жёстких дисках. Если существует отдельный раздел для GRUB, то он должен быть помечен как 'bootable' и иметь размер около 100 МБ.


3. Смонтируйте системный раздел Manjaro. Синтаксис команды таков:

mount /dev/[раздел для системы Manjaro] /mnt


В данном примере, поскольку системный раздел Manjaro - это /dev/sda3, он монтируется следующей командой:

mount /dev/sda3 /mnt


Если у вас отдельный раздел для загрузчика GRUB, то его тоже нужно смонтировать. Синтаксис команды таков:

mount /dev/[раздел для GRUB] /mnt/boot


В данном примере отдельный раздел --/dev/sda1-- используется для GRUB, и он будет смонтирован следующей командой:

mount /dev/sda1 /mnt/boot
note: Если вы не используете отдельный раздел boot, то его, конечно же, не нужно монтировать!


4. Перейдите в корневой каталог ваших смонтированных разделов.

cd /mnt

Подразумевается, что вы работаете --в вашей установленной на компьютер системе--, а не с установочного носителя. Для этого необходимо выполнить серию команд в следующем порядке:

mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
mount -t devpts pts /mnt/dev/pts/
chroot /mnt

Восстановите GRUB

Вначале установите приложения mtools и os-prober. mtools - это набор инструментов для доступа к дискам MS-DOS из GNU/Linux и Unix без их монтирования. os-prober - это утилита, определяющая, имеются ли на компьютере другие операционные системы. Установите их обе следующей командой:

sudo pacman -S mtools os-prober


Для систем с BIOS

1. Установите новый загрузчик GRUB следующей командой:

grub-install /dev/sda
note: sda - это диск, на который вы собираетесь установить GRUB. Вы можете проверить это с помощью lsblk -f или GParted, как объяснялось выше.


2. Выполните проверку, чтобы убедиться, что установка была завершена без ошибок:

grub-install --recheck /dev/sda


3. И, наконец, обновите конфигурацию только что установленного загрузчика GRUB:

update-grub


Готово! Теперь закройте терминал и перезагрузите систему, чтобы использовать ваш восстановленный GRUB.

Для систем с UEFI

Warning: Вам необходимо выполнить chroot для этой процедуры, как было упомянуто в предыдущем шаге.


1.) Первым делом проверьте разделы на наличие ESP (EFI System Partition, т.е. системного раздела EFI). ESP — это раздел fat32, содержащий файлы .efi для загрузки.

Это можно проверить с помощью Gparted или из консоли, с помощью fdisk -l


(Примечание: Если у вас нет раздела EFI, нужно будет создать его. Используйте для этого Gparted.

Тип - fat32

Размер - от 512 МБ до 1 ГБ)


2.) Создайте каталог /boot/efi

sudo mkdir /boot/efi


3.) Смонтируйте раздел EFI, как /boot/efi

sudo mount /dev/sdXY /boot/efi

X = буква диска = a,b,c ... Y = номер раздела EFI = 1,2,3,4...

Пример — /dev/sda4


4.) Переустановите GRUB.

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck


5.) Обновите конфигурационный файл GRUB.

sudo update-grub

Примечание

Если вы получите сообщение типа

EFI variables are not supported on this system.

То установите пакеты efibootmgr, dosfstools и grub и попробуйте повторить шаги 4 и 5.

Если это не помогло, то попробуйте выйти из среды chroot, набрав exit, а затем загрузить модуль efivarfs:

sudo modprobe efivarfs

и, снова в chroot,

mount -t efivarfs efivarfs /sys/firmware/efi/efivars


А если вы получите что-то вроде

grub-install: error: failed to get canonical path of `union'.

то это будет означать, что вы, возможно, забыли chroot.

Смотрите также

UEFI Install Guide

Arch Wiki:GRUB#UEFI_systems_2

Альтернативный метод

Смонтируйте корневой раздел ext4 Manjaro, как /install

Смонтируйте EFI-раздел vfat Manjaro, как /install/boot/efi

А затем установите GRUB:

grub-install --target=x86_64-efi --efi-directory=/install/boot/efi --bootloader-id=manjaro --boot-directory=/install/boot --recheck --debug

После этого вы можете сменить корневой каталог командой chroot и попробовать команду update-grub, как и раньше.

Решение проблем

Arch Linux не распознан

Если Arch Linux не был распознан после команды update-grub, то, возможно, в вашей установке Arch отсутствует пакет lsb-release.

Дополнительно

Тема на форуме

Arch Wiki

Для получения поддержки создайте сообщение на форуме