Grub не показывает опцию Windows 8 после двойной загрузки

Итак, я успешно дважды загрузил свой компьютер с Windows 8 с Ubuntu 12.04. Тем не менее, у меня все еще нет удобного способа выбрать, какую ОС загружать во время загрузки.

После установки Ubuntu мой компьютер по-прежнему загружает Windows 8 напрямую. Затем я добавил grubx64.efi в белый список моего загрузчика. Но после этого моя машина загружает Ubuntu напрямую, не показывая даже тени GRUB!

Я использовал boot-repair и получил этот URL-адрес paste.ubuntu: paste.ubuntu.com/1326074. После запуска boot-repair (и повторного белого списка grubx64.efi файл), GRUB теперь отображается, но без какой-либо опции Windows 8!

Наконец, я побежал sudo fdisk -l и это дало мне это:

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.Disk /dev/sda: 750.2 GB, 750156374016 bytes255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x6396389f   Device Boot      Start         End      Blocks   Id  System/dev/sda1               1  1465149167   732574583+  ee  GPTPartition 1 does not start on physical sector boundary.

Я предполагаю, что моя проблема как-то связана с предупреждением от fdisk выше, но я не знаю, что с этим делать. Как мне теперь поступить?

Редактировать

Мой etc/default/grub заключается в следующем:

# If you change this file, run 'update-grub' afterwards to update# /boot/grub/grub.cfg.# For full documentation of the options in this file, see:#   info -f grub -n 'Simple configuration'GRUB_DEFAULT=0#GRUB_HIDDEN_TIMEOUT=0GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=10GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX=""# Uncomment to enable BadRAM filtering, modify to suit your needs# This works with Linux (no patch required) and with any kernel that obtains# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"# Uncomment to disable graphical terminal (grub-pc only)#GRUB_TERMINAL=console# The resolution used on graphical terminal# note that you can use only modes which your graphic card supports via VBE# you can see them in real GRUB with the command `vbeinfo'#GRUB_GFXMODE=640x480# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux#GRUB_DISABLE_LINUX_UUID=true# Uncomment to disable generation of recovery mode menu entries#GRUB_DISABLE_RECOVERY="true"# Uncomment to get a beep at grub start#GRUB_INIT_TUNE="480 440 1"

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

Во-первых, ваш fdisk -l вывод не является проблемой; это просто идентифицирует ваш диск как использующий Таблица разделов GUID (GPT) система разделения. Чтобы просмотреть свои разделы, вы должны вместо этого использовать инструмент с поддержкой GPT, например gdisk или parted, а не fdisk, который не понимает GPT.

Во-вторых, вы можете заставить GRUB загружать Windows по цепочке, добавив подходящую запись в /etc/grub.d/40_custom а затем делает sudo update-grub. Запись может выглядеть примерно так:

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

Однако детали могут зависеть от вашей установки.

В-третьих, если вы считаете rEFInd уродливым, вы всегда можете попробовать другую тему rEFInd или создать свою собственную, как описано выше. в документации rEFInd. В качестве альтернативы, если вы предпочитаете загрузчик в текстовом режиме, вы можете установить textonly вариант в refind.conf. Вы можете достичь аналогичной цели, переключившись на жевательная резинка.

В-четвертых, если rEFInd периодически сообщает об ошибках, пожалуйста, запишите их или сфотографируйте экран цифровой камерой и сообщите мне о них. (Я сопровождающий rEFInd.) Ошибки не могут быть исправлены, если никто не сообщает о них; или если они не являются ошибками в rEFInd, сообщения могут дать подсказки о том, как решить проблему.

Наконец, можно загрузить Linux через rEFInd (или gummiboot) без использования GRUB; вам просто нужен другой загрузчик EFI. Мое личное предпочтение отдается ядру Linux Загрузчик заглушек EFI. Однако это доступно только в ядрах 3.3.0 и более поздних версий. Поскольку Ubuntu 12.04 поставляется с ядром 3.2.0, вам нужно будет либо найти предварительно созданную версию 3.3.0 для Ubuntu 12.04 (я слышал о таких вещах, но у меня нет под рукой никаких ссылок), либо создать свою собственную из исходного кода. (Вы также можете установить Ubuntu 12.10, который поставляется с подходящим ядром, но, по-видимому, вам нужна версия LTS, так что это может быть неоптимально.) Смотрите документацию rEFInd в страница о загрузке Linux для получения дополнительной информации о том, как это настроить. Вы также можете использовать ELILO или GRUB Legacy. Если вы просто возражаете против задержки, вы можете уменьшить значение таймаута GRUB 2 и установить его так, чтобы меню по умолчанию не отображалось.

