В данной статье рассматривается процесс восстановления загрузчика 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
Сегодня я хотел бы показать вам способ, как можно восстановить GRUB 2 после установки или переустановки Windows на компьютер с Linux. И еще один способ, как это можно сделать это из-под Debian описан в этой заметке.
Если вы на своем компьютере используете дуалбут из Windows и Linux, то вероятно уже знаете, что во время установки ОС для того, чтобы было меньше возни, лучше устанавливать сначала ОС от Microsoft а потом только Ububtu, Debian или что вы там желаете установить. Связано это с тем, что Windows не видит других операционных систем кроме своих и поверх загрузчика GRUB записывает в MBR свой загрузчик. Соответственно, если вы установите сначала Linux а потом Windows, то в итоге не сможете загрузить Linux, так как его просто не будет в списке загрузки. Но что же делать если вам все же необходимо переустановить Windows или просто установить ее на компьютер с Linux? Не переустанавливать же ради этого и Linux? Нет. Просто после всего, что вы сделаете нужно будет восстановить загрузчик GRUB.
Для демонстрации я приведу свой случай с виртуальными машинами, но данный способ ничем не отличается от восстановления GRUB на реальном железе.
У меня на один виртуальный жесткий диск были установлены Ubuntu 14.04 и Windows 7. И вот мне захотелось попробовать developer версию Windows 10. Я решил установить ее поверх семерки. Как и положено, после всех манипуляций Windows 10 заработала, а Ubuntu не запускалась. Так как Ubuntu мне нужна была для работы я решил восстановить затертый GRUB.
Восстановление GRUB 2
Сначала необходимо загрузится с LiveDVD. Когда система загрузится, открываем терминал (Ctr+Alt+T) и смотрим структуру разделов с помощью команды:
sudo fdisk -l
У меня, как видно по выводу команды, диск разделен на 6 разделов: два NTFS для Windows, Extended (расширенный) и три отмечены как Linux для Ubuntu. Чтобы установить GRUB необходимо примонтировать корневой раздел Ubuntu – мой sda5:
sudo mount /dev/sda5 /mnt
И чтобы записать GRUB в загрузочную запись, нужно выполнить в терминале команду:
sudo grub-install --root-directory=/mnt /dev/sda
После этого можно перезагрузить компьютер:
sudo reboot
GRUB восстановлен. Но остался один момент. Сейчас на виртуальной машине была установлена Windows 10, но в меню загрузчика по прежнему она отображалась как семерка, из-за чего при попытке ее запуска выскакивала ошибка. Чтобы исправить это достаточно было просто загрузится в Ubuntu (не LiveDVD) и через терминал обновить загрузчик:
sudo update-grub
Вот так просто можно восстановить GRUB после установки Windows
Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.
Grub (или GRand Unified Bootloader) — загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего — основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите установить Ubuntu 18.04 рядом с Windows, вам определенно понадобится помощь Grub.
Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно — узнаете далее.
От чего могут возникнуть проблемы
Одна из самых распространенных причин — это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК — вам непременно стоит знать правильную последовательность:
- Сначала устанавливаем Windows
- И только потом уже Linux
Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.
Grub может сломаться и по другим причинам. Например, из-за попыток ручного изменения параметров запуска (при недостатке опыта), в таком случае нужно будет либо вручную убирать лишнее, либо полностью переустанавливать Grub.
Восстановление Grub с помощью LiveCD/USB
Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.
Как создать LiveCD/USB
Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.
Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.
С помощью Rufus:
Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:
Вставляем носитель, выбираем его в соответствующем меню. Далее выбираем нужную схему раздела и тип системного интерфейса, и после уже открываем файловый менеджер с помощью этой кнопки:
Находим загруженный образ через менеджер, после чего жмем «Старт».
С помощью Etcher:
Опять же, идем на официальный сайт, где скачиваем последнюю версию утилиты. Далее делаем все так, как показано на этой гифке:
Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:
Открываем таблицу разделов с помощью команды:
sudo fdisk -l
Примерно такая таблица будет выведена на экран:
/dev/sda1 27 7683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended
По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.
С помощью следующей команды мы смонтируем этот раздел в /mnt:
sudo mount /dev/sda1 /mnt
Теперь, для записи grub в MBR, нужно ввести следующую команду:
sudo grub-install --root-directory=/mnt /dev/sda
Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.
Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:
sudo update-grub --output=/mnt/boot/grub/grub.cfg
Вот и все, восстановление закончено!
Восстановление с помощью chroot
Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.
Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:
sudo fdisk -l
В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.
/dev/sda1 27 7683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended
В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:
sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.
Далее мы переходим в окружающую среду chroot с помощью команды:
sudo chroot /mnt
И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:
grub-install /dev/sda
Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:
grub-install --recheck /dev/sda
или:
grub-install --recheck --no-floppy /dev/sda
Если все прошло успешно, выходим из chroot, используя команду:
exit
Далее нужно отмонтировать все разделы. Для этого вводим в терминал:
sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt
В случае, если вы монтировали раздел /boot введите команду:
sudo umount /mnt/boot
Теперь перезагружаем систему с помощью:
sudo reboot
Можно также обновить меню Grub, используя команду:
sudo update-grub
Восстановление Grub в rescue mode
Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.
Само восстановление проходит таким образом: сначала мы подгружаем все модули, чтобы открыть доступ ко всей функциональной части Grub, после чего запуститься с нужного раздела. Надо понимать, что Grub состоит из двух частей:
Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).
Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:
ls set unset insmod
Для начала вводим следующую команду:
ls
В выводе будет что-то подобное:
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)
В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.
В загрузчике Grub разделы нумеруются в обратном исчислении. Не очень ясно какой именно из разделов назван, к примеру (hd0,msdos3). Чтобы было более понятно, можно использовать вид (hd0,1). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела — (hd0,1). Используем следующую команду:
set prefix=(hd0,1)/boot/grub set root=(hd0,1)
С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:
ls /boot/grub
Если в выводе будет список файлов и папок, значит мы все сделали правильно. Теперь можно загрузить все необходимые модули. Для этого выполним команды:
insmod ext2 insmod normal normal
После выполнения команд Grub загрузится в полнофункциональном режиме. Будут найдены все операционные системы, которые установлены на компьютере, после чего будет показано стандартное меню загрузки.
Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:
grub-install /dev/sdX
sdX — диск, на который должен быть установлен Grub.
Если операционная система расположена на разделе с файловой системой btrfs, то нам необходимо выполнить следующие команды:
set prefix=(hd0,1)/@/boot/grub set root=(hd0,1)
И подгрузить модули:
insmod btrfs insmod normal
Ну и теперь запустить GRUB:
normal
Восстановление Grub с помощью утилиты Boot repair
С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.
Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:
- Запись и установка специального образа диска Boot Repair (и дальнейшая загрузка с него)
- Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.
Если с первым способом все понятно: нужно просто скачать и записать образ с помощью соответствующих инструментов. То во втором уже нужно знать конкретные команды, которые выглядят следующим образом:
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update && sudo apt-get install -y boot-repair
В утилите будет доступно два варианта на выбор:
Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.
Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.
Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.
Вам обязательно стоит заглянуть на официальный сайт Boot Repair. Там вы сможете найти более подробную информацию обо всех возможностях и особенностях программы. Там же будет доступна информация о выходе новых версий: фиксах и улучшениях самой утилиты, а также многом и многом другом.
Выводы
Вот мы и рассмотрели несколько вариантов исправления загрузчика Grub. Стоит сказать, что некоторые из них могут показаться сложными или даже невыполнимыми. Это не так, каждый из рассмотренных способов нашел подтверждение в виде сотен и тысяч актов исправления загрузчика Grub в опенсорсном сообществе. Кстати говоря, какой из способов выбрать — решать только вам, любой из них достаточно эффективен, чтобы попасть в этот материал.
Возможно вас заинтересуют и другие похожие материалы про починку загрузчика Grub2. Например, в этом материале вы узнаете, как починить GRUB2 если Ubuntu не хочет загружаться. Там более подробно рассказывается, как фиксить груб с помощью утилиты Boot Repair, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.
Если вы используете на своем компьютере две операционные системы, 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, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Некоторым для работы нужно использовать на своем ПК одновременно Linux и Windows, а для их установки нужно иметь специальный загрузчик – grub. Но с данным приложением могут произойти различные сбои, поэтому предлагаем узнать, как самостоятельно можно восстановить работу загрузчика grub.
Для начала следует четко понимать, что же такое grub. Это один из проектов GNU, который разработан с целью установки нескольких операционных систем на свой ПК, который каждый раз при включении предлагает выбрать нужную ОС.
Именно данный загрузчик считается эталонным, ведь он соответствует спецификации Multiboot и позволяет загрузить любую из операционных систем с ней совместимых. Кроме этого загрузчик способен цепочкой передать управление другому подобному приложению, с помощью чего расширяется список ОС, которые можно установить на своем устройстве.
Но загрузчик grub также подвержен некоторым проблемам и поломкам. Так, одной из самых частых причин поломки загрузчика является неправильно выбранный установочный порядок двух ОС:
- Windows.
- Linux.
Для правильной работы эти ОС устанавливаются именно в таком порядке, как указанно выше. Иначе grub повредится и система начнет загружаться сразу в Windows, а вот Линукс и вовсе станет недоступным для работы.
Также к не менее распространенным причинам поломки grub следует отнести:
- самостоятельную корректировку параметров запуска неопытными пользователями;
- некорректную установку системы, переустановку Windows 7, 8, 10 или Linux;
- использование других дистрибутивов;
- переразметку.
При возникновении поломок не спешите заниматься переустановкой систем в полном объеме. Для нормализации работы достаточно будет заняться восстановлением grub.
Использование терминала
Итак, столкнувшись с проблемой, незамедлительно следует заняться восстановлением загрузчика grub. Предлагаем для начала разобраться с двумя самыми известными способами.
Используем терминал
Для начала следует подготовить флешку, на которую необходимо заранее установить Etcher. После этого подключаем носитель в неисправный компьютер и перезагружаем его. Открывается Live-система, запускаем терминал и запускаем таблицу разделов при помощи команды:
sudofdisk -1
Вот что должно появиться на экране:
/dev/sda1 27683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended
Теперь можно понять где расположена система. Следующим этапом приступаем к монтированию раздела на mnt:
sudo mount /dev/sda1 /mnt
Самое время записать grub в MBR посредством команды:
sudo grub-install –root-directory=/mnt /dev/sda
Следующая команда предназначена для обновления меню груб-загрузчика:
sudo update-grub – output=/mnt/boot/grub/grub.cfg
Придерживаясь всех инструкций операция пройдет достаточно быстро.
Применение chroot
Кроме LiveCD помочь может утилита chroot и таблица разделов. Начинаем с команды:
sudo fdisk -1
Появится такая таблица:
/dev/sda1 27683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended
Теперь монтируем разделы:
sudo mount /dev sda1 /mnt sudo mount - - bind /dev /mnt/dev sudo mount - - bind /proc /mnt/proc sudo mount - - bind /sys /mnt/sys
Если разделы /boot или /var размещены по отдельности, то их надо примонтировать в /mnt/boot и /mnt/var.
После этого перейдите в окружение chroot:
sudo chroot /mnt
После выполнения всех вышеуказанных пунктов занимаемся переустановкой Grub:
grub-install /dev/sda
При ошибке системы применяется команда:
grub-install - - recheck /dev/sda
Или:
grub-install - - recheck - - no-floppy /dev/sda
Когда все получиться выходим из утилиты используя следующую команду:
exit
Затем вводим в терминале следующие команды для монтирования всех разделов:
sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt
При монтаже /boot применяйте такую команду:
sudo umount /mnt/boot
Перезагрузите систему при помощи:
sudo reboot
Примените указанную ниже опцию, чтобы обновить загрузчик:
sudo update-grub
Утилита восстановления Boot
Если предыдущие методы не подошли, то можно использовать утилиту Boot.
Для этого:
- Запускаем со съемного носителя Ubuntu, проверить наличие активного интернет-соединения.
- Находим терминал и по очереди запускаем такие команды:
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install boot-repair
- Включаем утилиту в опции «Восстановление загрузчика».
- Затем жмем «Рекомендуемые способы восстановления». Нужно подождать пока процедура закончится.
После этого должна восстановиться нормальная работа системы.
Rescue mode
Процесс восстановления в режиме grub rescue происходит в несколько этапов.
Загрузите все модули, чтобы доступ к функциям системы открылся.
Rrescue mode имеет четыре команды:
- ls;
- set;
- unset;
- insmod.
Сначала включаем первую:
ls
После этого на экране появится подобное:
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)
Иногда система Grub неверно определяет файловые системы на дисках. Попытайтесь угадать диски, которые видите. Это не составит труда зная их структуру.
В примере видно, что загрузчик показывает их как msdos, где два доступных диска. На первом три раздела, а на втором два.
Обычно загрузчик нумерует разделы в обратном порядке. Чтобы было понятнее используйте вид hd0,1. Если в Grub отсчет разделов идет с 1, а дисков с 0, то сразу будет понятно в какой раздел установлена операционная система. Применяем следующую команду:
set prefix-(hd0,1)boot/grub set root-(hd 0,1)
Так система будет использовать конкретный диск для выполнения всех предыдущих операций. Для проверки наличия загрузчика на данном диске выполняем следующие действия:
ls /boot/grub
О том, что все сделано правильно подскажет появление списков и папок.
Для загрузки всех необходимых модулей выполните команды:
insmod ext2 insmod normal normal
После этого система будет работать в полноценном режиме.
Для закрепления результата зайдите в терминал Linux и с root-правами выполните следующую команду:
grub-install / dev/sdX
sdX — диск, на который должен быть установлен Grub.
При расположении ОС в разделе btrfs выполните другое действие:
set prefix-(hd0,1)/@/boot/grub set root-(hd 0,1)
Затем подгрузите модули:
insmod btrfs insmod normal
И запустите Grub:
normal
Данная утилита позволяет запускать систему быстро и без проблем.
Через командную строку
Бывает, что повреждения не очень серьезные, но система не запускает все программы. В таком случае появляется следующее сообщение: Minimal BASH like line editing is supported. В этом случае загрузить Ubuntu можно с помощью командной строки.
Обязательно нужно знать на каком винчестере находится ядро и система. Для выполнения задачи необходимо последовательно выполнить несколько пунктов:
- Задать команду ls. (Это необходимо для того, чтобы отсканировать диски и разделы. После этого будет выведен список жестких дисков и тип их файловой системы.)
- Выбрать раздел, с которым будем работать.
- Запустить оболочку Grub, ядро Linux, систему boot.
- Открыть терминал и выполнить следующие команды сразу после того как откроется Ubuntu:
sudo Grub2-install /dev/sda sudo Grub2-mkconfig -o /boot/Grub/Grub.cfg
- Для исправной и регулярной работы перезапустите устройство.
Grub не видит Windows 10
Существует несколько причин по которым возникает эта проблема. Чаще всего это неисправная работа os-prober или размещение системы на другом жестком диске.
В первую очередь нужно сделать так, чтобы программа увидела раздел. Затем переместите его в другую папку:
$ sudo mount -t ntfs-3g -o ro /dev/sda1
Запустите утилиту os-prober.
После обнаружения Windows обновите конфигурацию загрузчика. Одним из этих способов:
- $ sudo update-grub;
- $ sudo grub2-mkconfig -0 /boot/grub/grub.cfg;
Бывает, что это не помогает. Тогда нужно внести пункт меню Windows вручную. Это процедура займет немного больше времени, но будет эффективнее.
Необходимо узнать UUID диска, на котором установлена Windows и выполнить такое действие:
$ blkid /dev/sda1
Потом нужно открыть окно /etc/grub.d/40_custom и добавить туда нижеуказанный код:
$ enuentry “Windows 10” { insmod ntfs set root= ‘(hd0,1)’ search -- no-floppy -- fs-uuid set B4A6AEB7A6AE7A0E chainloader +1 }
При помощи следующей команды произойдет обновление конфигурации:
$ sudo update-grub
Восстановление grub после установки Windows
Чтобы восстановить загрузчик grub нужно загрузится с LiveDVD, открыть терминал и выполнить команду:
sudo fdisk -1
После этого система делится на шесть ячеек.
Для установки груб прикрепите корневой раздел Ubuntu:
sudo mount /dev/sda5 /mnt
Используйте в терминале нижеуказанное действие, чтобы записать grub в загрузки:
sudo grub-install --root-directory=/mnt /dev/sda
Затем перезагрузите компьютер:
sudo reboot
Не смотря на то, что процесс восстановления grub кажется сложным, он очень простой и не требует особенных знаний. Достаточно просто хорошо изучить инструкцию и следовать всем пунктам.
Всем доброго времени!
Эта заметка будет довольно специфична и пригодится только тем, у кого на компьютере установлено несколько версий ОС: 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 от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).
Если помимо 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, на ПК с двумя операционными системами она нередко становится источником проблем.
Загрузка…
Установили Windows, и она затерла Вам загрузчик Grub? Не проблема, его можно легко восстановить с помощью этого руководства.
Нам понадобится загрузочный диск с любым Linux (например Ubuntu) и 10 минут свободного времени.
В зависимости от дистрибутива в системе может использоваться Grub, или Grub 2.
Восстановление Grub (старая версий)
Старую версию Grub использует Mandriva, Fedora, и ряд других дистрибутивов. Чтобы его восстановить делаем следующие действия:
1. Загружаемся с загрузочного компакт-диска (или флешки) и открываем терминал.
2. Запускаем в терминале консоль Grub:
sudo grub
3. Указываем корневой раздел, на котором находятся рабочие файлы Граба:
grub> root (hd0,4) Filesystem type is ext2fs, partition type 0x83
hd0
обозначает номер жесткого диска в системе, а 0 — номер раздела на нем. Если не знаете на каком разделе находятся рабочие файла Grub, то можно воспользоваться командой
find: grub> find /boot/grub/menu.lst (hd0,4)
Результат ее работы пишем в параметрах к команде root.
4. Восстанавливаем загрузчик с помощью команды setup:
grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,4)/boot/grub/stage2 /boot/grub/menu.lst"... succe eded Done.
В качестве параметра команде пишем hd0
, так как в подавляющем большинстве случаев загрузка компьютера начинается именно с этого диска.
5. Перезагружаемся и наслаждаемся результатом!
Восстановление Grub 2 (новая версия)
Grub 2 используется в Ubuntu и всех дистрибутивах на базе Ubuntu.
1. Загружаемся с загрузочного компакт-диска (или флешки) и открываем терминал.
2. Ищем раздел, на котором находятся рабочие файлы Grub 2. Для этого поочередно монтируем все разделы на дисках и ищем на них папку /boot/grub
.
3. Восстанавливаем загрузчик с помощью программы grub-install
. открываем терминал и командуем:
sudo grub-install --root-directory=/media/disk_with_boot_grub/ /dev/sda
Здесь вместо /media/disk_with_boot_grub/
указываем путь, куда был смонтирован раздел, который был найден на предыдущем шаге.
4. Все готово, перезагружаемся и пользуемся.