บูทคู่ UEFI Windows 7 และ Ubuntu 12.04 (ทั้ง 64 บิต) รายการ W7 ไม่ปรากฏใน GRUB


8

หลังจากพยายามติดตั้งทั้งสองระบบในช่วง 2 วันฉันสับสนและโมโหมาก ... ฉันมี SSD 128 GB และ HDD 500 GB ทั้งสองว่างเปล่า แล็ปท็อปของฉันคือ Asus K55VM BIOS รองรับ UEFI

สิ่งที่ฉันได้ทำ:

  1. ติดตั้ง SSD ใหม่ (Samsung 830 128GB)

  2. ใช้ GParted บน liveCD เพื่อสร้างตารางพาร์ติชั่นใหม่ (GPT) และสร้าง 3 พาร์ติชั่น (ใน SSD) เพื่อจุดประสงค์ที่แตกต่างกัน:

    • พาร์ติชัน 1: 80 GB (w7);
    • พาร์ติชัน 2: 30 GB (Ubuntu 12.04 -Just / -);
    • พาร์ติชัน 3: 10 GB ไม่ได้ใช้ (สำหรับการขยายในอนาคตของพาร์ติชันอื่น ๆ )
  3. ติดตั้ง Windows 7 (พร้อม UEFI) ในพาร์ติชัน 1 สร้างนี้:

    • / dev / sda1 -> 100 MB สำหรับระบบ (UEFI บูตฉันเดา) - FAT32
    • / dev / sda2 -> 100 MB aprox สำหรับ MSR
    • / dev / sda3 -> 79.800 MB aprox สำหรับข้อมูล Windows7

ในจุดนี้ทุกอย่างทำงานได้ดี ฉันมี W7 ตอนนี้ฉันติดตั้ง Ubuntu 12.04 amd64 (พร้อม UEFI) ดังนี้:

  1. ติดตั้ง / ใน Partition 2 -> / dev / sda4 30 GB ext4 และใน hdd ฉันติดตั้ง / home และ swap

  2. ฉันเลือก bootloader ใน / dev / sda1 (ซึ่งควรจะเป็น UEFI boot)

  3. ฉันติดตั้งการปรับปรุงและรีบูต

ปัญหา:ตอนนี้เพิ่งปรากฏเมนูด้วงกับรายการ Ubuntu และไม่ใช่ Windows 7

วิธีแก้ปัญหาที่พบทางเลือก : เมื่อฉันเปิดแล็ปท็อปก่อนที่จะโหลด GRUB ฉันกดปุ่ม ESC และปรากฏการบูต BIOS ดังนั้นฉันสามารถเลือกที่จะบูตพาร์ติชัน Windows พาร์ติชัน Ubuntu, DVD, USB, ฯลฯ ... แต่ฉันคิดว่าไม่ดีที่สุด วิธีบู๊ต OS ที่แตกต่างกัน

ฉันลองแล้ว: sudo update-grub2 ไม่สำเร็จ

ฉันจะทำยังไงดี ??

คำตอบ:


6

ค้นหาว่า windows bootloader อยู่ที่ไหนโดยติดตั้งพาร์ติชัน efi:

sudo mount -t vfat /dev/sdx1 /mnt/efi/

bootmgfw.efiและค้นหา จากนั้นค้นหา UUID ของไดรฟ์:

sudo grub-probe --target=fs_uuid /mnt/efi/EFI/Microsoft/Boot/bootmgfw.efi

เพิ่ม UUID นี้ไปที่/etc/grub.d/40_custom:

menuentry "Windows x86_64 UEFI-GPT" {
    search --fs-uuid --no-floppy --set=root UUID
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

update-grubทำงานในที่สุด


คุณเป็นฮีโร่นองเลือดของฉัน !! ขอบคุณมากที่ทำงานได้ดี คุณทำให้วันของฉัน =)
โจ

1
สำหรับข้อมูล Boot-Repair จะได้เพิ่มรายการใน 1 คลิก help.ubuntu.com/community/Boot-Repair
LovinBuntu

ยกเว้น Boot ซ่อมแซมไม่ทำงานบนระบบของฉัน ...
fccoelho

3

