Grub ไม่แสดงตัวเลือก Windows 8 หลังจากการบู๊ตคู่


25

ดังนั้นฉันได้ทำการบูทเครื่อง Windows 8 ของฉันกับ Ubuntu 12.04 เรียบร้อยแล้ว อย่างไรก็ตามฉันยังคงไม่มีวิธีที่สะดวกในการเลือกว่าจะโหลดระบบปฏิบัติการอะไรตอนบูตเครื่อง

หลังจากติดตั้ง Ubuntu คอมพิวเตอร์ของฉันยังโหลด Windows 8 ได้โดยตรง จากนั้นฉันเพิ่มลงgrubx64.efiในรายการสีขาวของบูตโหลดเดอร์ แต่หลังจากนั้นเครื่องของฉันก็โหลด Ubuntu โดยตรงโดยไม่มีเงาของด้วงปรากฏขึ้น!

ผมใช้บูตซ่อมแซมและผมได้ 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 (GPT)ระบบแบ่งพาร์ทิชัน หากต้องการดูพาร์ติชันของคุณคุณต้องใช้เครื่องมือที่เปิดใช้งาน GPT แทนเช่นgdiskหรือpartedมากกว่าfdiskซึ่งไม่เข้าใจ GPT

ประการที่สองคุณอาจจะสามารถที่จะได้รับการด้วง chainload 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 kernel แม้ว่าจะมีเฉพาะใน 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 ต่อไปเกี่ยวกับเมนูด้วงด้วง ... ฉันลองแล้ว แต่มันใช้ไม่ได้ ท่ามกลางการถ่ายภาพอื่น ๆ ในที่มืดฉันได้ลองตั้งค่าพาร์ติชัน ESP ของฉันแล้ว แต่ก็ไม่มีประโยชน์ แม้แต่ลองใช้โปรแกรมแก้ไข GRUB กราฟิกตัวใดตัวหนึ่ง (ลืมชื่อ) สุดท้ายเกี่ยวกับ rEFInd ข้อผิดพลาดที่รายงานไม่สำคัญ (จะแก้ไขโพสต์ของฉันเพื่อให้ทราบว่า) --- เมื่อเริ่มต้นใช้งานเพิ่งบอกฉันว่าไม่สามารถหา .efi บางอย่างได้ ฉันไม่รู้ว่าพวกเขามาจากไหน
skytreader

ตรวจสอบว่ามีไฟล์ที่ระบุใน ESP ตรวจสอบให้แน่ใจว่ากรณีของชื่อไฟล์ถูกต้อง (มันไม่สำคัญหรอก แต่ฉันรู้ว่า EFI บั๊กตัวหนึ่งอยู่ตรงไหน!) ถ้ามันไม่ช่วยข้อความแสดงข้อผิดพลาด (ถ้ามี) GRUB จะกลับมาอีกเมื่อคุณลองเปิด Windows ผ่านรายการนี้
Rod Smith

8

บูตเข้า 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 ใหม่ที่จะปรากฏบนกระดาษ รีบูทพีซีใหม่คุณควรได้รับเมนูด้วงที่สามารถเข้าถึงทั้ง Ubuntu และ Windows หากมีปัญหาให้ระบุ URL ใหม่


7

ทั้งคำตอบด้วย/EFI/Microsoft/Boot/bootmgfw.efiจะทำ แต่ฉัน hacked 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. โปรดดาวน์โหลด super Grub และทำตามคำแนะนำ ฉันไม่เคยออกจากบ้านหากไม่มีมัน มีประโยชน์มากเมื่อเมนูด้วงไม่ปรากฏขึ้น

  2. คุณจะต้องโหลดซีดีและบูตมันขึ้นมา เพียงทำตามคำแนะนำที่มาพร้อมกับมัน

  3. นอกจากนี้ยังสามารถใช้เพื่อแก้ไขหน้าต่างได้เช่นกัน เนื่องจากคุณสามารถบูตเข้าสู่ windows 8 ได้เท่านั้นคุณต้องการเลือก linux fix

เล่นกับสิ่งนี้ แต่อ่านคำแนะนำ คุณจะรู้สึกเหมือนเป็นผู้เชี่ยวชาญในขณะที่ อาร์เอส


0

วิธีแก้ปัญหาขั้นสูงสุดของฉัน

(* เนื่องจากทอมไม่ทำงานและลิงก์ของ NikTh นั้นซับซ้อนเกินไป แต่เดี๋ยวก่อนขอบคุณที่รบกวน!)

ติดตั้งrefind


ฉันยอมรับคำตอบของตัวเองจนกว่าจะมีคนชี้ให้เห็นข้อบกพร่องที่เป็นไปได้และแก้ไขปัญหาหรือแก้ไขปัญหาของฉัน (ซึ่งน่าเสียดายเพียงถามคำถาม "ฉันจะวาง Windows 8 ไว้ใน GRUB ได้อย่างง่ายดายได้อย่างไร")

( แก้ไข 8/6/17:ในที่สุดฉันก็ใช้ rEFInd เพื่อแก้ปัญหานี้ (ดูคำตอบที่ยอมรับด้านบน))

ห่างไกลจากโซลูชันที่สมบูรณ์แบบการใช้ rEFInd ดูเหมือนจะเป็นงานแฮ็คมาก สำหรับหนึ่งดูเหมือนว่าน่าเกลียด (ขออภัย rEFInd) และบอกฉันว่าการเข้าถึงถูกปฏิเสธในบาง. efi ของ ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi) เมื่อเริ่มต้น --- ไม่มีอะไรสำคัญและจะหายไปพร้อมกับปุ่ม กด*. และสุดท้ายการเลือกอูบุนตู efi ยังคงโหลดด้วงซึ่งเป็นขั้นตอนที่ไม่จำเป็นโดยสิ้นเชิงอย่างน้อยก็เพราะฉันจะไม่คอยเก็บเคอร์เนลหลายรุ่น

