Восстановление grub после установки windows 10

Обновлено: 07.07.2024

За что я ненавижу 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 сформировал отчет и выдал ссылку на него. Открыв ссылку я увидел подробный отчет о состоянии моего загрузчика и в конце рекомендации по восстановлению, если система сама не загрузилась после перезапуска. Рекомендации были примерно такими

То есть загружаемся в Windows, открываем консоль от имени Администратора системы и выполняем команду:

bcdedit /set < bootmgr >path \E FI \u buntu \s himx64.efi

к сожалению эта команда мне не помогла. Порыскав немного по ссылке которую мне сформировал boot-repair я нашел такой раздел в ней.

Видим от того что у меня Linux Mint команда для восттавновления данная boot-repair мне не помогла, но я немного изменил ее следующим образом:

bcdedit /set < bootmgr >path \EFI\ubuntu\grubx64.efi
после чего к счастью при загрузке снова стал отображаться Grub2, из которого я могу на свой выбор загрузить либо Windiws, либо Linux.

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

В данной статье рассматривается процесс восстановления загрузчика 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):

Вывод fdisk для BIOS

Восстановление GRUB. fdisk l

Пример вывода команды:

В моем случае мы видим 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

Fdisk l для UEFI

Для новых компьютеров с UEFI вывод команды fdisk -l может быть примерно следующим:

Нам нужно определить, на каком разделе установлен Linux (корневой раздел), а также определить EFI-раздел. В моем случае это разделы: /dev/nvme0n1p5 и /dev/nvme0n1p1 , которые расположены на диске /dev/nvme0n1 .

Монтирование разделов

Примонтируем корневой раздел. Выполняем команду (вместо /dev/sda2 вы должны указать свой раздел):

Восстановление GRUB. Монтирование корневого раздела

Мы примонтировали раздел /dev/sda2 в директорию /mnt .

Если для загрузчика у вас выделен отдельный раздел, то нужно примонтировать еще и его (вместо /dev/sdX укажите ваш boot-раздел):

Теперь можно посмотреть содержимое директории /mnt , чтобы убедиться, что мы примонтировали верный раздел:

Восстановление GRUB. Список файлов

Вывод команды должен быть примерно следующим. Обратите внимание есть ли в этом списке каталог /boot , так как именно в нем установлен GRUB.

Также можно проверить, что директория boot не пустая:

Восстановление GRUB. Список файлов в boot

У меня вывод команды выглядит следующим образом. Обратите внимание на присутствие каталога с именем grub .

Далее нужно создать ссылки на несколько директорий, к которым GRUB должен иметь доступ для обнаружения всех операционных систем. Для этого выполните команды:

Восстановление GRUB. mount bind dev pts proc sys

Монтирование EFI-раздела

Если у вас используется UEFI, то еще нужно примонтировать EFI-раздел в директорию /mnt/boot/efi (выше я указал пример вывода команды fdisk -l в котором показан EFI-раздел):

Выполняем chroot на /mnt

На предыдущем шаге мы смонтировали все необходимые директории в директорию /mnt . Теперь переключимся (выполним chroot ) на данную директорию. Выполняем команду:

Восстановление GRUB. chroot

Генерация файла конфигурации GRUB

Данный шаг нужно выполнять не всем. Если у вас был установлен GRUB и вы уверены, что его конфигурация верная, то можно перейти к следующему шагу.

Для генерации файла конфигурации GRUB используется команда update-grub . Данная команда автоматически определяет файловые системы на вашем компьютере и генерирует новый файл конфигурации. Выполняем команду:

Восстановление GRUB. update-grub

В выводе команды будет показано, какие операционные системы были найдены.

Если вдруг утилита update-grub не определила ваш Windows (у меня такое было для UEFI), то можно будет запустить update-grub повторно уже из вашей Linux-системы, когда вы в нее загрузитесь (мне это помогло и Windows определился).

Устанавливаем GRUB

Осталось выполнить установку GRUB на диск. Мы определили раздел на котором у нас установлен GRUB на первом шаге данного руководства. В моем случае это раздел /dev/sda2 , который расположен на диске /dev/sda .

