Обновление Windows 10 убивает grub, а восстановление загрузки не помогает


83

Я только что обновился до Windows 10 с Windows 8.1 на своем многораздельном ноутбуке, на котором установлена ​​Ubuntu 14.04. Grub больше не появлялся при загрузке, поэтому я запустил восстановление с Ubuntu liveUSB. Похоже, это не имело никакого эффекта. Я проверил и безопасная загрузка все еще отключена.
Журнал от boot-repair: http://paste.ubuntu.com/11972534/
Так что же дальше?

Обновление: я пытался использовать chroot для обновления grub из моего раздела Ubuntu. update-grub успешно запускается при поиске менеджера загрузки как Linux, так и Windows, но этот процесс по-прежнему не имеет никакого эффекта. grub-install жалуется, что не может найти каталог EFI (но я все смонтировал правильно).

Обновление 2: только что обнаружил, что запуск efibootmgr после chroot в Ubuntu показывает, что Ubuntu вообще не находится в порядке загрузки. Я вручную изменил порядок и перезагрузился, чтобы обнаружить, что загрузчик был сброшен. Я запускаю в Windows: bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efiно это не имеет никакого эффекта, даже после сообщения «Операция успешна».


Далее будет подать отчет об ошибке.
Rinzwind

@Rinzwind Я только что отправил журнал на boot.repair@gmail.com, объясняя мою ситуацию.
Николай Верстеген

Если вы обновили файлы grub в ESP, вы вошли в ACER UEFI и включили доверие к этим файлам. Вам нужен системный пароль для этого. askubuntu.com/questions/597213/…
oldfred

Сохраните два отдельных ESP для обоих, в противном случае Windows будет стирать GRUB при каждом обновлении BOOTMGR.
Erkin Alp Güney

В этой краткой заметке ( linuxbsdos.com/2015/07/29/… ) указывается, что если ваш ESP находится в разделе UEFI, обновление не должно ничего сломать.
Карлес Арагуз,

Ответы:


114

Мне просто нужно было запустить это в Windows от имени администратора:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Или, если вы используете PowerShell:

bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi

GRUB выглядит нормально при загрузке, и я могу загрузиться в Ubuntu и Windows 10 нормально.


2
@bheeshmar: это само по себе заслуживает ответа! ;-)
Fabby

3
Это сработало для меня, большое спасибо. Могу я узнать, что на самом деле сделала эта команда, пожалуйста?
Иешуа

3
К вашему сведению: не работает в Windows PowerShell, необходимо запустить CMD от имени администратора, чтобы он работал
Уильям Сондерс

2
@Jehoshuah Он устанавливает Grub в качестве диспетчера загрузки системы вместо диспетчера загрузки Windows, что означает, что при запуске системы запускается Grub. BCD обозначает «Данные конфигурации загрузки».
wjandrea

7
Примечание: чтобы найти путь к последнему аргументу этой команды, вы можете использовать bcdedit /enum firmware. Это помогает, если вы используете другой дистрибутив Linux и ваша поисковая система
David Faure

19

Единственное решение, которое сработало для меня, описано по той ссылке, которую я привел здесь снова только потому, что эту ветку легче найти в Google.

По сути, следующие шаги:

  1. Использование Ubuntu Live для загрузки в режиме «Попробуйте Ubuntu».
  2. Используйте GParted для проверки правильности раздела Linux (например /dev/sda2).
  3. Смонтируйте раздел linux:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with your partition number
    
  4. Смонтируйте все другие системные папки Linux:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
    

    Если вы используете систему UEFI, вам также нужно будет смонтировать каталог EFI с помощью следующей команды:

    sudo mount /dev/sda1 /mnt/boot/efi
    
  5. chroot в вашу установку

    sudo chroot /mnt
    
  6. Теперь, когда вы вошли в систему (не в Ubuntu Live), просто выполните

    update-grub
    grub-install /dev/sda
    update-grub
    exit
    sudo reboot
    

Вот и все ! Кредиты идут на Scott Severance по ссылке, которую я упомянул выше.


1
Частично сработало для меня .. теперь он загружается прямо в Linux, не показывая загрузочное меню
PowerAktar

@PowerAktar вы пытались нажать "ESC", чтобы показать меню grub?
InitializeSahib