สรุป...

จุดเด่น: ระบบของฉันตอนนี้ทำงานได้มากหรือน้อยเช่นรองเท้า pre-UEFI ของฉัน ข้อด้อย: มันดูน่าเกลียดบวกกับเวลาบูตนานขึ้น

* ฉันต้องทราบว่า rEFInd นี้ติดตั้งผ่านทางinstall.shพาร์ติชัน Ubuntu ของฉัน ประสบการณ์ก่อนหน้านี้ที่มี rEFInd (ตั้งค่าผ่าน Windows) ไม่มีปัญหานี้


หากการติดตั้ง rEFInd ก่อนหน้านี้ผ่าน Windows ไม่ส่งผลให้เกิดข้อผิดพลาดเกี่ยวกับไฟล์ที่ไม่พบ แต่การติดตั้งปัจจุบันของคุณจาก Linux แสดงว่าลางสังหรณ์ของฉันคือหนึ่งในสองสิ่งที่เกิดขึ้น: 1) คุณมีเมนบอร์ดมาด้วย ข้อบกพร่อง case-sensitive ซึ่งในกรณีที่ mucking กับกรณีของไฟล์หรือไดเรกทอรีอาจปรับปรุงเรื่อง; หรือ 2) มีบางอย่างแปลก ๆ เกี่ยวกับ ESP ของคุณ (FAT16 vs. FAT32 หรือความเสียหายเล็กน้อยของระบบไฟล์ตัวอย่าง) EFIs บางคนดูเหมือนจะยุ่งเกี่ยวกับระบบไฟล์ใน ESP ของพวกเขามาก ชื่อไฟล์ที่แน่นอนอาจมีประโยชน์ในการ จำกัด ปัญหาให้แคบลง
ร็อดสมิ ธ

ตกลง. ความผิดฉันเอง. มันไม่ได้บอกว่าไม่สามารถหา efis บางตัวได้ แต่มันถูกปฏิเสธการเข้าถึงใน efis บางตัว (ดังนั้นฉันเลยเอา efis ที่กล่าวมานั้นไปใช้งานไม่ได้ใช่ไหม?) ฉันได้สังเกตเห็นไฟล์เหล่านี้แล้ว แต่ฉันก็ยังไม่รู้ว่ามันมาจากไหน
skytreader

"การเข้าถึงถูกปฏิเสธ" เป็นข้อผิดพลาดที่ผิดปกติใน EFI ในประสบการณ์ของฉัน AFAIK, EFI ไม่สนับสนุนการเป็นเจ้าของหรือการอนุญาตเช่น Linux ทำดังนั้นจึงไม่สมเหตุสมผลเว้นแต่ว่ามีข้อผิดพลาดในการอ่านดิสก์ ฉันได้เห็นข้อผิดพลาดการเขียนดิสก์แปลก ๆภายใต้ EFI ที่หายไปในการรีบูตครั้งถัดไป หากปัญหานี้ยังคงอยู่คุณอาจลองเรียกใช้การทดสอบ SMART บนดิสก์ของคุณในกรณีที่เกิดข้อผิดพลาดกับฮาร์ดแวร์และทำการสำรองข้อมูลและเขียน ESP ใหม่อีกครั้งในกรณีที่ระบบไฟล์แปลก ๆ ที่ dosfsck ไม่สามารถแก้ไขได้ นอกเหนือจากนั้นการรายงานว่าไฟล์ใดมีปัญหาอาจเป็นประโยชน์
Rod Smith เมื่อ

1
ข้อความ "การเข้าถึงถูกปฏิเสธ" เกือบจะเกี่ยวข้องกับ Secure Boot อย่างแน่นอน ข้อความดังกล่าวเกิดขึ้นหาก rEFInd พยายามโหลดไบนารี EFI ที่ไม่ได้ลงชื่อในขณะที่อยู่ในโหมด Secure Boot สิ่งที่ทำให้งงเกี่ยวกับเรื่องนี้ก็คือคุณสามารถเปิด rEFInd ได้เลยเนื่องจากยังไม่ได้เซ็นชื่อ ลางสังหรณ์ของฉันคือคุณมีการตั้งค่าการบูตที่เปิดใช้งานอย่างปลอดภัยในการเฟิร์มแวร์ของคุณ วิธีแก้ปัญหาที่ง่ายที่สุดในขณะนี้คือการปิดการใช้งาน Secure Boot อย่างสมบูรณ์ แต่ก็มีอีกหลายวิธี ดูหน้าเว็บของฉันที่rodsbooks.com/efi-bootloaders/secureboot.htmlสำหรับข้อมูลเพิ่มเติม
Rod Smith

บนแล็ปท็อป hp ของฉันฉันต้องกด f9 แล้วด้วงบูทขึ้นมิฉะนั้นหน้าต่างโหลด นอกจากนี้ยังมีตัวเลือกในการบูต Windows จากด้วงเช่นกันแม้ว่าฉันจะไม่เคยใช้มัน ถ้าฉันเบื่อใน Windows ฉันแค่เปิดและรอ Windows หากฉันวางแผนที่จะบูตอูบุนตูฉันแค่กด f9 ทันทีที่เปิดเครื่อง
geoffmcc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.