Оба ответа с /EFI/Microsoft/Boot/bootmgfw.efi сойдет. Тем не менее, я взломал как черт, чтобы получить правильные настройки для set root='(hd0,gpt1)'. Если вы знаете, что это очень просто

Когда начнется загрузка: нажмите cотдайте команду ls по подсказке.
Вы получаете список разделов на жестких дисках, таких как (hd0,gpt1) и т.д.
Тип ls (hd0,gpt1) и попробуйте другие.
Посмотрите на этикетку, и если на ней написано EFI, вы знаете, что у вас есть хит.

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

Загрузитесь в Ubuntu с помощью компакт-диска,
Выберите "Попробовать Ubuntu".,
Подключение к Интернету,
Откройте окно терминала с помощью Ctrl-Alt-t а потом беги: boot-repair

Если средство восстановления загрузки не найдено, установите его :

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

Щелкните Рекомендуемое восстановление. Напишите на бумаге новый URL-адрес, который появится. перезагрузите компьютер, вы должны получить меню GRUB с доступом как к Ubuntu, так и к Windows. Если возникнут какие-либо проблемы, укажите новый URL-адрес.

Попробуйте запустить sudo update-grub.Мы надеемся, что это должно автоматически распознать Windows 8, добавить ее в GRUB и перенастроить меню.

Если это не удастся, пожалуйста, поделитесь своими /etc/default/grub файл здесь, мы посмотрим.

Попробуйте создать файл с именем /etc/grub.d/30_windows который содержит это:

#! /bin/bashcat << EOFmenuentry "Windows 8" { insmod part_gpt insmod chain set root='(hd0,gpt1)' chainloader /EFI/Microsoft/Boot/bootmgfw.efi}EOF
Затем бегите sudo update-grub и перезагрузитесь.

Полный учебник

Мой Окончательный Обходной путь

(* Потому что ссылка Тома не сработала, а ссылка НикТа слишком сложна. Но эй, спасибо, что потрудились!)

Устанавливать Уточните.


Я принимаю свой собственный ответ до тех пор, пока кто-нибудь не укажет на возможный недостаток и не исправит его или не решит мои проблемы (что, к сожалению, просто задает вопрос "Как мне поместить Windows 8 в GRUB легко?").

(Редактировать 8/6/17: В конечном счете я использовал rEFInd для решения этой проблемы (см. Принятый ответ выше).)

Далеко не идеальное решение, использование rEFInd кажется очень халтурной работой. Во-первых, это выглядит некрасиво (извините, rEFInd) и говорит мне, что доступ был запрещен на некоторых.efi ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64}.efi) при запуске ---ничего критичного, хотя и исчезает при нажатии кнопки *. И, наконец, выбор Ubuntu efi по-прежнему загружает GRUB, что является совершенно ненужным шагом, по крайней мере, поскольку я не буду утруждать себя сохранением нескольких версий ядра.

Вкратце...

Плюсы: моя система теперь более или менее работает так же, как моя двойная загрузка до UEFI. Минусы: это выглядит некрасиво плюс более длительное время загрузки.

* Я должен отметить, что этот rEFInd был установлен через install.sh в моем разделе Ubuntu. Предыдущий опыт работы с rEFInd (настройка через Windows) не имел этой проблемы.

  1. Пожалуйста, скачайте super Grub и следуйте его инструкциям. Я никогда не выхожу из дома без него. Очень полезно, когда меню grub не отображается.

  2. Вам нужно будет загрузить его на компакт-диск и загрузить. Просто следуйте инструкциям, которые прилагаются к нему.

  3. Он также может быть использован для исправления Windows. Поскольку вы можете загрузиться только в Windows 8, вы хотите выбрать исправление для Linux.

Поиграйте с этим, но обязательно прочитайте инструкции. Вы почувствуете себя экспертом после while.RS

Прочтите этот ответ, он может вам помочь: grub2 - How can I change/convert a Ubuntu MBR drive to a GPT, and make Ubuntu boot from EFI? - Ask Ubuntu

Для получения дополнительной информации: [all variants] [Boot-Repair] Graphical tool to repair the PC boot in one click - Page 62