Для установки GRUB используется команда grub-install , которой нужно передать в качестве параметра диск, на который будет выполняться установка (в моем случае это диск /dev/sda ):

Восстановление GRUB. grub-install

Перезагрузка компьютера

Выходим из окружения chroot, для этого выполняем команду:

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

Если вы монтировали boot-раздел, то его тоже нужно отмонтировать:

Если вы монтировали EFI-раздел, отмонтируем:

Отмонтируем корневой раздел:

Перезагружаем компьютер. Для этого выполняем команду:

Если во время перезагрузки компьютера меню GRUB не появилось, то это еще не значит, что он не восстановился. Возможно, просто установлена нулевая задержка и меню не показывается. Чтобы показать меню GRUB нужно во время загрузки, после того, как появился логотип материнской платы:

  • удерживать клавишу Shift , если у вас классический BIOS;
  • нажать Esc , если у вас UEFI.

Если у вас, при выполнении grub-update, не определился Windows и не был добавлен в меню GRUB, то уже загрузившись в вашу систему Linux (не LiveCD), откройте терминал и выполните:

Мне это помололо на компьютере, который использует UEFI.

Шпаргалка

Мы рассмотрели процесс восстановления загрузчика GRUB 2. Для удобства привожу краткую шпаргалку по командам, которые мы выполняли. Учитывайте, что названия и имена разделов ( /dev/sd. ) у вас могут отличаться.

Если вы используете на своем компьютере две операционные системы, Windows и Linux, и обновили свою Windows из 7, 8 или 8.1 до самой новой Windows 10, могут возникнуть проблемы с загрузчиком Grub при использовании защищенной загрузки UEFI. Во время обновления Windows 10 просто затрет загрузчик Grub и запишет туда свой.

Вы, как обычно, перезагружаете систему и ожидаете увидеть меню выбора операционной системы Grub, но вместо этого загружается новая Windows 10. Вам может показаться, что нет никакого способа получить доступ к Ubuntu или что не может работать Ubuntu рядом с Windows 10. Но это не так.

Как восстановить Grub после Windows 10

Многие советуют установить Ubuntu на другой диск, но есть более простое и прекрасно работающие решение, чтобы восстановить grub после установки windows 10. Кончено, всегда можно восстановить grub2 стандартным способом, с помощью LiveCD диска, но если вы используете UEFI, есть более легкое решение, мы сделаем все с помощью Windows 10.

Хотя за основу в этой статье берется Ubuntu, но это также будет работать и для других дистрибутивов. Просто папка, в которой находятся файлы загрузчика будет немного отличатся.

Шаг 1. Запуск cmd

Кликните по иконке поиск в Windows, наберите там cmd и найдите Командную строку Windows. Кликните по ней правой кнопкой и выберите Запустить от имени администратора:


Шаг 2. Подключение раздела EFI

Далее вы можете попытаться угадать как называется файл загрузчика Grub на разделе EFI, но можно поступить по другому и просто посмотреть. Чтобы подключить раздел EFI запустите diskpart. Для этого выполните:

Затем выведите список доступных дисков:

Выберите в качестве активного диск, на который установлена Windows 10 и на котором сейчас находится раздел EFI:


Далее выведите список разделов на диске:

Найдите раздел EFI, он обычно отформатирован в файловую систему FAT и занимает около 100 мегабайт места. В данном случае это том 2:


Этому разделу надо присвоить букву. Для этого выполните:

sel vol 2
assign letter=I:


Шаг 3. Поиск загрузчика

Далее надо найти файл загрузчика на разделе EFI. Но открыть этот раздел в проводнике вы не сможете, надо использовать только командную строку. Закройте DiskPart и выполните:

Затем с помощью команды dir найдите загрузчик Grub. Например:


Здесь есть файл grubx64.efi. Это он. Загрузчик может называться по другому в других дистрибутивах, именно поэтому я рассказал как всё посмотреть.

Шаг 4. Восстановление Grub

Скопируйте и выполните эту команду:

bcdedit /set path \EFI\ubuntu\grubx64.efi

Вам не нужно будет вводить пароль, у вас уже есть права администратора и программа должна отработать нормально. Эта команда обратно запишет вместо загрузчика Windows 10 загрузчик Grub.

