В данной статье рассматривается процесс восстановления загрузчика GRUB 2.
Причины, по которым может понадобится восстановить GRUB, могут быть разными.
Очень часто требуется восстанавливать GRUB после установки Windows. Если у вас был установлен Linux и вы установили в соседний раздел или на соседний диск Windows, то после перезагрузки компьютера загрузится Windows, как будто Linux вообще пропал. Загрузчик GRUB даже не появился. Иногда подобное происходит при обновлении существующего Windows.
Иногда требуется восстановление GRUB после установки Linux, когда неверно был выбран раздел для установки загрузчика.
Во всех случаях нужно выполнить восстановление загрузчика GRUB. Существуют разные способы восстановления. В данном руководстве рассматривается процесс использованием загрузочного Live-образа Linux. Загрузившись в Live-систему вам нужно будет ввести несколько команд, чтобы выполнить восстановление. Рассматривается способ восстановления без использования сторонних программ.
Также иногда различают процесс восстановления для систем с BIOS и с UEFI. Описанный ниже способ рассматривает оба этих случая. Я тестировал его как на компьютерах с традиционным BIOS, так и с UEFI.
Подготовка
Для восстановления GRUB потребуется загрузочный диск или флешка с дистрибутивом Linux. Если у вас его нет, то нужно скачать образ с дистрибутивом. Например, можно скачать ISO образ Ubuntu.
Для создания загрузочной флешки можно воспользоваться программой Etcher. Она работает в Linux, Windows и MacOS. Подробная инструкция: Как создать загрузочную флешку.
Загрузка в Live-режиме
Теперь нужно загрузиться с созданного диска или флешки.
Чтобы это сделать сначала нужно в BIOS выбрать приоритет загрузки с CD/DVD или с USB (если вы используете флешку).
На современных компьютерах, где используется BIOS/UEFI, для входа в BIOS нужно при включении компьютера удерживать специальную клавишу. У разных производителей клавиша может быть разной. Обычно это: F2, Del, F10, Esc, F11 или F3.
На старых компьютерах, где используется классический BIOS, чтобы войти в BIOS нужно при загрузке компьютера, в самом начале, когда появляется логотип материнской платы, нажать специальную клавишу. Для разных материнских плат клавиша может быть разной. Обычно это одна из клавиш: Del, F1, F2, F8, F10 или какая-нибудь другая, или даже сочетание клавиш. Подробности: Настройка BIOS для загрузки с CD/DVD-диска или с USB-носителя
Открываем терминал
Итак, вы загрузились в Live-режиме. Теперь нужно открыть терминал.
В Ubuntu и некоторых других дистрибутивах это можно сделать нажатием сочетания клавиш Ctrl+Alt+T. Или запустить терминал через меню программ.
Определение разделов
Теперь нужно определить раздел диска, на котором был установлен GRUB.
Выведем список разделов, для этого выполняем команду (в конце команды стоит строчная буква L):
sudo fdisk -l
Вывод fdisk для BIOS
Пример вывода команды:
В моем случае мы видим 2 диска: /dev/sda (SSD диск) и /dev/sdb (флешка, с которой сейчас загружена Live-система).
Нас интересует диск /dev/sda. На диске /dev/sda создано несколько разделов. В моем случае /dev/sda4, на котором установлен Windows, а также 4 раздела с пометкой Linux (см. последний столбец таблицы). У вас скорее всего может быть один раздел Linux (корневой раздел) или два раздела (корневой и home). На одном из этих разделов установлен GRUB.
То есть из таблицы вы должны определить какой раздел является корневым, на нем скорее всего у вас установлен GRUB. В моем случае GRUB установлен в раздел /dev/sda2. Далее по тексту я буду его использовать (вы должны будете указывать свой раздел).
Иногда бывает, что для загрузчика GRUB выделен отдельный раздел (он называется boot-раздел). Если это так, то на следующем шаге вам нужно будет примонтировать корневой раздел и раздел с загрузчиком.
Вывод fdisk для UEFI
Для новых компьютеров с UEFI вывод команды fdisk -l может быть примерно следующим:
Нам нужно определить, на каком разделе установлен Linux (корневой раздел), а также определить EFI-раздел. В моем случае это разделы: /dev/nvme0n1p5 и /dev/nvme0n1p1, которые расположены на диске /dev/nvme0n1.
Монтирование разделов
Примонтируем корневой раздел. Выполняем команду (вместо /dev/sda2 вы должны указать свой раздел):
sudo mount /dev/sda2 /mnt
Мы примонтировали раздел /dev/sda2 в директорию /mnt.
Если для загрузчика у вас выделен отдельный раздел, то нужно примонтировать еще и его (вместо /dev/sdX укажите ваш boot-раздел):
sudo mount /dev/sdX /mnt/boot
Теперь можно посмотреть содержимое директории /mnt, чтобы убедиться, что мы примонтировали верный раздел:
ls /mnt
Вывод команды должен быть примерно следующим. Обратите внимание есть ли в этом списке каталог /boot, так как именно в нем установлен GRUB.
Также можно проверить, что директория boot не пустая:
ls /mnt/boot
У меня вывод команды выглядит следующим образом. Обратите внимание на присутствие каталога с именем grub.
Далее нужно создать ссылки на несколько директорий, к которым GRUB должен иметь доступ для обнаружения всех операционных систем. Для этого выполните команды:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
Монтирование EFI-раздела
Если у вас используется UEFI, то еще нужно примонтировать EFI-раздел в директорию /mnt/boot/efi (выше я указал пример вывода команды fdisk -l в котором показан EFI-раздел):
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
Выполняем chroot на /mnt
На предыдущем шаге мы смонтировали все необходимые директории в директорию /mnt. Теперь переключимся (выполним chroot) на данную директорию. Выполняем команду:
sudo chroot /mnt
Генерация файла конфигурации GRUB
Данный шаг нужно выполнять не всем. Если у вас был установлен GRUB и вы уверены, что его конфигурация верная, то можно перейти к следующему шагу.
Для генерации файла конфигурации GRUB используется команда update-grub. Данная команда автоматически определяет файловые системы на вашем компьютере и генерирует новый файл конфигурации. Выполняем команду:
sudo update-grub
В выводе команды будет показано, какие операционные системы были найдены.
Если вдруг утилита update-grub не определила ваш Windows (у меня такое было для UEFI), то можно будет запустить update-grub повторно уже из вашей Linux-системы, когда вы в нее загрузитесь (мне это помогло и Windows определился).
Устанавливаем GRUB
Осталось выполнить установку GRUB на диск. Мы определили раздел на котором у нас установлен GRUB на первом шаге данного руководства. В моем случае это раздел /dev/sda2, который расположен на диске /dev/sda.
Для установки GRUB используется команда grub-install, которой нужно передать в качестве параметра диск, на который будет выполняться установка (в моем случае это диск /dev/sda):
grub-install /dev/sda
https://askubuntu.com/questions/88384/how-can-i-repair-grub-how-to-get-ubuntu-back-after-installing-windows
If Ubuntu is installed in EFI mode, and EFI partition UUID has changed, you may need to update it in /etc/fstab. Compare it:
blkid | grep -i efi
grep -i efi /etc/fstab
Перезагрузка компьютера
Выходим из окружения chroot, для этого выполняем команду:
exit
Отмонтируем все разделы, которые мы примонтировали:
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
Если вы монтировали boot-раздел, то его тоже нужно отмонтировать:
sudo umount /mnt/boot
Если вы монтировали EFI-раздел, отмонтируем:
sudo umount /mnt/boot/efi
Отмонтируем корневой раздел:
sudo umount /mnt
Перезагружаем компьютер. Для этого выполняем команду:
reboot
Если во время перезагрузки компьютера меню GRUB не появилось, то это еще не значит, что он не восстановился. Возможно, просто установлена нулевая задержка и меню не показывается. Чтобы показать меню GRUB нужно во время загрузки, после того, как появился логотип материнской платы:
- удерживать клавишу Shift, если у вас классический BIOS;
- нажать Esc, если у вас UEFI.
Если у вас, при выполнении grub-update, не определился Windows и не был добавлен в меню GRUB, то уже загрузившись в вашу систему Linux (не LiveCD), откройте терминал и выполните:
sudo grub-update
Мне это помололо на компьютере, который использует UEFI.
Шпаргалка
Мы рассмотрели процесс восстановления загрузчика GRUB 2. Для удобства привожу краткую шпаргалку по командам, которые мы выполняли. Учитывайте, что названия и имена разделов (/dev/sd…) у вас могут отличаться.
sudo fdisk -l
sudo mount /dev/sda2 /mnt
# sudo mount /dev/sdaX /mnt/boot
# sudo mount /dev/sdaY /mnt/boot/efi
sudo mount --bind /dev /mnt/dev && sudo mount --bind /dev/pts /mnt/dev/pts && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
sudo update-grub
grub-install /dev/sda
Если вы используете на своем компьютере две операционные системы, Windows и Linux, и обновили свою Windows из 7, 8 или 8.1 до самой новой Windows 10, могут возникнуть проблемы с загрузчиком Grub при использовании защищенной загрузки UEFI. Во время обновления Windows 10 просто затрет загрузчик Grub и запишет туда свой.
Вы, как обычно, перезагружаете систему и ожидаете увидеть меню выбора операционной системы Grub, но вместо этого загружается новая Windows 10. Вам может показаться, что нет никакого способа получить доступ к Ubuntu или что не может работать Ubuntu рядом с Windows 10. Но это не так.
Многие советуют установить Ubuntu на другой диск, но есть более простое и прекрасно работающие решение, чтобы восстановить grub после установки windows 10. Кончено, всегда можно восстановить grub2 стандартным способом, с помощью LiveCD диска, но если вы используете UEFI, есть более легкое решение, мы сделаем все с помощью Windows 10.
Хотя за основу в этой статье берется Ubuntu, но это также будет работать и для других дистрибутивов. Просто папка, в которой находятся файлы загрузчика будет немного отличатся.
Шаг 1. Запуск cmd
Кликните по иконке поиск в Windows, наберите там cmd и найдите Командную строку Windows. Кликните по ней правой кнопкой и выберите Запустить от имени администратора:
Шаг 2. Подключение раздела EFI
Далее вы можете попытаться угадать как называется файл загрузчика Grub на разделе EFI, но можно поступить по другому и просто посмотреть. Чтобы подключить раздел EFI запустите diskpart. Для этого выполните:
diskpart
Затем выведите список доступных дисков:
list disk
Выберите в качестве активного диск, на который установлена Windows 10 и на котором сейчас находится раздел EFI:
sel disk 0
Далее выведите список разделов на диске:
list vol
Найдите раздел EFI, он обычно отформатирован в файловую систему FAT и занимает около 100 мегабайт места. В данном случае это том 2:
Этому разделу надо присвоить букву. Для этого выполните:
sel vol 2
assign letter=I:
Шаг 3. Поиск загрузчика
Далее надо найти файл загрузчика на разделе EFI. Но открыть этот раздел в проводнике вы не сможете, надо использовать только командную строку. Закройте DiskPart и выполните:
cd /d I:
Затем с помощью команды dir найдите загрузчик Grub. Например:
dir EFIUbuntu
Здесь есть файл grubx64.efi. Это он. Загрузчик может называться по другому в других дистрибутивах, именно поэтому я рассказал как всё посмотреть.
Шаг 4. Восстановление Grub
Скопируйте и выполните эту команду:
bcdedit /set {bootmgr} path EFIubuntugrubx64.efi
Вам не нужно будет вводить пароль, у вас уже есть права администратора и программа должна отработать нормально. Эта команда обратно запишет вместо загрузчика Windows 10 загрузчик Grub.
Если команда вернула ошибку, вы можете откатить изменения такой командой:
bcdedit /deletevalue {bootmgr} path EFIubuntugrubx64.efi
Затем можно включить загрузчку загузчика Windows 10:
bcdedit /set {bootmgr} path EFIMicrosoftBootbootmgfw.efi
Выводы
Восстановление Grub после Windows 10 завершено. Перезапустите компьютер и вы увидите на экране знакомый Grub. Надеюсь, эта краткая инструкция помогла вам выполнить восстановление Grub после установки Windows 10.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Всем доброго времени!
Эта заметка будет довольно специфична и пригодится только тем, у кого на компьютере установлено несколько версий ОС: Windows, Linux…
Так вот, при переустановке (обновлении) одной из ОС (обычно, так делает Windows) — может затереться загрузчик Grub, и при включении ПК более не будет появляться «черного» меню с предложением выбрать какую систему загружать… 👀
Разумеется, чтобы не переустанавливать ОС (и не настраивать всё заново) — лучше просто восстановить сам этот загрузчик. Как правило, для этого достаточно загрузиться с LiveCD (👉 Linux Mint, Elementary OS, Ubuntu и пр.), смонтировать корневой раздел Linux и ввести спец. команды для восстановления…
Однако, «ручная» работа через терминал имеет «тонкости» (и не всегда выполняется просто). Поэтому здесь хочу предложить гораздо более легкий вариант! 👌
*
Содержание статьи
- 1 Восстановление Grub
- 1.1 ШАГ 1
- 1.2 ШАГ 2
- 1.3 ШАГ 3
→ Задать вопрос | дополнить
Восстановление Grub
ШАГ 1
Для начала нам нужно подготовить загрузочную флешку (LiveCD) c одним из дистрибутивов Linux. Скорее всего она у вас должна быть!
(Если у вас одна из «разновидностей» Ubuntu — я бы порекомендовал использовать образ 👉 с Linux Mint — т.к. в нем уже предустановлена нужная утилита // Boot Repair).
На всякий случай здесь приведу несколько ссылок в помощь:
1) Как создать загрузочную флешку с Linux;
2) Как загрузиться с USB-флешки или внешнего HDD.
Будем считать, что загрузиться с подготовленной флешки у вас получилось… 👌
*
ШАГ 2
Далее (после загрузки с LiveCD с Linux) нам понадобиться установить утилиту Boot Repair (если у вас последняя версия Linux Mint — то она встроена, и чтобы ее запустить — откройте меню «Пуск / Administration / Boot Repair»).
После можно переходить к ШАГУ 3 (для тех, у кого нет встроенной Boot Repair — чуть ниже я покажу как ее установить).
Linux Mint — Boot Repair
Для инсталляции Boot Repair сначала проверьте, что у вас есть подключение к Интернет.
Далее необходимо открыть терминал (обычно, для этого используют сочетания Ctrl+Alt+T или Win+T) и ввести поочередно следующие три команды (после каждой нажимать Enter!).
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
Xubuntu (для примера) — устанавливаем Boot Repair
После в меню «Пуск» должна появиться ссылка на нашу утилиту (обратите внимание, что на русском она называется как «Восстановление загрузки»… 👇). Кстати, запустить Boot Repair можно и из консоли. Команда:
boot-repair
ПУСК — восстановление загрузки (Boot Repair)
*
ШАГ 3
1) В большинстве случаев утилита Boot Repair справляется с восстановлением Grub в автоматическом режиме. Поэтому порекомендую вам сразу же нажать на первый пункт «Recommended Repair». Пару скринов ниже. 👇
Boot Repair (на английском)
Рекомендуемый способ восстановления (русская версия)
2) Как правило, на весь процесс требуется 1-2 мин. 👇
Процесс пошел!
3) Если всё прошло успешно — увидите окно об успешном восстановлении Grub. Теперь можно выключить ПК (ноутбук), вынуть из USB-порта флешку с LiveCD и проверить как загружается устройство: появляется ли меню Grub?.. 👌
Загрузка успешно восстановлена
GNU Grub version 2.04 — все заработало!
4) Кстати, иногда утилита Boot Repair может попросить вас выполнить ряд команд в терминале (сочетание клавиш для его запуска: Ctrl+Alt+T или Win+T).
Сами команды, разумеется, утилита приводит в своем окне. После их выполнения — нажмите на кнопку «Forward» (если вы не выполнили команды — утилита снова покажет текущее окно). Ничего «опасного» и удаляющего данные с домашних разделов диска —в них быть не должно!
Эти команды нужно будет ввести вручную в терминал (и нажать Enter)
PS
Кстати, у Boot Repair есть расширенные настройки, в которых можно вручную задать ряд параметров. Если вы слабо представляете «что, где и как…» — то лучше это меню не трогать (во избежание лишних проблем…).
*
Другие простые решения, — само собой, приветствуются!
На сим пока всё, удачи!
👋
Полезный софт:
- Видео-Монтаж
Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
Видео сделает даже новичок!
- Ускоритель компьютера
Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).
- Печать
Страницы: [1] 2 Все Вниз
Тема: После обновления Windows 10 не грузится GRUB (Прочитано 5096 раз)
0 Пользователей и 1 Гость просматривают эту тему.
tux13
Всем привет!
Сразу оговорюсь — я знаю что в интернете полно инструкций как вернуть GRUB, но ничего не выходит
Прямо сейчас:
sda1:
sda2: efi
sda3:
sda4:
sda5:
sda6: ubuntu
при загрузки сразу грузится Windows 10
загружаюсь с live-usb, монтирую:
# mnt /dev/sda6 /mount
# mnt /dev/sda2 /mount/boot
бэкапю /mnt/EFI/Boot/bootx64.efi в /mnt/EFI/Boot/bootx64.efi.orig
копирую # cp /mnt/boot/EFI/ubuntu/grubx64.efi /mnt/EFI/Boot/bootx64.efi
перезагружаюсь — нет граба, грузится Win10
что не так?
P.S. Ранее все работало, делал таким образом восстановление и граб работал
P.S.S. Ubuntu 19.04
« Последнее редактирование: 26 Сентября 2019, 18:46:13 от tux13 »
Usermaster
Может grub-install сделать?
tux13
Может grub-install сделать?
Делал, как ни странно, не находит EFI
ALiEN175
tux13, покажите полностью вывод команды
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
tux13
Снес все, заново поставил Windows 10 на весь диск, После установил Ubuntu 19.04 (рядом 50/50%). Все тоже самое, грузится только Windows.
Загрузка с Live-USB …
# fdisk -L
# mount /dev/sda5 /mnt
# mount /dev/sda2 /mnt/boot
# cp /mnt/boot/EFI/Boot/bootx64.efi /mnt/boot/EFI/Boot/bootx64.efi.orig
# rm /mnt/boot/EFI/Boot/bootx64.efi
# cp /mnt/boot/EFI/ubuntu/grubx64.efi /mnt/boot/EFI/Boot/bootx64.efi
# reboot
… грузится Windows 10 …
Загрузка с Live-USB …
# mount /dev/sda5 /mnt
# mount /dev/sda2 /mnt/boot
# grub-install —boot-directory=/mnt/boot /dev/sda
Пользователь добавил сообщение 29 Сентября 2019, 19:10:55:
К стати, вот тут https://habr.com/ru/post/314412/ говорится о том, что не надо использовать GRUB (!)
вот что дает bootctl
# bootctl
как я уже писал раньше — /EFI/Boot/bootx64.efi, был мной уже заменен на grubx64.efi из /EFI/Boot/ubuntu/, но что то толку пока нет
« Последнее редактирование: 29 Сентября 2019, 20:51:20 от tux13 »
vladimirzhuravlev
Загрузка с Live-USB …
Зачем что-то монтировать при установке ? Установщик спросит куда ставить граб, вот и покажи путь в окне с этой строкой, там-же можно любой раздел выбрать. Я-бы выбрал без сомнения sda2 (который ESP), другие отмечают путь на весь винт.
Снес все, заново поставил Windows 10 на весь диск, После установил Ubuntu 19.04 (рядом 50/50%)
После установки чем уменьшил раздел винды, что-бы отдать под linux 50 % ?
Дюшик
tux13
После установки чем уменьшил раздел винды, что-бы отдать под linux 50 % ?
Бубновским визардом, при установке по запросу указал «Поставить рядом с Windows» и указал процентное соотношение размера раздела.
Пользователь добавил сообщение 30 Сентября 2019, 11:10:03:
Один из вариантов установки https://forum.ubuntu.ru/index.php?topic=285681.msg2250053#msg2250053
Нашел место где я ошибался (выделено красным), теперь все прошло штатно, но после перезагрузки снова Windows и никакого намека на Grub
Пользователь добавил сообщение 30 Сентября 2019, 11:43:55:
или использовать Boot repair
« Последнее редактирование: 30 Сентября 2019, 15:42:45 от tux13 »
vladimirzhuravlev
Поставить рядом с Windows
Зачем такие извращения ? Нужно было просто будучи загруженным вживую gparted-ом уменьшить виндовый раздел Gb на 10-15, на освободившемся месте раздел / под linux. Т.е. в установщике выбрать другой вариант (нижняя опция).
Боязно было установить граб на sda2 /mnt/boot/efi при установке и потом всего одна команда update-grub? Но на 99% update-grub не потребовалось-бы, загрузчик винды есть, она грузится, он на разделе sda2. В конце установки установщик дополняет данные в ESP раздел, видит там виндовый загрузчик и просто ставит его вторым по списку.
« Последнее редактирование: 30 Сентября 2019, 12:23:17 от vladimirzhuravlev »
tux13
Боязно было установить граб на sda2 /mnt/boot/efi при установке и потом всего одна команда update-grub? Но на 99% update-grub не потребовалось-бы, загрузчик винды есть, она грузится, он на разделе sda2.
что-то я не пойму, grub и так на sda2, разве нет?
Дюшик
Нашел место где я ошибался (выделено красным), теперь все прошло штатно, но после перезагрузки снова Windows и никакого намека на Grub
Secure Boot отключали?
Fast Boot отключен?
В UEFI-BIOS в списке загрузочных устройств Ubuntu есть (или в Boot menu)?
Если ноут Acer, то GRUB нужно добавлять руками в список загрузки https://forum.ubuntu.ru/index.php?topic=289348.msg2278843#msg2278843.
Спойлер с Boot repair не открывается (у меня).
tux13
Secure Boot отключал и включал — никак не работает.
Fast Boot отключен.
Ноут SONY SVP1231M2RS, и «UEFI-BIOS» больше похож на обычный BIOS, нет там ничего
Спойлер с Boot repair не открывается (у меня)
переделал …
« Последнее редактирование: 30 Сентября 2019, 15:45:37 от tux13 »
vladimirzhuravlev
что-то я не пойму, grub и так на sda2, разве нет?
Но ты ведь ставил на автомате (50х50), и значит запись о загрузке linux в ESP раздел не попала. А так-бы ты сразу увидел после первого включения меню выбора, linux в верхней строке и внизу винда. И не нужны были-бы все эти grub-install, update-grub, юзание Boot repair.
tux13
vladimirzhuravlev, так теперь что делать? Все сносить и ставить заново?!
P.S. утомляет после каждой переустановки настраивать рабочее окружение (рабочие софтинки, тунельки и прочее) в Windows и после в Ubuntu …
« Последнее редактирование: 30 Сентября 2019, 18:10:01 от tux13 »
vladimirzhuravlev
Если винда нормально грузится без захода в Биос, то конечно оставить её, переустанови только linux (10-15 минут), в установщике выбери Другой вариант (нижняя опция), там выберешь существующий раздел / для системы, только ответишь, что его отформатировать нужно, ещё ниже оконце-строка узенькая для выбора пути куда граб устанавливать, укажи sda2.
- Печать
Страницы: [1] 2 Все Вверх
За что я ненавижу Windows, это за то что после очередного обновления, почему то затирается загрузчик grub2. Это при том, что у меня уже были отключены быстрая загрузка Secure Boot, но после обновления она почему то снова включилась. В общем если бы не несколько приложений которые увы не портируются на Linux, а использование которых в VirtualBox не так удобно, то я бы с превеликим удовольствием снес бы Windows со своего ноутбука.
Теперь собственно о проблеме. Итак после обновления WIndows, у нас слетел grub2. Как правило в таком случае я первым делом делаю загрузочную live-cd флешку с каким нибудь linux-дистрибутивом. Загрузившись с флешки в режим live-cd, то есть без установки воспользуемся прекрасной утилитой boot-repair.
Утилита предельно проста, послу установки
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update && sudo apt-get install -y boot-repair
запускаем утилиту и нажимаем на кнопку Recommended repair, после чего система сама даст указания. Что да как делать. Каждый случай индивидуален, в моем случае boot-repair сформировал отчет и выдал ссылку на него. Открыв ссылку я увидел подробный отчет о состоянии моего загрузчика и в конце рекомендации по восстановлению, если система сама не загрузилась после перезапуска. Рекомендации были примерно такими
<strong>Boot successfully repaired. You can now reboot your computer. Please do not forget to make your BIOS boot on sda2/EFI/ubuntu/shimx64.efi file! If your computer reboots directly into Windows, try to change the boot order in your BIOS. If your BIOS does not allow to change the boot order, change the default boot entry of the Windows bootloader. For example you can boot into Windows, then type the following command in an admin command prompt: bcdedit /set {bootmgr} path EFIubuntushimx64.efi
То есть загружаемся в Windows, открываем консоль от имени Администратора системы и выполняем команду:
bcdedit /set {bootmgr} path
EFIubuntushimx64.efi
к сожалению эта команда мне не помогла. Порыскав немного по ссылке которую мне сформировал boot-repair я нашел такой раздел в ней.
<em><strong>sda2: __________________________________________________________________________ File system: vfat Boot sector <span class="nb">type</span>: Windows 8/2012: FAT32 Boot sector info: No errors found in the Boot Parameter Block. Operating System: Boot files: /EFI/ubuntu/grub.cfg /EFI/Boot/bkpbootx64.efi /EFI/Boot/bootx64.efi /EFI/ubuntu/fbx64.efi /EFI/ubuntu/fwupx64.efi /EFI/ubuntu/grubx64.efi /EFI/ubuntu/mmx64.efi /EFI/ubuntu/shimx64.efi /EFI/Microsoft/Boot/bootmgfw.efi /EFI/Microsoft/Boot/bootmgr.efi /EFI/Microsoft/Boot/memtest.efi /boot-repair/log/20171022_104743/sda2/bootx64.efi /boot-repair/log/20171022_114814/sda2/bootx64.efi /boot-repair/log/20171022_120800/sda2/bootx64.efi /boot-repair/log/20171022_120927/sda2/bootx64.efi</strong></em>
Видим от того что у меня Linux Mint команда для восттавновления данная boot-repair мне не помогла, но я немного изменил ее следующим образом:
bcdedit /set {bootmgr} path
EFIubuntugrubx64.efi
после чего к счастью при загрузке снова стал отображаться Grub2, из которого я могу на свой выбор загрузить либо Windiws, либо Linux.
Если помимо Windows на компьютере с включенной безопасной загрузкой UEFI у вас установлена еще и Linux, после обновления Windows до более новой версии линуксовый загрузчик Grub может оказаться перезаписанным. При этом Windows будет нормально загружаться, не предлагая никакой альтернативы, поскольку в меню ее загрузчика имеется только одна запись — запись обновленной Windows. Неприятно, но не катастрофа.
Grub можно восстановить, загрузившись с LiveCD той же разрядности, что и установленная Linux, однако у начинающих пользователей с этим могут возникнуть проблемы. Вам бы пришлось определить раздел и смонтировать файловую систему, выполнить подготовку и вход в окружение системы и только потом выполнить восстановление загрузчика, используя терминал Linux.
На самом деле есть более простое решение, для реализации которого не понадобится «живой» диск со средой Linux, достаточно будет командной строки Windows, запущенной от имени администратора.
В общем, если вы используете UEFI, а второй операционной системой является Linux Ubuntu, выполните в этой командной строке всего одну команду:
bcdedit /set {bootmgr} path /EFI/ubuntu/grubx64.efi
Если всё пройдет хорошо, после перезагрузки вы увидите меню загрузчика Grub.
В случае с другими дистрибутивами Linux путь будет немного отличаться, но принцип остается прежним.
В крайнем случае можете загрузится с любого LiveCD и посмотреть путь к файлу grubx64.efi в загрузочном служебном разделе.
И еще маленький совет напоследок: если это возможно, отключите в настройках UEFI функцию Secure Boot, на ПК с двумя операционными системами она нередко становится источником проблем.
Загрузка…
На ноутбуке с двойной загрузкой (Ubuntu 22.04 + Windows 10) не отображается меню GRUB, в котором можно выбрать операционную систему для загрузки (Linux или Windows). По-умолчанию на ноутбук всегда загружается Ubuntu, а GRUB меню просто не показывается опцию для загрузки Windows 10.
На ноутбук были последовательно установлены Windows и Ubuntu, в качестве загрузчика выбран GRUB. GRUB успешно определил что на компьютере установлены две операционные системы и добавил файл загрузчика Windows (/EFI/Microsoft/Boot/bootmgfw.efi) в список доступных. Но после перезагрузки GRUB меню не отобразилось.
Чтобы показать меню GRUB можно при загрузке зажать:
- клавишу
Shift
(на компьютерах с BIOS) - клавишу
Esc
(для современных компьютеров с UEFI)
Если это не помогло, нужно отредактировать конфигурационный файл GRUB. Загрузитесь в Linux и включите отображение меню GRUB, добавив (раскомментировав) следующие строки в /etc/default/grub:
$ sudo nano /etc/default/grub
GRUB_TIMEOUT=20
Эта опция включает таймаут 20 секунд, которые должен ждать GRUB при загрузки на этапе выбора операционной системы. Убедитесь, что в конфигурационном файле нет строки GRUB_TIMEOUT=0
Проверьте, есть ли в конфиг файле строка:
GRUB_TIMEOUT_STYLE=hidden
Если такая строка есть, закоментируйте ее или измените на
GRUB_TIMEOUT_STYLE=menu
Если параметра нет, создайте его вручную. Проверьте, что в конфиг файле нет параметров GRUB_HIDDEN.
После изменения настроек в файле grub нужно обновить его конфигурацию командой:
$ sudo update-grub
Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.15.0-25-generic Found initrd image: /boot/initrd.img-5.15.0-25-generic Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting Warning: os-prober will be executed to detect other bootable partitions. Its output will be used to detect bootable binaries on them and create new boot entries. Found Windows Boot Manager on /dev/[email protected]/EFI/Microsoft/Boot/bootmgfw.efi Adding boot menu entry for UEFI Firmware Settings... done
Перезагрузите компьютер.
Если меню GRUB все еще не показывается, возможно GRUB не поддерживает видео режим вашего графической адаптера. Вы можете вместо графического GRUB меню отобразить консольное меню. Для этого добавьте в файл etc/default/grub строку:
GRUB_TERMINAL=console
Сохраните файл и обновите конфигурацию:
$ sudo update-grub
Перезагрузите устройство и убедитесь, что GRUB теперь показывает загрузочное меню.
Если вы пользуетесь на компьютере двумя операционными системами, Windows и Linux, и обновили свою Windows из 7, 8 или 8.1 до самой новой Windows 10, могут возникнуть проблемы с загрузчиком Grub при использовании защищенной загрузки UEFI. В ходе обновления системы Windows 10 просто затрет загрузчик Grub и запишет туда свой.
Дальше после перезагрузки системы пользователь ожидает увидеть меню выбора операционной системы Grub, но вместо этого загружается новая Windows 10. Может показаться, что нет никакого способа получить доступ к Ubuntu или что не может работать Ubuntu рядом с Windows 10. Но это не так.
Восстанавливаем Grub
Часто специалисты советуют установить Ubuntu на другой диск, но есть простое решение. Всегда можно воспользоваться стандартным способом, например, с помощью LiveCD диска. Но если вы используете UEFI, есть решение с помощью Windows 10.
ЗАПУСК CMD
Для начала кликните по иконке поиск в Windows, наберите там cmd и найдите Командную строку Windows. Кликните по ней правой кнопкой и выберите Запустить от имени администратора:
ПОДКЛЮЧЕНИЕ РАЗДЕЛА EFI
Далее вы можете попытаться угадать как называется файл загрузчика Grub на разделе EFI, но можно поступить по другому и просто посмотреть. Чтобы подключить раздел EFI запустите diskpart. Для этого выполните:
$ diskpart
Затем выведите список доступных дисков:
$ list disk
Выберите в качестве активного диск, на который установлена Windows 10 и на котором сейчас находится раздел EFI:
$ sel disk 0
Выведите список разделов на диске:
$ list vol
Найдите раздел EFI, он обычно отформатирован в файловую систему FAT и занимает около 100 мегабайт места. В данном случае это том 2:
Этому разделу надо присвоить букву. Для этого выполните:
$ sel vol 2
$ assign letter=I:
ПОИСК ЗАГРУЗЧИКА
Теперь необходимо найти файл загрузчика на разделе EFI. Но открыть этот раздел в проводникель нельзя, надо использовать только командную строку. Закройте DiskPart и выполните:
$ cd /d I:
Затем с помощью команды dir найдите загрузчик Grub. Например:
$ dir EFIUbuntu
Здесь есть файл grubx64.efi. Это он. Загрузчик может называться по другому в других дистрибутивах, именно поэтому я рассказал как всё посмотреть.
ВОССТАНОВЛЕНИЕ GRUB
Теперь скопируйте и выполните эту команду:
bcdedit /set {bootmgr} path EFIubuntugrubx64.efi
Не придется вводить пароль, если есть права администратора и программа должна отработать нормально. Эта команда обратно запишет вместо загрузчика Windows 10 загрузчик Grub.
Если команда вернула ошибку, вы можете откатить изменения такой командой:
$ bcdedit /deletevalue {bootmgr} path EFIubuntugrubx64.efi
Затем можно включить загрузчку загузчика Windows 10:
$ bcdedit /set {bootmgr} path EFIMicrosoftBootootmgfw.efi
Перезапустите компьютер и вы увидите на экране знакомый Grub. На этом процесс восстановиления Grub завершен.