บูทคู่ 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.