ฉันมีการติดตั้งบูตคู่ EFI บน Lenovo y50-70 ฉันอัปเกรดเป็น win10 โดยไม่มีปัญหาใดๆ ในวันแรกที่พร้อมใช้งาน win10

นี่คือโครงสร้างของ Hd ของฉัน:

  • sda1 - พาร์ติชั่นการกู้คืน windows
  • sda2 - พาร์ติชัน Ubuntu EFI
  • sda3 - LSP_ESP: ฉันคิดว่าเป็น ESP สำหรับระบบการกู้คืนของ Lenovo
  • sda4 - พาร์ติชันที่ไม่สามารถติดตั้งได้: ฉันอนุมานว่านี่คือ win10 ESP
  • sda5 - พาร์ติชั่นหลัก win10
  • sda6 - พาร์ติชันการกู้คืนของ Lenovo
  • sda7 - PBR_DRV: ไม่มีแนวคิดเกี่ยวกับจุดประสงค์ของพาร์ติชันนี้ เนื่องจาก lenovo กำหนดค่าไว้ล่วงหน้า
  • sda8 - สลับ
  • sda9 - พาร์ติชั่นรูท Ubuntu

ฉันปิดใช้งานการบูตอย่างรวดเร็วใน win10 ปิดใช้งานการบูตแบบปลอดภัยบนไบออส Ubuntu ได้รับการติดตั้งในโหมด EFI แล้ว Ubuntu ESP มีลำดับความสำคัญในการบูตสูงกว่า

The problem:

เป็นเวลามากกว่าหนึ่งเดือนที่บูตคู่กับ win10 ทำงานได้อย่างสมบูรณ์ ตอนนี้ (อาจหลังจากอัปเดตส่วนหัวของเคอร์เนลครั้งล่าสุด) แล็ปท็อปจะบู๊ต win10 โดยอัตโนมัติ

Attempt:

ฉันเชื่อว่าปัญหาคือ ubuntu ESP ที่เสียหาย ดังนั้นฉันจึงทำตามขั้นตอน CHROOT มาตรฐานจาก usb สดเพื่อติดตั้ง ubuntu ESP ใหม่บน sda2 โดยรันคำสั่ง

apt-get install --reinstall grub-efi-amd64

ทั้งหมดทำงานได้อย่างสมบูรณ์ แต่หลังจากการติดตั้งใหม่ ในระหว่างเฟส update-grub ไม่พบตัวโหลดการบูตของ windows และยังรันคำสั่ง update-grub เพิ่มเติมอีกด้วย ฉันออกจาก chroot และรีบูต
หลังจากรีบูต ubuntu ESP เริ่มทำงานอย่างถูกต้อง แต่ตามที่คาดไว้ ไม่มีตัวเลือกตัวโหลดการบูตของ Windows ฉันลงชื่อเข้าใช้ Ubuntu และทำการอัปเดตด้วงอื่น
คราวนี้พบ Windows Boot Loader แล้ว Youppie! แก้ไขปัญหา!
นั่นไม่ใช่เรื่องง่ายอย่างนั้น หลังจากรีบูตอีกครั้ง ข้อความแจ้ง GRUB จะไม่ปรากฏขึ้นและ win10 จะถูกบูตโดยอัตโนมัติ อีกครั้ง. หมายเหตุ:
ฉันทำซ้ำขั้นตอนสองครั้ง ขั้นตอน sampe ผลลัพธ์กลางเหมือนกัน ผลสุดท้ายเหมือนกัน

The loop in bullets:

  1. ออโต้บูต win10
  2. กู้คืนจาก usb สดด้วย chroot
  3. update-grub -> ไม่พบตัวโหลด win10
  4. รีบูต -> แสดงพรอมต์ด้วง -> บูตเข้าสู่ ubuntu
  5. update-grub -> พบ win10 -> รีบูต
  6. ออโต้บูต win10

The efibootmgr output before step 6:

BootCurrent: 0004  
Timeout: 0 seconds  
BootOrder: 0004,0003,2003,2001,0002,2002  
Boot0000* EFI Network 0 for IPv4 (F8-A9-63-4E-C6-FF)  
Boot0001* EFI Network 0 for IPv6 (F8-A9-63-4E-C6-FF)  
Boot0002* Lenovo Recovery System  
Boot0003* Windows Boot Manager  
Boot0004* ubuntu  
Boot0005* EFI USB Device (JetFlashTranscend 16GB)  
Boot2001* EFI USB Device  
Boot2002* EFI DVD/CDROM  
Boot2003* EFI Network  

uname -a output:

Linux Elianto 3.16.0-48-generic #64~14.04.1-Ubuntu SMP Thu Aug 20 23:03:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux  

หากคุณต้องการข้อมูลเพิ่มเติมจากขั้นตอนกลาง (เอาต์พุตคำสั่ง) ให้ถามในความคิดเห็น

ขอขอบคุณ.

answer

วิธีแก้ปัญหาที่เป็นไปได้สองวิธีเกิดขึ้นกับฉัน:

  1. ติดตั้งตัวจัดการการบูต rEFIndของฉัน เครื่องมือนี้มีความน่าเชื่อถือในการบูต Windows มากกว่า GRUB ดังนั้นจึงอาจแก้ไขสิ่งที่ทำให้ GRUB ละเว้นรายการ Windows โปรดทราบว่านี่หมายความว่าคุณจะข้าม GRUB อย่างน้อยสำหรับบูต Windows คุณจะเห็นเมนูของ rEFInd แทน (ในการบูต Ubuntu rEFInd ควรจะสามารถบูตเคอร์เนล Linux ได้โดยตรงหรือใช้ GRUB)
  2. สร้าง GRUB boot stanza แบบแมนนวลสำหรับ Windows ตามที่อธิบายไว้ในคำตอบสำหรับคำถามนี้คุณจะต้องเปลี่ยนรายละเอียดบางอย่าง เช่น ตัวระบุพาร์ติชัน (ควรเป็น(hd0,gpt2))

นอกจากนี้ FYI ของคุณ/dev/sda2คือ EFI System Partition (ESP) โปรดทราบว่าเป็นพาร์ติชันระบบEFI - "เป็นของ" ของ EFI (เฟิร์มแวร์ของคอมพิวเตอร์) ไม่ใช่ของระบบปฏิบัติการใด ๆ OS จำเป็นสำหรับการจัดเก็บบูตโหลดเดอร์ใน ESP แต่ ESP ไม่ได้เป็นของ OS ใดเลย โดยปกติจะแชร์โดย OS ทั้งหมด ที่กล่าวว่าเป็นไปได้ที่จะมี ESP หลายตัวบนดิสก์ และผู้ใช้บางคนจำกัดแต่ละ OS ให้ใช้ ESP เฉพาะ แต่นั่นไม่ได้ดูเหมือนจะเป็นกรณีสำหรับคุณ แต่ฉันไม่สามารถเป็น 100% ในเชิงบวกของว่าไม่มีข้อมูลรายละเอียดมากขึ้นเช่นการส่งออกของหรือsudo parted /dev/sda print sudo gdisk -l /dev/sda(ข้อมูลสรุปอย่างที่คุณให้มามักจะด้อยกว่าผลลัพธ์ของโปรแกรมที่ตัดและวาง) สิ่งนี้ไม่เกี่ยวข้องกับปัญหาของคุณจริงๆแต่ฉันคิดว่าฉันควรจะเคลียร์ความสับสนเล็กน้อยนี้