Если команда вернула ошибку, вы можете откатить изменения такой командой:

bcdedit /deletevalue path \EFI\ubuntu\grubx64.efi

Затем можно включить загрузчку загузчика Windows 10:

bcdedit /set path \EFI\Microsoft\Boot\bootmgfw.efi

Выводы

Восстановление Grub после Windows 10 завершено. Перезапустите компьютер и вы увидите на экране знакомый Grub. Надеюсь, эта краткая инструкция помогла вам выполнить восстановление Grub после установки Windows 10.



Оцените статью:

(23 оценок, среднее: 4,43 из 5)

Об авторе

46 комментариев

Пойдет. А что раньше, я имею в виду, если была установлена первой Ubuntu, а затем Windows 7, Grub работал нормально, без этой команды?

Нет, нужно было восстанавливать загрузчик с помощью LiveCD.

А если не linux не Ubuntu установлен?

А если linux другой установлен, в смысле?

Какой бы Linux не был - разницы нет. Проблема не в Linux, проблема в Windiws (тупой он. ).

Не работает. хоть тресни.

> bcdedit /set path EFIubuntugrubx64.efi
Хорошо бы если автор указал какие-то ссылки, или привёл в 2 слова объяснения команды, для понимания . иначе при малейших изменениях версий так и будет: "Не работает…. хоть тресни…"

Интересно, как удалить эту запись теперь в Windows?
Какая нужна команда чтобы удалить у себя эту запись bcdedit /set path \EFI\ubuntu\grubx64.efi?

Это действительно помогло. Очень быстро и удобно. У меня установлены Linux Mint, Ubuntu и OpenSUSE. Большое спасибо!

А можно пример команды для Linux Mint?

Помогло после обновления биос. Спасибо.

а если у меня не UEFI?

У нас есть статья и на этот случай.

Помогло второй раз, но уже после неудачного обновления ядра на Ubuntu 16.04, слетели обе системы. Системные Windows 10 (на m.2) разделы восстановил acronis, а grub командной строкой. Еще раз спасибо!

Моё увожение автору

Большое спасибо за помощь.

привет всем кто может помочь в моей проблеме у меня две системы. винда 10 и линукс минт ребека начал обновлятся виндоуз и полетел загрузчик после обновления загрузчика видит только линукс

Ну и нормально же)) Страшнее было бы, если ьы осталась только винда.

Зайдите в линукс и в терминале выполните sudo update-grub

Винда слетела нах, спасибо

Сцука . Винда нах слетела.

Третий раз не удалось. После неудачного обновления Windows 10 до 1703 ставил Windows начисто, не трогая остальные диски. Ubuntu на SSD 60Гб. Windows 10 на m2 120Гб. Загрузчик grub на диске с Ubuntu, туда же прописался после установки Ubunu 16.04 загрузчик Windows Boot loader. После ввода bcdedit /set path \EFI\ubuntu\grubx64.efi и перезагрузки - темный экран .

добрый день, нужна помощь, была винда 10, на жестком диске было 2 раздела, один с загрузчиком виндоус, другой с виндоус, загрузился с лив-флешки Арча (Arch linux), доразбил диск с виндоуз под установку линукс, раздел, где был загрузчик виндоус использовал под boot арча (специально так сделал), сделал другие разделы для арча, установил арч и теперь, естественно, не грузится виндоуз, вопрос следующий, как, НЕ восстанавливая раздел для загрузчика виндоуза загрузиться в виндоуз, иначе говоря, я хочу, чтобы на разделе boot арча были специальные загрузочные файлы, которые помогут загрузиться в виндоуз, возможно ли такое?

Спасибо, с Mint 18.1 помогло.

Такая проблема: Есть дуалбут: Windows 10 (1703) и ubuntu 16.04 LTS. Обновил Windows до последней версии, перезапустил, увидел меню выбора системы, выбрал Windows и дальше черный экран сменяется фиолетовым и все, как-будто система дальше не загружается. Я "опасным" способом выключаю ноутбук, захожу в меню снова -> Windows -> дальше все загружается, восстанавливаясь до пред. версии (1703), что логично. Что мне поможет запустить Windows, но с обновлениями. Спасибо за внимание.