Ответ помог мне. По сути, я загрузил свой компьютер в режиме «Try Ubuntu» и установил boot-repair, чтобы исправить ошибку. Раздел Linux был восстановлен. Но я потерял раздел Windows после исправления. Поэтому я попытался перейти от шага 4 к 6. Эти шаги помогли мне восстановить раздел windows 10. Спасибо Нир
r0ng

2
Этот ответ почти такой же, как этот в связанном вопросе, за исключением худшего форматирования и грамматики. Если ваш ответ по сути является копией другого вопроса, было бы лучше пометить этот вопрос как дубликат другого после того, как вы заработали 15 репутации . Не забудьте проголосовать за тот ответ, который вы нашли полезным!
Дэвид Фёрстер

Это единственное, что сработало для меня. Я заметил (L), что Ubuntu не будет создавать ничего в sda1 / EFI / boot / ..., но, делая это вручную, исправит это. Спасибо!
user2084865

4

та же проблема здесь, обновление с Windows7 до 10 в ПК с двойной загрузкой ... Я решил следующим образом:

  1. Обновление Windows
  2. В процессе установки, после первой перезагрузки, я получаю приглашение grub rescue, исправило это с помощью BootRepair на USB-накопителе
  3. Завершение установки Windows, GRUB ушел, и с живым CD gparted я заметил, что все разделы все еще были там, но все они были NTFS
  4. Использовал TestDisk из windows восстановил мой раздел Linux
  5. Снова BootRepair, и все кажется нормальным (у меня голос Windows в меню GRUB продублирован. Не знаю почему, но сейчас мне все кажется нормальным!)

Надеюсь это кому-нибудь пригодится!


Еще шаг за шагом будет полезно
Веридиан

Это решение работало для меня тоже .. и спасло мой день :) PS. Этот шаг за шагом может помочь: cgsecurity.org/wiki/TestDisk_Step_By_Step
The Good Giant

1
Как TestDisk восстановил ваши разделы Linux? Вы просто использовали его, чтобы изменить тип раздела?
Грег Белл

Вы говорите, что установка Windows преобразует разделы ext4 в NFTS? Что случилось с такими вещами, как права доступа к файлам и символические ссылки, которые не могут быть выражены на 100% одинаково в NTFS? Я ожидаю частичную потерю файловой информации.
bluenote10

4

Машина моей жены старше (не UEFI) и Ubuntu установлен в логическом расширенном разделе. При обновлении до Windows 10 сначала был убит grub, поэтому перезагрузка вызвала запрос «grub rescue», который я восстановил с помощью BootRepair из LiveUSB, но мой раздел Linux отсутствовал! Я восстановил это с разделенным спасением от LiveUSB, который нашел и восстановил раздел. Оттуда я смонтировал раздел из LiveUSB, выполнил установку grub и смог загрузить обратно восстановленные Ubuntu и Win10. Надеюсь, что это помогает другим.

  • Под LiveUSB я имею в виду USB-накопитель, который использовался для установки Ubuntu (см. Http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-ubuntu ). Вы также можете использовать загрузочный компакт-диск. После загрузки с этого устройства вы сможете найти BootRepair и gparted приложения на нем.

3
ПРИМЕЧАНИЕ. Вероятно, эта проблема возникнет у всех пользователей с Windows 7 в BIOS, которые загружаются на дисках с разделами MBR (msdos) и Ubuntu в логическом разделе. Лучше всего сначала создать резервную копию таблицы разделов. Тогда, если вы не изменили таблицу разделов, вы можете восстановить ее напрямую. askubuntu.com/questions/654386/… Windows всегда «забыла» включить раздел Linux, когда переписывает таблицу разделов.
oldfred

Хотелось бы прочитать это, прежде чем нажать кнопку «Обновить до Windows 10» на машине моей жены! :)
bheeshmar

2
Можете ли вы предоставить ссылку на "BootRepair" и "parted rescue" и / или "LiveUSB"? Вокруг много таких вещей, и люди могут быть заинтересованы в том, чтобы использовать именно то, что вы делали (я не смог найти их окончательно в Google).
Грег Белл

@oldfred Windows переписывает таблицу при обновлении? Это страшно.
Android Dev

2

