Двойная загрузка Ubuntu 12.10 в UEFI в Windows 8 (GRUB - ошибка: невозможно найти карту диска с командой)


8

Здравствуйте, после успешной установки Ubuntu 12.10 amd64, я не могу загрузить Windows 8.

Вот мои действия:

  1. Освободили место (15 ГБ) для Ubuntu из Windows 8 Computer Managment
  2. Загрузите Ubuntu 12.10 amd64 LiveUSB с EFI и с включенной безопасной загрузкой
  3. В конце создано 2 новых раздела (13 ГБ, Ext4 Root и 2 ГБ, своп)
  4. Выбранный системный раздел Windows 8 EFI для установки загрузчика

Grub дает мне при загрузке:

  1. Ubuntu (работает без проблем)
  2. Среда восстановления Windows (много ошибок)
  3. Windows 8 (2 сообщения об ошибках описаны чуть ниже)

2 сообщения об ошибках:

  • error: can't find command drivemap.
  • error: invalid EFI file path

Исправление Я выбрал «недавно созданный системный раздел EFI» для установки загрузчика, но на самом деле он установил загрузчик на Windows 8 EFS ...
Kouros

Вы делали резервную копию заранее? то есть Windows 8 Start / системный раздел это что-то маленькое, как 150-350 МБ, так что, возможно, вы сделали dd if=/dev/sda1 of=/media/some_usb_pendrive/backupfile? Если такая резервная копия существует, я бы восстановил систему windows / start partitio, которая могла быть «повреждена».
человечествоANDpeace

Извините, нет резервной копии, но мне удалось вернуть Windows 8 с помощью среды восстановления (нажав кнопку помощи вместо кнопки включения)
Kouros

ты серьезно сделал копию своего собственного вопроса? Установите Ubuntu 12.10 на UEFI под Windows 8
duxk.gh

ПРИМЕЧАНИЕ: обновление до 13.04 удалило это изменение в моей установке.
ГКБ

Ответы:


6

Я нашел временное решение.

Добавить пользовательскую запись в загрузочное меню GRUB

Добавьте код ниже к /etc/grub.d/40_custom.

menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Вы можете использовать Ctrl+ Alt+, Tчтобы открыть терминал и запустить sudo nano /etc/grub.d/40_custom, затем скопировать и вставить код. Наконец, нажмите Ctrl+, Oчтобы сохранить и Ctrl+, Xчтобы выйти.

Heads up: hd0,gpt1 вот идентификатор моего системного раздела EFI (ESP). Если ваш ESP не является первым разделом на вашем первом жестком диске во время загрузки , тогда ваш другой! Например, hd1,gpt2для второго раздела на втором диске.

Замените part_gptна, part_msdosесли диск использует MBR и устаревшие разделы, а также измените hd0,gpt1на hd0,msdos1соответственно.

Применить изменения к GRUB

Просто запустите следующую команду, которая должна сгенерировать новую конфигурацию GRUB, включая новую пользовательскую запись:

sudo update-grub

Теперь перезагрузите компьютер, теперь вы сможете загрузить Windows 8. Если нет, и Windows жалуется на испорченную конфигурацию BCD, то продолжайте на суперпользователе: Как я могу восстановить загрузчик Windows 8 EFI?


Предупреждение. В некоторых случаях при загрузке Windows 8 GRUB заменяется диспетчером загрузки Windows в качестве менеджера загрузки по умолчанию.


к чему я должен стремиться? я думал, что это был раздел данных Windows (здесь gpt4), но он работал с gpt1, который является единственным разделом EFI, который у меня есть. хотя установка ubuntu перезаписывала бы содержимое windows раздела EFI, как grub делает MBR ...
gcb

1
Это решение не работает для меня. Персонаж `появляется в set root='(hd0,gpt1)'предполагаемом. Это дает ошибку для меня (я пытаюсь с gpt3) даже без этого символа также. Ошибка вроде (hd0,gpt1)не найдена.
iammilind

3

Неправильные записи Windows в GRUB связаны с этой ошибкой: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383

Решение: запустите Boot-Repair с Recommended RepairliveCD (или liveUSB).


1
Мне пришлось отключить «безопасную загрузку» в биосе, прежде чем это будет работать.
Робин Уинслоу

@RobinWinslow Да, Boot-Repair также работал для меня (Lenovo Thinkpad S540), но только если я отключил SecureBootв BIOS, в противном случае Windows 8 все еще жалуется ... Было бы хорошо, если бы это можно было сделать, сохранив SecureBoot
fpghost

0

Я нашел способ закрыть Windows 8. См. Https://superuser.com/questions/499923/preinstalled-windows-8-and-linux-uefi-dual-boot-on-a-laptop/528581.

Под W8 в окне команд с повышенными привилегиями запустите powercfg / h off. К тому времени, когда вы это сделаете, W8 уже может перезаписать раздел EFI. Мне потребовалось несколько итераций, чтобы изменить bootmgfw.efi и сбросить его, пока он не застрял, но теперь я счастлив.

Я не могу сказать, достаточно ли просто загрузки W8, или вам нужно войти в систему, а затем перезагрузиться. Возможно, кто-то с большим терпением (я работал над этим больше половины дня) может сказать.


0

У меня та же проблема на моем ноутбуке Asus-x202 (под управлением W8 и Ubuntu 13.04).

Немного раздражающий обходной путь для меня достаточно на данный момент: в меню загрузки перейдите в систему (или запустите BIOS с самого начала, используя, вероятно, f2). Если вы используете переопределение для загрузки, Windows запустится как обычно.


1
Что именно вы имеете в виду под «переопределением загрузки»? Я не понимаю эту часть вашего ответа.
gertvdijk

0

«Переопределить загрузку» - это меню на вкладке «Загрузка» меню конфигурации материнских плат. Он позволяет вам мгновенно выбрать и запустить любой загрузчик, установленный на вашей установке.


1
@edwin В этом ответе можно использовать расширение, но, похоже, это попытка ответить на заданный вопрос. vic : Добро пожаловать в Спросите Ubuntu! Я рекомендую изменить это, чтобы добавить больше информации о том, как использовать эту функцию, а также более подробное объяснение того, почему она решает эту проблему. Спасибо.
Элия ​​Каган

0

У меня похожая проблема с моим новым HP Pavillion Sleekbook, модель 15-b142dx. Это прибыло с W8, предварительно загруженным. Я смог изменить размер раздела Windows изнутри Windows, затем установил 64-битную Ubuntu 13.04 с флешки. Однако при перезагрузке W8 запустился нормально, без загрузочного меню. Итак, я использовал «boot-repair», что делало систему не загружаемой. При запуске он напечатает:

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E 
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub

Это тогда закрылось бы.

После некоторых проб и ошибок я обнаружил, что нажатие клавиши F10 во время загрузки приведет меня в BIOS, где я могу отключить безопасную загрузку. При следующей загрузке я получил длинное меню от grub, с большим количеством записей, таких как:

Windows UEFI bkpbootmgfw.efi
Windows Boot UEFI loader
EFI/HP/BIOSUpdate/CryptRSA32.efi
.
.
.

Все они содержались в файле "/etc/grub.d/25_custom". Я сделал резервную копию этого файла, затем удалил все записи, кроме загрузчика UEFI Windows Boot. (Это одна из записей, которая позволяет W8 загружаться). Затем я запустил «update-grub», и получил гораздо более приятное меню загрузки, и могу загрузить любую ОС.

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