Если вы используете на своем компьютере две операционные системы, 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. Для этого выполните:
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 EFI\Ubuntu
Здесь есть файл grubx64.efi. Это он. Загрузчик может называться по другому в других дистрибутивах, именно поэтому я рассказал как всё посмотреть.
Шаг 4. Восстановление Grub
Скопируйте и выполните эту команду:
Вам не нужно будет вводить пароль, у вас уже есть права администратора и программа должна отработать нормально. Эта команда обратно запишет вместо загрузчика Windows 10 загрузчик Grub.
Если команда вернула ошибку, вы можете откатить изменения с помощью следующих команд:
bcdedit /deletevalue {bootmgr} path \EFI\ubuntu\grubx64.efi
bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
Выводы
Восстановление Grub после Windows 10 завершено. Перезапустите компьютер и вы увидите на экране знакомый Grub. Надеюсь, эта краткая инструкция помогла вам выполнить восстановление Grub после установки Windows 10.
Пойдет. А что раньше, я имею в виду, если была установлена первой Ubuntu, а затем Windows 7, Grub работал нормально, без этой команды?
Нет, нужно было восстанавливать загрузчик с помощью LiveCD.
А если не linux не Ubuntu установлен?
А если linux другой установлен, в смысле?
Какой бы Linux не был - разницы нет. Проблема не в Linux, проблема в Windiws (тупой он...).
Не работает.... хоть тресни...
> bcdedit /set {bootmgr} path EFIubuntugrubx64.efi
Хорошо бы если автор указал какие-то ссылки, или привёл в 2 слова объяснения команды, для понимания ... иначе при малейших изменениях версий так и будет: "Не работает…. хоть тресни…"
Интересно, как удалить эту запись теперь в Windows?
Какая нужна команда чтобы удалить у себя эту запись bcdedit /set {bootmgr} 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 {bootmgr} 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 {bootmgr} 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 {bootmgr} path {\EFI\ubuntu\grubx64.efi}
3. И все равно не срабатывает. На команду:
PS I:\> bcdedit /set {bootmgr} path {EFI\ubuntu\grubx64.efi}
- Ответ:
bcdedit.exe : Параметр command уже указан.
строка:1 знак:1
+ bcdedit /set {bootmgr} path {EFI\ubuntu\grubx64.efi}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [], ParameterBindingException
+ FullyQualifiedErrorId : ParameterSpecifiedAlready
Как его понять?
У меня Debian, все команды выполнены, по их словам, успешно, но грузится без лишних слов windows10
Таких дисков (99мб) нашел три и успешно сделал всё со всеми (сраной letter=) и со всеми win поёт, а я нет.
Кстати, после bcdedit я выполнял exit;
Красавчик! Я 3 дня потерял на эту ерунду, что только не пробовал, ничего не помогло, жаль что раньше не нашел этот метод. Автору -респект!
Доброго времени)
А если нет EFI\Ubuntu ? на всякий случай прошелся по всему EFI.
Стоит Ubuntu 20.04 на SSD. После поставил на хард десятку. BIOS Перестал видеть убунту. Понимаю, что это логично, раз нет в загрузке вообще файлов убунты. Где-то можно их найти?
https://help.ubuntu.ru/wiki/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_grub не уверен, что тут поддерживаются ссылки, но вот, большая часть решения тут, но у меня отдельно был boot, плюс винда на hhd, а Линукс на ssd. Так что пришлось ещё немного повозиться, но все работает. Если схожая проблема, то задавайте свои ответы, может ещё загляну сюда)
Что за символ то такой assign letter=I: ?
Нашел способ проще. Заходите в BIOS, в одном из разделов отображаются варианты загрузки. Самой первой стоит windows, далее остальные. Меняете windows на linux и после этого появляется меню grub.
Способ через BIOS действительно рабочий и быстрый! Благодарю! 🙂 В настройках просто выбрал порядок загрузки с раздела, где стоит boot Linux'а и меню выбора операционной системы при загрузке вернулось! :))))
opensuse:
bcdedit /set {bootmgr} path \EFI\opensuse\grubx64.efi
Операция успешно завершена.
- не помогло
Спасибо тебе Добрый человек. Все получилось. Дай Бог тебе здоровья. Подробнее опишу как попал в такую ситуацию. Принесли на переустановку Astra Linux SE. Принесли новый жёсткий диск и попросили поставить windows 10. Я не отключил жёсткий диск с астрой и Виндоус затер подгрузчика астры. По статьей Выше я вернул подгрузчик и затем отключив жёсткий диск с астрой поставил Виндоус 10 на новый жёсткий диск. Всем добра.
Крч у меня была проблема такая же, и я долго не мог решить ее. В итоге запустил все через cmd а не через powershell и все с первого раза получилось (команда $ bcdedit /set {bootmgr} path EFIubuntugrubx64.efi
У меня тоже сначала не сработало, как позже оказалось винда при обновлении безопасности сама включила secure boot в bios (обнаглели вконец), зашел в bios, отключил secureboot - все, Grub заработал, винду снес нах к чертям...
Делал клонирование одного диска на другой и глупая, наглая винда себя вперед пропихнула, эта статья очень помогла!
Спасибо Ваша статья очень помогла
У меня Ubuntu был установлен на внешний ssd, после переустановки Win 10 пропал GRUB. Сделал все, что тут советовали - результата нет(. Подскажите, может из-за того, что ubuntu установлен на внешний ssd нужны другие какие-то процедуры?
Всё, что советуют, нужно делать с оглядкой на собственную систему. Проверяйте пути, диски, свою внимательность.
В моём случае был перенос диска (debian+win10) с рабочего на домашний комп. Домашний работал на другом ssd с win7pro. И естественно, он начал брыкаться и грузить винду изо всех сил, после чего вообще упал в рекавери. Статья помогла, конечно же, но последним этапом нужно в биосе в безопасной загрузке выставить other OS.
Мой Дебиан взлетел. Автору респект, хотя ничего особенного в этих командах и нет)
Cnacu6o )
На шаге 3 всё. "Не удается найти позиционный параметр, принимающий аргумент "I:".