Вы проверили порядок вашей последовательности загрузки? Если загрузчик Microsoft находится под номером 2, переместите его в нижнюю часть и перезагрузите компьютер.

Вы можете проверить это из Ubuntu, запустив sudo efibootmgr -vв терминале.


2

У нас есть несколько ответов, в которых приведены шаги по устранению проблемы (меню «Потеря Grub» из-за последнего обновления Win10). Различные ответы доказывают, что решение не уникально, так как настройки машины не уникальны.

Для моей системы ( Acer E5-575G-57D4 ) исправлено следующее:

Краткий ответ :

1) В Windows, как упомянул Николас в своем ответе, введите следующую команду как администратор в командной строке Windows.

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

2) Запустите утилиту восстановления загрузки с Live Ubuntu CD / USB.

Длинный ответ:

1) Войдите в Windows.

2) Создайте загрузочную флешку (с вашей версией Ubuntu) и подключите ее.

3) Введите эту команду как администратор в командной строке:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Перезагрузка .

4) Во время загрузки нажмите F12, чтобы увидеть меню загрузки. Выберите «Linux». Примечание. Для этого необходимо включить «Меню загрузки F12» в настройках BIOS (нажмите F2 во время загрузки).

5) В меню выберите «Попробуйте Ubuntu без установки» для сеанса Live Ubuntu .

6) Подключитесь к вашему WiFi. Загрузите и запустите boot-repair с помощью следующих команд:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Просто следуйте инструкциям, пока не получите сообщение о том, что grub исправлен. Это сработало для меня.

Спасибо :)


1

Я не уверен, что это связано, но я также столкнулся с небольшой проблемой, пытаясь перейти на Windows 10 с двойной загрузки Windows 8.1 / Debian.

По сути, в какой-то момент обновления я перешел в режим восстановления grub, потому что мой раздел debian был удален в процессе, и, следовательно, загрузочные файлы с ним (у меня обычно есть отдельный загрузочный раздел, но не на этот раз ... ). Из этой ссылки: обновление Windows 10 привело к спасению grub

Я думаю, что проблема в том, что Windows не правильно записала таблицу разделов в процессе обновления.

В любом случае, я исправил проблему, загрузившись с внешнего жесткого диска Win8.1, и следовал этим инструкциям: https://neosmart.net/wiki/fix-mbr/ (прокрутите вниз до win8 / 8.1). Это стерло grub и переустановило загрузчик mSoft. Затем мне удалось завершить обновление и переустановить Debian все вместе, так как в то время я не понимал, что это просто проблема с неправильной записью таблицы разделов. Тем не менее, лучшим решением будет попытаться восстановить таблицу разделов (используя testdisk?), А затем переустановить / обновить grub.

Надеюсь, это поможет.

PS: Спасибо, Microsoft, за то, что не наплевать на людей, которые имеют конфигурацию двойной загрузки ...


Я тоже перенес стёртый раздел с апгрейдом.
Льюис Годдард

Чего я не понимаю, так это того, почему только мой корневой раздел Linux был очищен, когда у меня было 2 других логических раздела для / opt и linux-swap, которые остались нетронутыми. Конечно, если окна действительно имели проблемы с записью логических разделов в таблице, они тоже должны были пострадать ...
Джереми Ривьер

1
Не видел проблем с системами UEFI / gpt, которые неправильно записывали таблицу разделов. Но любая Windows 7 или 8 с BIOS / MBR и Linux в логических разделах, кажется, имеет проблему. askubuntu.com/questions/654386/… У всех остальных с проблемой отсутствующего раздела был только один раздел LInux как логический. Но сейчас кажется очень странным, что Windows только «забывает» писать / (корневой) раздел. И видел это в течение многих лет даже с переустановками Windows 7.
oldfred

1
@oldfred Это происходит, если логические разделы не нумеруются по порядку, т. е. sda6 находится перед sda5 внутри расширенного раздела, а не только в том случае, если они являются разделами Linux (в моем случае это был удаленный своп Linux и NTFS). Обновление Windows 10 иногда создает новый раздел для среды восстановления, если он не помещается в загрузочный раздел.
Мартин Торнтон

1