โซลูชันของ jarondl นั้นสมบูรณ์แบบ แต่อีกอันหนึ่งคือการใช้โปรแกรมตัวจัดการการบูตแยกต่างหากเพื่อเลือกระหว่าง GRUB และตัวบูตการบูต Windows ฉันรู้จักผู้จัดการการบูต EFI สามตัวที่คุณสามารถติดตั้งได้:

  • rEFItซึ่งมีอยู่ในที่เก็บของ Ubuntu โปรดทราบว่ารุ่นจากเว็บไซต์ของ rEFIt จะไม่ทำงานบนพีซีที่ใช้ UEFI เนื่องจากใช้รูปแบบไฟล์เฉพาะสำหรับ Mac แม้แต่เวอร์ชั่นของ Ubuntu ก็มีข้อบกพร่องเล็กน้อยในพีซีที่ใช้ UEFI เป็นการดีที่ rEFIt นำเสนอเมนูบูต GUI สวย (แม้ว่ามันจะมีโหมดข้อความด้วย)
  • rEFIndซึ่งเป็นเวอร์ชันปรับปรุงของ rEFIt พร้อมด้วยการแก้ไขข้อบกพร่องและส่วนขยาย UEFI ต่างๆเพื่อทำงานกับบูตอีเดอร์ EFI ในตัว 3.3.0 เคอร์เนล โปรดทราบว่าฉันแยก / รักษา rEFInd
  • gummiboot ซึ่งเป็นตัวจัดการการบูตแบบข้อความเท่านั้น (เว็บไซต์นี้จะลืมว่าฉันเป็นใครและปฏิเสธที่จะให้ฉันโพสต์การเชื่อมโยงหลายมิติมากกว่าสองผลหรือฉันจะให้หนึ่ง)

ทั้ง rEFIt และ rEFInd ตรวจจับบูตโหลดเดอร์อื่นโดยอัตโนมัติดังนั้นเมื่อคุณกำหนดค่าแล้วพวกเขาควรตรวจสอบบูตโหลดเดอร์ของระบบปฏิบัติการใด ๆ และให้เมนูแก่คุณ ฉันยังไม่ได้ลอง gummiboot ดังนั้นฉันจึงไม่รู้ว่ามันง่ายแค่ไหนในการตั้งค่า แต่มันคล้ายกับ rEFIt / rEFInd การใช้โปรแกรมเหล่านี้จะเพิ่มความซับซ้อนให้กับกระบวนการบู๊ตดังนั้นหาก GRUB ใช้งานได้และคุณพอใจกับมันมีจุดเล็กน้อยที่จะใช้โปรแกรมเหล่านี้ พวกมันมีประโยชน์มากที่สุดถ้า GRUB เป็นเจ้าอารมณ์หรือเพียงธรรมดาไม่ได้ผลเช่นเดียวกับกรณีของ GRUB 2 ในระบบ UEFI ในประสบการณ์ของฉัน ในสถานการณ์เช่นนี้คุณสามารถทิ้ง GRUB 2 เพื่อสนับสนุน ELILO หรือ EF.0 stub loader ของเคอร์เนล 3.3.0 หรือใหม่กว่า ตัวตักการบูตเหล่านี้ไม่สามารถเปลี่ยนเส้นทางกระบวนการบูตไปยัง Windows ได้ทำให้ตัวจัดการการบูตแยกต่างหากมีประโยชน์มาก


Refind ไม่สนับสนุนพาร์ทิชัน ntfs ...
fccoelho

1
ความจริงที่ว่า rEFInd ไม่ได้มาพร้อมกับไดรเวอร์ NTFS นั้นไม่เกี่ยวข้อง บูต EFI ของ Windows อยู่ใน EFI System Partition (ESP) ซึ่งเป็น FAT ดังนั้น rEFInd จึงไม่จำเป็นต้องเข้าถึงโวลุ่ม NTFS นอกจากนี้ยังไม่ยุติธรรมที่จะออก rEFInd กับคะแนนนี้ ไม่ rEFIt และ gummiboot มาพร้อมกับไดรเวอร์ NTFS เช่นกัน
ร็อดสมิ ธ

0

PAY ATTENTION: สำหรับ x64 เท่านั้น

grub-probe --target=fs_uuid /boot/efi/efi/Microsoft/Boot/bootmgfw.efi

เพิ่มไปที่/etc/grub.d/40_custom:

menuentry "Boot bootx64.efi, generated by Boot-Repair" {
search --fs-uuid --no-floppy --set=root UUID

**chainloader (${root})/EFI/Boot/bootx64.efi**
}

รหัสอื่นไม่ทำงาน

ทดสอบบน ASUS N56V

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