Сегодня мы рассмотрим с вами один из вариантов восстановления загрузки Ubuntu 16.04, установленной в режиме UEFI. Предыстория этого эпизода очень простая - на ПК были установлены две ОС - Ubuntu и Windows 10, при этом разбиение по разделам было "хитрым", т.е. на одном диске был загрузочный раздел EFI System (ESP), а также раздел Linux filesystem и Linux своп, а на другом диске был системный раздел NTFS Windows и еще один дополнительный раздел ext4 от Linux. который монтировался в отдельную папку. Материнская плата - Asus Z170-P. Потребовалось просто физически переставить всю эту систему, т.е. материнскую плату, накопители и т.п. в другой корпус. Однако, после включения Ubuntu уже не загружалась :( Начнем с того что в обычном варианте загрузки (когда все работает и Ubuntu, и Windows установлены с использованием UEFI) мы видим в BIOS'е следующие варианты загрузки:
Но в большинстве из них не приводится информация о восстановлении загрузки именно в UEFI режиме или найти ее достаточно сложно или же рекомендуется использовать утилиту boot-repair, которой нет на LiveCD по-умолчанию. А между тем все достаточно просто.
Здесь наша задача определить загрузочный EFI раздел. Как мы видим - это /dev/sda1. Монтируем раздел /dev/sda1 так - sudo mount /dev/sda1 /mnt и убеждаемся в том в ней есть EFI загрузчик Ubuntu /EFI/ubuntu/grubx64.efi :
Теперь осталось только прописать этот вариант загрузки в BIOS:
В нашем случае НОМЕР_РАЗДЕЛА = 1, т.к. EFI System находится на /dev/sda1. Еще несколько полезных возможностей efibootmgr:
Т.е.:
- Ubuntu
- Windows Boot Manager
Однако, после переустановки MB и накопителей в другой корпус вариант загрузки с Ubuntu просто пропал. Что могло произойти? GRUB находящийся на разделе с Ubuntu никуда не делся, его конфигурация тоже вообщем-то не изменилась, однако, из списка доступных типов загрузки вариант с Ubuntu просто пропал. Попытка выбрать накопитель с установленной Ubuntu в качестве приоритетного для загрузки - тоже вообщем-то ничего не дала, т.к. BIOS находил Windows Boot Manager и упрямо загружал Windows. В интернете можно найти множество потрясающих (в хорошем смысле этого слова), но бесполезных в данной ситуации мануалов (приведу ссылки на них, т.к. ситуации возможны разные и информация в любом случае будет полезной):
- Восстановление GRUB
- How To Repair Grub Boot Loader On Ubuntu Linux 16.04 /15.10 / 15.04
- Boot repair, Boot-Repair, UEFI
- Boot Repair - EFI Mode
- UEFI Installing - Tips
- Установка дистрибутива на компьютер с EFI
- Настройка UEFI-загрузчика. Самое краткое руководство в мире (рекомендуется к прочтению для понимая смысла UEFI загрузки)
Но в большинстве из них не приводится информация о восстановлении загрузки именно в UEFI режиме или найти ее достаточно сложно или же рекомендуется использовать утилиту boot-repair, которой нет на LiveCD по-умолчанию. А между тем все достаточно просто.
Загружаемся с LiveCD с Ubuntu через UEFI (если у вас ПК подключен через HDMI может возникнуть проблема с загрузкой с LiveCD, решается она добавлением параметра nomodeset, как описано здесь), в крайнем случае если GUI не стартует - переключаемся на текстовую консоль (Ctrl-Alt-F1). Далее смотрим какие разделы у нас есть с помощью sudo fdisk -l :
Device Start End Sectors Size Type
/dev/sda1 2048 1128447 1126400 550M EFI System
/dev/sda2 1128448 79626398 78497951 37.4G Linux filesystem
/dev/sda3 79628288 85917854 6289567 3G Linux swap
Здесь наша задача определить загрузочный EFI раздел. Как мы видим - это /dev/sda1. Монтируем раздел /dev/sda1 так - sudo mount /dev/sda1 /mnt и убеждаемся в том в ней есть EFI загрузчик Ubuntu /EFI/ubuntu/grubx64.efi :
Теперь осталось только прописать этот вариант загрузки в BIOS:
efibootmgr -c -d /dev/sda -p НОМЕР_РАЗДЕЛА -L "Ubuntu" -l "\Efi\ubuntu\grubx64.efi"
В нашем случае НОМЕР_РАЗДЕЛА = 1, т.к. EFI System находится на /dev/sda1. Еще несколько полезных возможностей efibootmgr:
- sudo efibootmgr - просмотреть список доступных вариантов загрузки.
- sudo efibootmgr --bootnum xxxx --delete-bootnum - удалить вариант с номером xxxx.
Вот и все, перезагружаем ПК, выбираем в UEFI Bios первичным только что добавленный нами вариант загрузки "Ubuntu" и радуемся работающей ОС.
Комментариев нет :
Отправить комментарий