Я использовал rescuetux / supergrubdisk. Загрузил его с DriveDroid на моем планшете Android. Затем используется автоопределение Rescuetux. Зашел в кнопку WINDOWS, нажми кнопку восстановления betaWindowsMBR. И выбрал / dev / sda2 хорошо, хорошо, хорошо. Затем он сказал, успешно. Теперь я просто загрузился обратно в Windows UEFI меню.


1

Мое исправление было близко к @Francesco, но немного по-другому.

  1. Обновите Windows с 7 до 10.
  2. В процессе установки, после первой перезагрузки, я получаю приглашение grub rescue, исправив это с помощью BootRepair на USB-накопителе.
  3. Теперь появляется Grub, но показывает только раздел Ubuntu, а не Windows.
  4. Войдите в Ubuntu, зайдите в терминал и введите update-grub
  5. Теперь Windows отображается обратно в меню Grub, продолжите обновление до Windows 10.

В моем случае моя система загружается в Windows после BootRepair.
tbear

1
Кроме того, все разделы Linux исчезли так же, как Франческо. Ты был счастливчиком.
tbear

@tbear так как ты выздоровел?
Грег Белл

1

Если у вас есть установочный носитель Win10, вы можете использовать его для установки новой свежей MBR. Просто загрузитесь, пока не увидите «Установить сейчас» (или аналогичный), но не нажимайте на него. Есть небольшая ссылка, говорящая "инструменты для ремонта" (или что-то). Отсюда вы можете ввести командную строку.

cd c:\windows\system32
bootrec /fixmbr

может быть даже

bootrec /fixboot

Это должно решить проблему. Но Ваш Linux давно ушел из-за невежества Microsoft по поводу собственного выбора людей. Они только что решили, что можно удалить все, что доступно на вашем жестком диске, и что им не нравится. Поэтому мы можем на законных основаниях решить, что MS - это куча придурков ...

Средство создания установочного носителя Win10 свободно доступно по адресу https://www.microsoft.com/en-us/software-download/windows10.


0

8/8/15 Я обновил Windows 7 до Windows 10, и после установки Windows10 я сделал Firefox браузером по умолчанию и выключил мой компьютер, подождал 15 секунд и включил питание компьютера, и даже не ожидал, что это даст мне возможность выбрать Ubuntu в течение 5 секунд. Я щелкнул Ubuntu, и казалось, что он завис в подвешенном состоянии с серым экраном, что казалось вечностью, но я ничего не делал, кроме как нажал кнопку ввода на клавиатуре, чтобы попытаться что-то случиться и подождал, затем наконец появился знакомый черный экран, чтобы выбрать Ubuntu или расширенные опции. Он загрузился в Ubuntu нормально. После того, как я выключил и включил питание в Windows 10, время и дата в Windows показывали 5 часов быстро, точно так же, как в Windows 7 после использования Ubuntu, LOL. В следующий раз, когда я выбрал Ubuntu для загрузки, ожидание загрузки было намного короче.


0

Для меня процесс был довольно сложным. Я использую восстановление загрузчика с USB-флешки, и после того, как я вытащил USB-флешку и перезагрузил компьютер, появилась только опция входа в Ubuntu. Я вхожу в Ubuntu, который был установлен на жестком диске моего компьютера, а затем снова использую восстановление загрузчика. После этого, когда я перезагружаю свой компьютер, у меня появляется возможность войти в Unbunt и в winsows 10, и все работает нормально.


-2

После обновления до Windows 10 на Acer Aspire-AXC-605 я не смог загрузить Ubuntu, и клавиша F2 не открывала экран BIOS, поэтому не могла загрузиться с USB Ubuntu Live.

Мне пришлось использовать клавишу Esc при загрузке, это вызвало экран «Диагностика ПК», и я мог загрузить USB оттуда.


Это на самом деле не отвечает на вопрос.
Странник

@ Zacharee1 предлагаемое пользователем решение - «Убежать, чтобы попасть на экран диагностики ПК, который дает возможность загрузки через USB». Это не очень хороший ответ, но это попытка ответить.
Томас Уорд

@ThomasW. ХОРОШО. Я действительно не вижу это все же.
Странник

@ Zacharee1 посмотри мои правки - это немного расщепляет, но суть в том, что, хотя это и ответ, он не очень хороший, и на самом деле он не дает хорошего ответа
Томас Уорд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.