Dual-boot Ubuntu 12.10 บน UEFI บน Windows 8 (GRUB - ข้อผิดพลาด: ไม่พบไดรฟ์คำสั่ง)


8

สวัสดีหลังจากการติดตั้ง Ubuntu ที่ประสบความสำเร็จเต็ม 12.10 amd64 ตอนนี้ฉันไม่สามารถบูต Windows 8 ได้

นี่คือการกระทำของฉัน:

  1. ทำห้อง (15 GB) สำหรับ Ubuntu จากการจัดการคอมพิวเตอร์ Windows 8
  2. Boot Ubuntu 12.10 amd64 LiveUSB พร้อม EFI และเปิดใช้งาน Secure Boot
  3. สร้าง 2 พาร์ติชั่นใหม่ตอนท้าย (13 GB Ext4 Root amd 2 GB Swap)
  4. เลือก Windows 8 EFI System Partition เพื่อติดตั้ง bootloader

ด้วงให้ฉันตอนบูต:

  1. Ubuntu (ทำงานได้โดยไม่มีปัญหา)
  2. Windows Recovery Environment (ข้อผิดพลาดมากมาย)
  3. Windows 8 (ข้อความแสดงข้อผิดพลาด 2 ข้ออธิบายด้านล่าง)

ข้อความแสดงข้อผิดพลาด 2 ข้อคือ:

  • error: can't find command drivemap.
  • error: invalid EFI file path

การสัตยาบันฉันเลือก "พาร์ติชันระบบ EFI ที่สร้างขึ้นใหม่" เพื่อติดตั้ง bootloader แต่ในการติดตั้ง bootloader บน Windows 8 EFS reallity ใน Windows 8 EFS ...
Kouros

คุณสำรองข้อมูลไว้ล่วงหน้าหรือไม่? เช่นพาร์ทิชันเริ่มต้นของ windows 8 / ระบบมีขนาดเล็กเช่น 150-350 MB ดังนั้นคุณอาจจะทำdd if=/dev/sda1 of=/media/some_usb_pendrive/backupfileอย่างไร หากมีการสำรองข้อมูลอยู่ฉันจะคืนค่าระบบ windows / เริ่ม partitio ซึ่งอาจ "เสียหาย"
HumanityANDpeace

ขออภัยไม่มีการสำรองข้อมูล แต่ฉันจัดการเพื่อรับ Windows 8 กลับมาโดยใช้ Recovery Environment (โดยการกดปุ่มช่วยเหลือแทนปุ่มเปิดเครื่อง)
Kouros

คุณทำซ้ำคำถามของตัวเองอย่างจริงจังหรือไม่? ติดตั้ง Ubuntu 12.10 บน UEFI บน Windows 8
duxk.gh

หมายเหตุ: อัปเกรดเป็น 13.04 ลบการเปลี่ยนแปลงนี้ในการติดตั้งของฉัน
gcb

คำตอบ:


6

ฉันพบวิธีแก้ปัญหาชั่วคราว

เพิ่มรายการที่กำหนดเองลงใน GRUB bootmenu

/etc/grub.d/40_customผนวกรหัสด้านล่างไป

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

คุณสามารถใช้Ctrl+ Alt+ Tเพื่อเปิดเทอร์มินัลและเรียกใช้sudo nano /etc/grub.d/40_customจากนั้นคัดลอกและวางรหัส ในที่สุดจากนั้นกดCtrl+ Oเพื่อบันทึกและCtrl+ Xเพื่อออก

หัวขึ้น: hd0,gpt1นี่คือ ID ของ EFI System Partition (ESP) ของฉัน หาก ESP ของคุณไม่ใช่พาร์ติชั่นแรกในฮาร์ดไดรฟ์แรกระหว่างการบู๊ตแสดงว่าคุณแตกต่างกัน! เช่นhd1,gpt2สำหรับพาร์ติชันที่สองในไดรฟ์ที่สอง

แทนที่part_gptด้วยpart_msdosถ้าไดรฟ์ใช้ MBR และการแบ่งพาร์ติชันแบบดั้งเดิมและเปลี่ยนhd0,gpt1เป็นhd0,msdos1ตามลำดับ

ใช้การเปลี่ยนแปลงกับ GRUB

เพียงเรียกใช้คำสั่งต่อไปนี้ซึ่งควรสร้างการกำหนดค่า GRUB ใหม่รวมถึงรายการที่กำหนดเองใหม่:

sudo update-grub

ตอนนี้เริ่มต้นใหม่คุณควรจะสามารถบูต Windows 8 ได้ทันที ถ้าไม่และ Windows บ่นเกี่ยวกับการกำหนดค่า BCD ที่เสียหายแล้วให้ดำเนินการต่อใน superuser: ฉันจะซ่อมแซม Windows 8 EFI Bootloader ได้อย่างไร


คำเตือน: ในบางโอกาสหากคุณบูต Windows 8 GRUB จะถูกแทนที่ด้วย Windows Boot Manager เป็นตัวจัดการการเริ่มต้น


ฉันควร 'มุ่ง' เพื่ออะไร ฉันคิดว่ามันเป็น windows data partition (gpt4 ที่นี่) แต่มันใช้งานได้กับ gpt1 ซึ่งเป็นพาร์ติชัน EFI เดียวที่ฉันมี ฉันว่าการติดตั้ง Ubuntu จะมีการเขียนทับเนื้อหาหน้าต่างของพาร์ติชัน EFI เหมือนด้วงทำกับ MBR ...
gcb

1
วิธีนี้ไม่ได้ผลสำหรับฉัน คือตัวละครที่`ปรากฏในที่set root='(hd0,gpt1)'ตั้งใจ มันให้ข้อผิดพลาดสำหรับฉัน (ฉันลองใช้ gpt3) แม้ไม่มีตัวอักษรนั้น ข้อผิดพลาด(hd0,gpt1)คือไม่พบ
iammilind

3

รายการ Windows ที่ไม่ถูกต้องใน GRUB เกิดจากข้อผิดพลาดนี้: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383

การแก้ไข:รันBoot-ซ่อม 's Recommended Repairจาก LiveCD (หรือ LiveUSB)


1
ฉันต้องปิดการใช้งาน "การบูทที่ปลอดภัย" ในไบออสก่อนที่จะใช้งานได้
Robin Winslow

@RobinWinslow ใช่ Boot-Repair ก็ใช้งานได้สำหรับฉัน (Lenovo Thinkpad S540) แต่ถ้าฉันปิดการใช้งานSecureBootไบออสมิฉะนั้น Windows 8 ยังคงบ่นอยู่ ... จะดีถ้ามันสามารถใช้งานได้ในขณะที่รักษา SecureBoot
fpghost

0

ฉันพบวิธีปิด Windows 8 ขึ้น ดู /superuser/499923/preinstalled-windows-8-and-linux-uefi-dual-boot-on-a-laptop/528581

ภายใต้ W8 ในหน้าต่างคำสั่งยกระดับสิทธิ์ให้รัน powercfg / h ตามเวลาที่คุณทำเช่นนี้ W8 อาจมีการเขียนทับพาร์ติชัน EFI ไว้แล้ว ฉันใช้เวลาทำซ้ำสองสามครั้งในการเปลี่ยน bootmgfw.efi และตั้งค่าใหม่จนกว่าจะติดขัด แต่ตอนนี้ฉันมีความสุข

ฉันไม่สามารถบอกได้ว่าเพียงแค่การบูท W8 ก็เพียงพอหรือถ้าคุณต้องเข้าสู่ระบบแล้วรีบูต บางทีใครบางคนที่มีความอดทนมากขึ้น (ฉันได้ทำงานในเรื่องนี้มานานกว่าครึ่งวัน) สามารถบอกได้


0

ฉันมีปัญหาเดียวกันบนแล็ปท็อป Asus-x202 ของฉัน (ใช้ W8 และ Ubuntu 13.04)

การทำงานที่น่ารำคาญเล็กน้อยดีพอสำหรับฉันในขณะนี้: ในเมนูบู๊ตไปที่ระบบ (หรือเริ่มไบออสตั้งแต่เริ่มใช้ f2) หากคุณใช้การแทนที่เพื่อบูต Windows จะเริ่มตามปกติ


1
คุณหมายถึงอะไรโดย "override to boot"? ฉันไม่เข้าใจคำตอบของคุณในส่วนนั้น
gertvdijk

0

"override to boot" เป็นเมนูบนแท็บ "boot" ของเมนูการกำหนดค่าเมนบอร์ด มันช่วยให้คุณเลือกและเริ่มทันทีที่บูตโหลดเดอร์ใด ๆ


1
@edwin คำตอบนี้อาจใช้การขยายตัว แต่ดูเหมือนจะพยายามตอบคำถามที่ถูกถาม vic : ยินดีต้อนรับสู่ถาม Ubuntu! ฉันขอแนะนำให้แก้ไขสิ่งนี้เพื่อเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้คุณสมบัติดังกล่าวรวมถึงคำอธิบายที่ละเอียดยิ่งขึ้นว่าเพราะเหตุใดจึงแก้ปัญหานี้ได้ ขอบคุณ
Eliah Kagan

0

ฉันมีปัญหาคล้ายกันกับ HP Pavillion Sleekbook ใหม่รุ่น 15-b142dx ของฉัน มันมาพร้อมกับ W8 ที่โหลดล่วงหน้า ฉันสามารถปรับขนาดพาร์ติชัน Windows ใหม่จากภายใน Windows จากนั้นติดตั้ง Ubuntu 13.04 แบบ 64 บิตจากธัมบ์ไดรฟ์ อย่างไรก็ตามในการรีบูต W8 เริ่มต้นตามปกติโดยไม่มีเมนูการบู๊ต ดังนั้นฉันใช้ "boot-repair" ซึ่งทำให้ระบบไม่สามารถบูตได้ เมื่อเริ่มต้นมันจะพิมพ์:

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E 
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub

มันจะปิดตัวลง

หลังจากการทดลองและข้อผิดพลาดฉันพบว่าการกด F10 ในระหว่างการบู๊ตจะนำฉันไปที่ BIOS ซึ่งฉันสามารถปิดใช้งาน Secure Boot ได้ การบู๊ตครั้งต่อไปฉันได้รับเมนู LONG จากด้วงมีรายการมากมายเช่น:

Windows UEFI bkpbootmgfw.efi
Windows Boot UEFI loader
EFI/HP/BIOSUpdate/CryptRSA32.efi
.
.
.

สิ่งเหล่านี้มีอยู่ในไฟล์ "/etc/grub.d/25_custom" ฉันทำสำเนาสำรองของไฟล์นั้นจากนั้นลบรายการทั้งหมดยกเว้นตัวโหลด Windows Boot UEFI (นี่เป็นหนึ่งในรายการที่อนุญาตให้ W8 บู๊ตได้) จากนั้นฉันก็รัน "update-grub" และปิดท้ายด้วยเมนูการบูตที่ดีกว่าและสามารถบูตทั้งระบบปฏิบัติการได้

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