Restore Windows boot loader

ไม่คิดว่า จะต้องมาเขียนสำหรับ Windows แต่ด้วยความที่ลองหลายทางแล้วไม่ได้เรื่องก็เลยต้องมาจดหน่อย เวลามีปัญหา

ปัญหาจริงๆ คือ dual boot windows กะ ubuntu แต่พอ windows update แล้วบ้าบอ เข้า grub แล้วกดที่ Windows แล้วหาย ทำอะไรไม่ได้?? ลงคนละ drive (physically) ดังนั้นก็ไม่ควรจะมีความเกี่ยวข้องกันเท่าไหร่ แต่ Boot ไม่ได้ แก้ยังไงหละทีนี้ลอง repair อะไรผ่าน USB installer ก็บอกว่าไม่ได้? ลบ xml ที่เก็บค่า pending update อะไรนั่นก็ไม่ได้ สุดท้ายจิงๆ คือต้องจัดการ BCD (Boot Configuration Data) ใหม่หมดเลย

สิ่งที่ต้องมี

  1. Windows USB Installer

สิ่งที่ต้องทำ

  1. Boot เข้าไป Installer

  2. เข้า repair --> หาที่ command line

  3. เข้า diskpart ไป assign letter (drive) ให้กับ EFI volume เดิมมันจะไม่ mount ก็ไม่มีตัวอักษรของ drive มันนั่นแหละ ตั้งเป็น M: ก็ได้ (หรืออะไรที่ไม่ชนกับที่มีนั่นแหละ)

     sel disk 0
     sel vol 1
     assign letter=M:
     exit
    

    diskpart มันเขียนย่อได้ หรือจะเขียนเต็มอย่าง select volume ก็ได้ ถ้าไม่รุ้ว่า sel อะไรก็ list disk, list vol ดู

  4. สร้าง BCD ใหม่ซะ

     bcdboot C:\windows /s M: /f UEFI 
    

    มันจะบอกว่า Boot files successfully created. เป็นอันสิ้นพิธี

ถ้ามันขึ้นว่า permission denied หรืออะไรก็แล้วแต่ มันคือ ว่า มันแก้ไม่ได้เพราะคนอื่น (Boot loader อื่น เช่น GRUB, Clover ทำไว้ละมันแก้ไม่ได้ด้วยเหตุใดก็ตาม) วิธีแก้ก็คือ เข้า diskpart ใหม่

 select disk 0
 select vol 1
 format fs=FAT32
 assign letter=M:

ประมาณนี้ ไม่รุ้ทำไมว่า มันโคตรนาน (>20 นาที) กับ 200MB partition (HDD หมุนๆ) หรือเพราะเครื่องที่ใช้ก็ไม่รุ้ แต่พอออกมาก็วนกลับไปทำข้อ 4) ก็น่าจะเรียบร้อย