Grub не показує параметр Windows 8 після подвійного завантаження


25

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

Після встановлення Ubuntu мій комп'ютер все ще завантажує Windows 8 безпосередньо. Потім я додав grubx64.efiу білий список мого завантажувача. Але після цього моя машина завантажує Ubuntu безпосередньо, навіть не з'являючись тіні GRUB!

Я використовував ремонт завантаження, і я отримав цю URL-адресу paste.ubuntu : paste.ubuntu.com/1326074 . Після запуску завантажувального ремонту (і повторно білого переліку 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 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6396389f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 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=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_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, я повинен зазначити), нічого не згадується про цю проблему. Щось там я не повинен був робити?


Прочитайте цю відповідь, може допомогти вам: askubuntu.com/questions/84501/…
NickTux

Відповіді:


17

По-перше, ваш fdisk -lвихід не є проблемою; що просто ідентифікує ваш диск, використовуючи систему розділів GUID Partition Table (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. Ви можете досягти подібного кінця, перейшовши на gummiboot.

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

Нарешті, можливо завантажувати Linux через rEFInd (або gummiboot) без використання GRUB; просто потрібен інший завантажувач EFI. Мої особисті переваги - завантажувач заглушок EFI ядра Linux . Це доступно лише в 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 і встановити його не відображати меню за замовчуванням.


1
По-перше, вау, я не усвідомлював, що ти підтримуєш rEFInd. Далі, що стосується меню GRUB ... Я спробував це, але це не працює. Серед інших знімків у темряві я намагався встановити ESP-розділ, але безрезультатно. Навіть спробував використати один із цих графічних редакторів GRUB (забув назву). Нарешті, що стосується rEFInd, помилки, про які він повідомляє, не є критичними (відредагуйте моє повідомлення, щоб відзначити це) --- при запуску він просто говорить мені, що він не може знайти певні .efi. Я не маю уявлення, звідки вони взялися.
skytreader

Перевірте наявність вказаного файлу на ESP. Також переконайтесь, що регістр імені файлу правильний. (Це не має значення, але я знаю про одну помилку EFI, де це відбувається!) Якщо це не допомагає, яке повідомлення про помилку (якщо воно є) GRUB повертається при спробі запуску Windows через цей запис?
Род Сміт

8

Завантажтесь в Ubuntu за допомогою CD,
виберіть "Спробуйте 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-адресу.


7

Обидві відповіді з /EFI/Microsoft/Boot/bootmgfw.efiби зробили. Однак я зламав, як чорт, щоб отримати правильні налаштування set root='(hd0,gpt1)'. Якщо ви знаєте, це дуже просто

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

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


6

Спробуйте запустити sudo update-grub. Це, сподіваємось, автоматично розпізнає Windows 8 та додасть його до GRUB та переконфігурує меню.

Якщо це не вдасться, будь ласка, поділіться своїм /etc/default/grubфайлом тут, ми подивимось.


1
Привіт. sudo update-grubне зробив трюку. Я відредагував своє запитання, щоб включити своє /etc/default/grub. Тим часом я вивчаю відповідь, пов'язану з NikTh.
skytreader

3

Спробуйте створити файл під назвою, /etc/grub.d/30_windowsякий містить це:

#! /bin/bash
cat << EOF
menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
Потім запустіть sudo update-grubі перезавантажте.

Повний підручник


1
  1. Завантажте супер Grub та дотримуйтесь його вказівок. Я ніколи не виходжу з нього без дому. Дуже корисно, коли меню груб не з’являється.

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

  3. Його також можна використовувати для фіксації вікон. Оскільки ви можете завантажуватися лише в Windows 8, ви хочете вибрати виправлення Linux.

Пограйте з цим, але прочитайте інструкції. Через деякий час ви відчуєте себе експертом. RS


0

Моє остаточне вирішення

(* Тому, що Том не працював, а посилання NikTh занадто складна. Але е, спасибі, що турбуєте!)

Встановити rEFInd .


Я приймаю власну відповідь, поки хтось не вкаже на можливий недолік і виправлення на неї або не вирішить мої проблеми (що, на жаль, просто задає питання "Як легко встановити Windows 8 в GRUB ?").

( Редагувати 8/6/17: Я врешті-решт використав rEFInd для вирішення цієї проблеми (див. Прийняту відповідь вище).)

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

Підсумовуючи ...

Плюси: моя система зараз більш-менш працює, як і мої подвійні чоботи до UEFI. Мінуси: це виглядає некрасиво плюс більший час завантаження.

* Я мушу зазначити, що цей rEFInd був встановлений через install.shмій розділ Ubuntu. Попередній досвід роботи з rEFInd (налаштування через Windows) не мав цієї проблеми.


Якщо попередня установка rEFInd через Windows не спричиняє помилок щодо файлів, які не вдалося знайти, але ваша поточна установка з Linux робить, то, на мою думку, відбувається одна з двох речей: 1) У вас є материнська плата з помилка чутливості до регістру, в цьому випадку обмін повідомленнями із файлами чи каталогами може покращити питання; або 2) У вашому ESP є щось дивне (наприклад, FAT16 проти FAT32 або незначні пошкодження файлової системи). Деякі EFI здаються дуже метушливими щодо файлових систем на своїх ESP. Точні назви файлів можуть бути корисними для звуження проблеми.
Род Сміт

Добре. Моє ліжко. Це не говорило про те, що він не може знайти певні ефіси, лише те, що в доступі до нього було відмовлено в певних ефісах (тому я вважаю, що зазначені ефіси там, просто недоступні?). Зараз я зазначив ці файли, хоча досі не знаю, звідки вони взялися.
skytreader

"Доступ заборонений" - це незвичайна помилка на EFI, на мій досвід. AFAIK, EFI не підтримує право власності чи дозволи, як це робить Linux, тому це не має сенсу, якщо не було помилки читання диска. Я бачив дивні помилки запису диска під EFI, які випаровувались при наступному перезавантаженні. Якщо ця проблема не зникає, ви можете розглянути тест SMART на своєму диску на випадок апаратної несправності та створити резервну копію та перезаписати ESP у випадку, якщо є якийсь дивний пошкодження файлової системи, який dosfsck не зможе виправити. Крім цього, може бути корисним повідомлення про те, які файли створюють проблеми.
Род Сміт

1
Повідомлення "відмовлено у доступі" майже напевно стосується Secure Boot. Таке повідомлення виникає, якщо rEFInd намагається завантажити бінарний EFI без підпису, перебуваючи в режимі безпечної завантаження. Дивовижне в цьому полягає в тому, що ви взагалі можете запустити rEFInd, оскільки він сам не підписаний. Моя підказка - це те, що у вашій прошивці є якісь дивні баггі напівактивовані налаштування Secure Boot. Найпростішим рішенням на даний момент є повністю відключити безпечну завантаження, але є й інші. Дивіться мою веб-сторінку за адресою rodsbooks.com/efi-bootloaders/secureboot.html для отримання додаткової інформації.
Род Сміт

На своєму ноутбуці hp я повинен натиснути клавішу f9, а потім згорнути черевики, інакше windows завантажується. Також є можливість завантажувати Windows з grub, хоча я ніколи її не використовую. Якщо мені нудно Windows, я просто вмикаю його і чекаю Windows. Якщо я планую завантажувати ubuntu, я просто натискаю f9, як тільки я включаю.
geoffmcc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.