Спасибо за рецепт. Очень удобно и быстро восстановился загрузчик.

У меня Дипин, эта команда не помогла. Что надо поменять в команде, чтобы она сработала?

Огромное спасибо автору за экономию времени, заняло 30 секунд. Система с Win10/Fedora29,
после Windows Feature Update 1809 затёрся grub, сейчас всё работает.

Спасибо! Помогли сэкономить время!
Сработало после неудачного обновления Windows 10.
Система откатилась до состояния перед обновлением, но вот загрузчик grub потёрла.
Уже писал на флешку live-образ, но вовремя нашёл вашу статью.
Ещё раз благодарю!

Не помогло! У меня стоит на 1 диске винда и LinuxMint
sda1 - Восстановление
sda2 - EFI
sda3 - Windows 10
sda4 - root
sda5 - home
При установке Mint запилил на sda2 свою папку ubuntu рядом с виндой. Винда при переустановке естественно перетерла раздел sda2. Так что команде bcdedit /set path \EFI\ubuntu\grubx64.efi некуда ссылаться.
Выход из ситуации:
1. Загрузился с LifeCD
2. Поправил в /etc/fstab UUID разделов EFI и Windows 10 т.к. форматировал их приустановке.
3. В LinuxMint есть программа Timeshift(аналог восстановления в винде). Из снепшота достал папку /boot/EFI/ubuntu и скопировал ее в рабочую.
В принципе потом при загрузке в UEFI появляется ubuntu. В первый раз загрузилась как то странно, но в linux зашло. Далее я удалил старые ядра и оно переинициализировало grub, дальше все стало загружаться как по маслу.

Спасибо, помогло
У меня Manjaro; просто написал название своего дистрибутива вместо Ubuntu и все получилось с первого раза.

DISKPART> assign letter=I:

Ошибка службы виртуальных дисков:
Указанное имя диска уже занято.

Вот на этом у меня всё и закончилось

аналогично. Теперь интересует, как убрать этот раздел I:, который появился после второго шага. Если кто-то знает, подскажите, пожалуйста

т.е. раздел создался, но дальше файл с убунту не обнаружился. Решила снести убунту, освободила диск, чтобы заново установить, но этот I: остался. Спасите кто-нибудь ))

Выполните в DiskPart команду remove letter=I, аналогично тому как вы выполняли assign letter.

Большое спасибо. Очень полезная статья. Но. 1. У меня не сработало.
2. В параметрах команд bcdedit требует фигурные скобки.
Например - bcdedit /set path <\EFI\ubuntu\grubx64.efi>
3. И все равно не срабатывает. На команду:
PS I:\> bcdedit /set path
- Ответ:
bcdedit.exe : Параметр command уже указан.
строка:1 знак:1
+ bcdedit /set path
+


+ CategoryInfo : InvalidArgument: (:) [], ParameterBindingException
+ FullyQualifiedErrorId : ParameterSpecifiedAlready
Как его понять?

У меня Debian, все команды выполнены, по их словам, успешно, но грузится без лишних слов windows10
Таких дисков (99мб) нашел три и успешно сделал всё со всеми (сраной letter=) и со всеми win поёт, а я нет.
Кстати, после bcdedit я выполнял exit;

Красавчик! Я 3 дня потерял на эту ерунду, что только не пробовал, ничего не помогло, жаль что раньше не нашел этот метод. Автору -респект!

Доброго времени)
А если нет EFI\Ubuntu ? на всякий случай прошелся по всему EFI.
Стоит Ubuntu 20.04 на SSD. После поставил на хард десятку. BIOS Перестал видеть убунту. Понимаю, что это логично, раз нет в загрузке вообще файлов убунты. Где-то можно их найти?

Сегодня я хотел бы показать вам способ, как можно восстановить 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) и смотрим структуру разделов с помощью команды:

Моя таблица разделов

И чтобы записать GRUB в загрузочную запись, нужно выполнить в терминале команду:

Установка GRUB

После этого можно перезагрузить компьютер:

Читайте также: