ฉันรู้ว่าคุณได้แก้ไขปัญหาแล้ว แต่ฉันต้องการชี้ให้เห็นว่ามีอะไรผิดพลาดและควรแก้ไขอย่างไร (ทั้งโดยผู้ใช้ทั่วไปและโดยนักพัฒนาของ Ubuntu)
ก่อนอื่นนักพัฒนาของ Ubuntu ได้ตัดสินใจอย่างไม่เต็มใจที่จะสร้างการกำหนดค่า GRUB ที่ต้องอาศัยไฟล์ใน/
พาร์ติชั่นรูท Ubuntu และรวมถึงEFI System Partition (ESP) สิ่งนี้ทำให้ GRUB เสี่ยงต่อการลบหรือความเสียหายต่อพาร์ติชัน Linux และทำให้ยากต่อการบูตคอมพิวเตอร์หลังจากลบ Ubuntu หรือหากการติดตั้ง Ubuntu เสียหายในบางวิธี ช่องโหว่นี้ไม่จำเป็น เป็นไปได้ที่จะกำหนดค่า GRUB เพื่อค้นหาไฟล์สนับสนุนและการตั้งค่าทั้งหมดใน ESP หาก GRUB ได้รับการกำหนดค่าด้วยวิธีนี้ (เช่นเดียวกับ Fedora) การลบ Ubuntu จะไม่ส่งผลต่อความสามารถของ GRUB ในการเปลี่ยนเส้นทางไปยัง Windows ระบบจะยังคงบูตผ่าน GRUB แต่อย่างน้อยก็ยังคงบูตอยู่ ดังนั้นน่าเสียดายที่ Ubuntu ตั้งค่าด้วงผิดวิธี
อย่างที่สองจากชื่อไฟล์ที่คุณพูดถึงดูเหมือนว่าคุณจะเรียกใช้เครื่องมือซ่อมแซมการบูตของ Ubuntu ในบางครั้ง เครื่องมือนี้จะเปลี่ยนชื่อบูตเดอร์ของ Windows โดยอัตโนมัติEFI/Microsoft/Boot/bootmgfw.efi
และวางสำเนาของ GRUB ไว้ในตำแหน่ง มันทำสิ่งเดียวกันกับ EFI fallback boot loader, EFI/BOOT/bootx64.efi
และทำสำเนา GRUB อีกอันไว้ในEFI/Microsoft/Boot/bootx64.efi
นั้น, ด้วยเหตุผลที่ฉันไม่อ้างว่าเข้าใจ. นี่เป็นวิธีแก้ปัญหาสำหรับข้อบกพร่องในกำมือของ EFIs ปัญหาคือการซ่อมแซมการบูตทำตามค่าเริ่มต้น ในคอมพิวเตอร์ส่วนใหญ่มันไม่ได้เป็นจำเป็น เมื่อภายหลังเป็นที่พึงปรารถนาที่จะเปลี่ยนแปลงการกำหนดค่าการบูตการเปลี่ยนชื่อและการจำลองแบบของ GRUB นี้จะกลายเป็นความซับซ้อนเนื่องจากผู้ใช้คาดเดาว่าจะเกิดอะไรขึ้น ดังนั้นความอัปยศของนักพัฒนา Boot Repair ที่ไม่แน่นอนเกี่ยวกับการซ่อมแซม (ในการป้องกันของพวกเขามันจะเป็นเรื่องยากมากสำหรับ Boot Repair ที่จะตรวจสอบได้อย่างแม่นยำว่าคอมพิวเตอร์เครื่องใดมีข้อบกพร่องที่ต้องย้ายไฟล์บูตในลักษณะที่เป็นค่าเริ่มต้น)
อีกประเด็นหนึ่งที่สำคัญ: ในระบบ EFI ที่ใช้งานได้อย่างเหมาะสมรายการโปรแกรมบูตจะถูกเก็บไว้ใน NVRAM EFI ลองแต่ละโปรแกรมในรายการนี้ตามลำดับ หากล้มเหลวหรือขาดหายไปหนึ่งพยายามถัดไป เมื่อ Ubuntu ติดตั้งจะเพิ่ม GRUB เวอร์ชันไว้ที่ด้านบนสุดของรายการ EFIs ส่วนใหญ่ยังช่วยให้ผู้ใช้สามารถระบุโปรแกรมบู๊ตที่จะใช้จากตัวจัดการการบูตในตัว แต่ตัวจัดการการบูตในตัวนี้มีความสำคัญต่อ EFI ส่วนใหญ่
สรุปปัจจัยเหล่านี้ทั้งหมดและทางออกที่ง่ายที่สุดสำหรับปัญหาดั้งเดิมจะกลายเป็น:
- เลิกทำการเปลี่ยนแปลงเครื่องมือซ่อมแซม Boot สิ่งนี้สามารถทำได้โดยใช้เครื่องมือซ่อมแซมการบู๊ตเอง มันมีเมนูตัวเลือกขั้นสูงพร้อมกล่องกาเครื่องหมายเรียกว่า "กู้คืนข้อมูลสำรอง EFI" ใช้สิ่งนั้นและ GRUB หลายชุดจะถูกลบออกและตัวบูตการบูตของ Windows จะถูกกู้คืน หรือสามารถทำได้ด้วยตนเอง สิ่งสำคัญที่สุดคือการสำรองข้อมูลของ
bootmgfw.efi
(อาจจะเรียกว่าbkpbootmgfw.efi
แม้ว่าบางรุ่นของ Boot Repair ได้ใช้ชื่ออื่น ๆ ) ควรจะคัดลอกไปEFI/Microsoft/Boot/bootmgfw.efi
ยัง ESP
- ลบ GRUB ในตำแหน่งอย่างเป็นทางการ / เหมาะสม -
EFI/ubuntu/grubx64.efi
สำหรับ Ubuntu หาก Secure Boot เปิดใช้งานอยู่การลบEFI/ubuntu/shimx64.efi
จะมีความจำเป็นแทน อันที่จริงการลบEFI/ubuntu
ไดเรกทอรีทั้งหมดหรืออย่างน้อยก็เปลี่ยนชื่อมันจะทำงานในกรณีใด ๆ
แค่นั้นแหละ. เมื่อสองสิ่งนี้สำเร็จ EFI จะข้ามตัวเลือกการบูตของ Ubuntu เนื่องจากไม่สามารถใช้งานได้อีกต่อไปและจะเริ่มการบูต Windows EFIs บางตัวจะลบตัวเลือกการบูตของ Ubuntu ออกจากเมนูของผู้จัดการการบูตโดยอัตโนมัติเช่นกันแม้ว่าการฝึกนี้จะไม่เป็นสากล
โปรดสังเกตว่าในกรณีของคุณแมทธิวฉันไม่แนะนำให้ทำสิ่งเหล่านี้ คุณมีการกำหนดค่าที่ใช้งานได้และอย่างที่พวกเขาพูดว่า "หากยังไม่พังก็ไม่ต้องแก้ไข" คุณอาจมีไฟล์หลงทางไม่กี่ตัวที่เหลืออยู่ใน ESP ของคุณ แต่ไฟล์เหล่านั้นไม่ได้ทำอันตรายใด ๆ ฉันแสดงคำตอบด้วยความหวังว่าคนอื่นจะพบว่ามีประโยชน์
แก้ไข:ข้างต้นถูกต้องเมื่อฉันเขียนมันครั้งแรกและหลักการยังคงเหมือนเดิม; อย่างไรก็ตาม Boot Repair จะไม่เปลี่ยนชื่อบูต Windows โดยอัตโนมัติอีกต่อไปและแทนที่ด้วย GRUB อื่น (Boot Repair สามารถทำสิ่งนี้ได้ตามต้องการแต่ตัวเลือกถูกฝังอยู่ในเมนูตัวเลือกขั้นสูงดังนั้นจึงไม่ได้ทำตามค่าเริ่มต้นอีกต่อไป) ความจริงข้อนี้ทำให้การกู้คืนจากปัญหานี้ง่ายขึ้นกว่าในปี 2013 ในกรณีส่วนใหญ่ ลบEFI/ubuntu
ไดเรกทอรีบน ESP เพื่อให้ระบบบูตโดยตรงไปยัง Windows หาก GRUB ยังคงปรากฏขึ้นหลังจากที่คุณทำเช่นนี้คุณอาจใช้ตัวเลือก Boot Repair เพื่อสำรองและเปลี่ยนชื่อไฟล์การบูตซึ่งในกรณีนี้การใช้มันเพื่อเลิกทำการกระทำเหล่านั้นเป็นไปตามที่ระบุไว้ก่อนหน้านี้
อีกตัวเลือกหนึ่งคือการใช้ตัวจัดการการบูตในตัวคอมพิวเตอร์ (โดยปกติแล้วจะเข้าถึงได้โดยกดปุ่มฟังก์ชั่น Esc หรือ Enter ทันทีหลังจากที่คุณเปิดเครื่องคอมพิวเตอร์) เพื่อเลี่ยงผ่าน GRUB และบูตไปยัง Windows จากนั้นคุณสามารถใช้EasyUEFIเพื่อปรับลำดับการบู๊ตและ / หรือลบubuntu
รายการออกจากรายการบูต การกระทำนี้จะไม่ลบ GRUB ออกจาก ESP แต่จะข้าม GRUB