วิธีซ่อมแซม Windows Boot Manager, BCD และ Master Boot Record (MBR)
Boot Manager ใน Windows รุ่นใหม่ใช้ไฟล์ BCD (ข้อมูลการกำหนดค่าการบูต) เพื่อบูตระบบปฏิบัติการที่ติดตั้งในคอมพิวเตอร์ ไฟล์นี้มีข้อมูลเกี่ยวกับ OS ที่ติดตั้งและพารามิเตอร์การบู๊ต Windows ไม่สามารถบู๊ตได้ตามปกติหากไฟล์ BCD ถูกลบหรือเสียหาย นอกจากนี้ คุณจะไม่สามารถบู๊ต Windows ได้หาก Mater Boot Record (MBR) ในฮาร์ดดิสก์เสียหาย ในบทความนี้ เราจะแสดงวิธีสร้าง Windows Boot Manager ใหม่อย่างถูกต้อง ไฟล์การกำหนดค่า BCD และแก้ไข MBR บน Windows 10 และ 11
ไฟล์ข้อมูลการกำหนดค่าการบูตหายไปใน Windows 10 หรือ 11
หากไฟล์ BCD หายไปหรือเสียหาย หากคุณลบ/ฟอร์แมตพาร์ติชันดิสก์แยกต่างหากที่มีป้ายกำกับ ระบบสงวน (และขนาด 500 MB) หรือพาร์ติชันการกู้คืน OEM แบบพิเศษ ผู้ใช้อาจเห็น ข้อความต่อไปนี้เมื่อพยายามบูต Windows:
Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: \Boot\BCD
Error code: 0xc0000034นอกจากนี้ ข้อผิดพลาดอาจมีลักษณะดังนี้:
The Boot Configuration Data for your PC is missing or contains errors.
File: \boot\bcd
Error Code: 0xc000000fหาก MBR เสียหาย อาจมีข้อผิดพลาด "ไม่พบระบบปฏิบัติการ"
หากข้อความแสดงข้อผิดพลาดอ้างถึงไฟล์ winload.efi ให้ไปที่บทความ Winload.efi หายไปใน Windows 10
วิธีซ่อมแซม Windows Bootloader โดยอัตโนมัติ
หากข้อผิดพลาดนี้ปรากฏขึ้น ก่อนอื่น ให้ลองแก้ไขปัญหาด้วยการบูทระบบปฏิบัติการโดยใช้ โหมดการซ่อมแซมการเริ่มต้นที่สามารถเริ่มต้นได้จาก Windows Recovery Environment (Windows RE)
เคล็ดลับ ขอแนะนำให้ตรวจสอบความสมบูรณ์ของสภาพแวดล้อม WinRE เป็นระยะ และหากไม่ได้ผล ให้ใช้วิธีการที่อธิบายไว้ในบทความ “วิธีการกู้คืน WinRE ใน Windows ” เพื่อซ่อมแซม
หากการซ่อมแซมอัตโนมัติโดยใช้ Startup Repair ไม่ได้ผล ให้บูตคอมพิวเตอร์จากดิสก์สำหรับบูต/การติดตั้ง Windows หรือในสภาพแวดล้อม WinRE (ซ่อมแซมคอมพิวเตอร์ของคุณ -> แก้ไขปัญหา -> ตัวเลือกขั้นสูง -> พร้อมรับคำสั่ง) เริ่มพรอมต์คำสั่ง ลองสร้างไฟล์ BCD ใหม่ และอัปเดตบันทึก MBR ตั้งแต่เริ่มต้น
ในตัวอย่างนี้ ฉันจะใช้ดิสก์การติดตั้ง Windows 10 เปลี่ยนอุปกรณ์สำหรับบู๊ตหลักเป็นไดรฟ์ดีวีดีหรือแฟลชไดรฟ์ USB พร้อมไฟล์ติดตั้ง Windows ในการตั้งค่า BIOS (ขึ้นอยู่กับอุปกรณ์ที่คุณต้องการบูตเครื่องคอมพิวเตอร์) บูตเครื่องคอมพิวเตอร์จากอิมเมจการติดตั้ง Windows แล้วกด Shift + F10 บนหน้าจอการเลือกภาษา คุณจะเห็นพรอมต์คำสั่ง
ลองซ่อมแซมไฟล์ BCD โดยอัตโนมัติโดยใช้คำสั่งนี้:
bootrec /RebuildBCDรีบูตเครื่องคอมพิวเตอร์และตรวจสอบว่า Windows บู๊ตหรือไม่ (อย่าลืมเปลี่ยนลำดับความสำคัญของอุปกรณ์บู๊ตในการตั้งค่า BIOS) หาก Windows ไม่บู๊ต ให้บู๊ตจากสื่อการติดตั้งอีกครั้ง แล้วเปิดพรอมต์คำสั่ง
การระบุเค้าโครงพาร์ติชันดิสก์และอักษรระบุไดรฟ์
สำคัญมาก คำแนะนำทั้งหมดที่ระบุด้านล่างนี้เหมาะสำหรับคอมพิวเตอร์ BIOS มาตรฐาน (หรือการบูตในโหมดดั้งเดิมของ UEFI) ที่มีตารางพาร์ติชัน MBR ในคอมพิวเตอร์ที่มีเฟิร์มแวร์ UEFI คุณต้องใช้คำแนะนำต่อไปนี้เพื่อซ่อมแซม EFI bootloader บน Windows 10 หรือเพื่อกู้คืนพาร์ติชัน EFI ที่ถูกลบ
จะทราบได้อย่างไรว่าคุณมีคอมพิวเตอร์ที่มี BIOS หรือ UEFI วิธีที่ง่ายที่สุดคือการตรวจสอบตารางพาร์ติชั่นดิสก์ที่ติดตั้ง Windows: GPT หรือ MBR ในการทำเช่นนี้ ให้รันคำสั่ง:
diskpartจากนั้นแสดงรายการดิสก์ที่มีอยู่:
list diskหากดิสก์มีเครื่องหมายดอกจัน (
*) ในคอลัมน์ Gpt จากนั้นจึงใช้ตารางพาร์ติชัน GPT ในดิสก์นี้ ซึ่งหมายความว่าคุณมีคอมพิวเตอร์ที่มี UEFI และในการกู้คืน Windows bootloader คุณต้องใช้บทความจากลิงก์ด้านบน
หากไม่มีเครื่องหมายดอกจันในคอลัมน์ GPT แสดงว่าคุณมีตารางพาร์ติชัน MBR ในดิสก์ และคุณสามารถทำตามคำแนะนำนี้ต่อไปได้
ถัดไป คุณต้องระบุไดรฟ์ในเครื่องและไดรฟ์ข้อมูลในคอมพิวเตอร์ของคุณ (เป็นไปได้มากว่าอักษรระบุไดรฟ์ที่กำหนดให้กับพวกเขาจะแตกต่างจากที่คุณเห็นเมื่อทำงานใน Windows) ทำได้ง่ายกว่าโดยใช้ diskpart เรียกใช้คำสั่งเหล่านี้:
diskpart
list vol
คุณจะเห็นรายการพาร์ติชัน อักษรชื่อไดรฟ์ที่กำหนดให้กับพาร์ติชัน และขนาดของพาร์ติชัน ในกรณีของเรา มีฮาร์ดไดรฟ์หนึ่งตัวในคอมพิวเตอร์ที่มีโวลุ่มสองตัว:
-
พาร์ติชัน ระบบสำรอง ที่มีขนาด 500 MB และระบุอักษรระบุไดรฟ์ C: ตามค่าเริ่มต้น Windows Boot Manager และไฟล์ BCD จะอยู่ในพาร์ติชันบริการขนาดเล็กนี้ (อ่านเพิ่มเติม);
พาร์ติชัน NTFS ที่มีขนาด 39 GB และกำหนดตัวอักษร D: พาร์ติชันนี้ประกอบด้วย Windows โปรแกรม และข้อมูลผู้ใช้ที่ติดตั้งไว้
สำคัญ จำอักษรระบุไดรฟ์ที่กำหนด เนื่องจากจะใช้ในคำสั่งในภายหลัง
ซ่อมแซม Master Boot Record (MBR) บน Windows 10/11
คุณสามารถใช้เครื่องมือ bootrec.exe เพื่อเขียนทับข้อมูลใน MBR และบูตเซกเตอร์ และเพิ่มพาธที่จำเป็นไปยัง Windows Boot Manager
ลองเขียนทับมาสเตอร์บูตเรคคอร์ด (MBR) ของพาร์ติชันระบบเพื่อให้เข้ากันได้กับตัวโหลดการบูตของ Windows (ตารางพาร์ติชันที่มีอยู่จะไม่ถูกเขียนทับ)
bootrec.exe /fixmbrเพิ่มโค้ดลงในบูตเซกเตอร์ของดิสก์เพื่อโหลดไฟล์ bootmgr (Windows Boot Manager):
bootsect.exe /nt60 all /forceหากไม่พบคำสั่ง bootsect.exe ให้ลองระบุเส้นทางแบบเต็ม:
X:\boot\bootsect.exe /nt60 all /forceก่อนดำเนินการต่อ ให้ลองสร้างการกำหนดค่า bootloader BCD ใหม่โดยอัตโนมัติด้วยคำสั่งต่อไปนี้ (นี่เป็นวิธีที่ง่ายที่สุดสำหรับผู้เริ่มต้น):
bootrec /FixBoot- คำสั่งสร้างบูตเซกเตอร์ใหม่บนพาร์ติชันระบบและเขียนทับบันทึกการบูตของพาร์ติชัน PBR
bootrec /ScanOs- สแกนไดรฟ์ทั้งหมดและค้นหาสำเนา Windows ที่ติดตั้งซึ่งไม่ได้อยู่ในที่เก็บการกำหนดค่าการบูต
หากการสแกนสำเร็จ คุณจะได้รับแจ้งให้เพิ่มรายการเกี่ยวกับอินสแตนซ์ Windows ที่พบในการกำหนดค่า BCD:
Scanning all disks for Windows installations.
Please wait, since this may take a while...
Successfully scanned Windows installations.
Total identified Windows installations: 1 [1] D:\Windows
Add installation to boot list? Yes/No/All:bootrec /RebuildBcd - สร้างที่เก็บการกำหนดค่า bootloader ใหม่ เพิ่มสำเนาของ Windows ที่พบในคอมพิวเตอร์ไปยัง BCD bootloader
หลังจากนั้นให้รีสตาร์ทเครื่องคอมพิวเตอร์และตรวจสอบว่า Windows บูทอย่างถูกต้องหรือไม่ หาก OS ไม่บู๊ต ให้ทำตามคำแนะนำด้านล่าง
จะสร้าง Windows Boot Configuration (BCD) ใหม่จาก Scratch ได้อย่างไร
จากนั้น ใช้คำสั่ง using BCDedit เพื่อสร้างไฟล์ Boot Configuration Data ใหม่ (ซึ่งก็คือคุณไม่มีไฟล์สำรองข้อมูล BCD)
ขั้นตอนต่อไปของคุณขึ้นอยู่กับว่าดิสก์มีพาร์ติชั่น System Reserved แยกต่างหากหรือไม่ เรียกใช้คำสั่ง:
diskpart
list volตรวจสอบว่ามีพาร์ติชั่น System Reserved บนฮาร์ดดิสก์หรือไม่ สามารถระบุได้จากป้ายกำกับระดับเสียงหรืออย่างแม่นยำยิ่งขึ้นตามขนาด (500 MB สำหรับ Windows 10+, 350 MB สำหรับ Windows 8.1 และ 100 MB สำหรับ Windows 7)
หากไม่มีพาร์ติชันที่สำรองไว้ของระบบ (บางทีคุณอาจลบพาร์ติชันโดยไม่ตั้งใจ) คุณสามารถจัดเก็บไฟล์ Boot Manager ไว้ในไดรฟ์ระบบซึ่งเป็นที่ตั้งของไดเร็กทอรี Windows หากต้องการสร้างไฟล์คอนฟิกูเรชัน bootmgr และ BCD bootloader บนไดรฟ์ที่ระบุ ให้รันคำสั่ง:
bcdboot C:\Windows /S C:ข้อความควรปรากฏขึ้น:
Boot files successfully created.หากคุณมีพาร์ติชันที่ระบบสำรองไว้ ให้ลบไฟล์ BCD เก่า (เสียหาย) และสร้างไฟล์ใหม่แทน:
del c:\boot\bcd
หากไม่ได้กำหนดอักษรชื่อไดรฟ์ให้กับพาร์ติชันที่ระบบสำรองไว้ (โดยค่าเริ่มต้น) คุณสามารถกำหนดได้ด้วยตัวเองโดยใช้ diskpart วิ่ง:
diskpartเลือกดิสก์ในเครื่องของคุณ (ในกรณีของฉัน เชื่อมต่อฮาร์ดดิสก์เพียงตัวเดียว แต่คุณสามารถแสดงรายการดิสก์ในเครื่องด้วยคำสั่ง รายการดิสก์):
select disk 0ภาพหน้าจอด้านบนแสดงให้เห็นว่าพาร์ติชันที่ระบบสำรองไว้เรียกว่า เล่มที่ 1 เลือก:
select volume 1กำหนดอักษรระบุไดรฟ์ (ฉันกำหนดอักษรระบุไดรฟ์ว่า C: แต่คุณสามารถใช้อักษรอื่นแทนได้ ในกรณีนี้ ให้เปลี่ยนเส้นทางในคำสั่งต่อไปนี้):
assign letter C:exitสร้างไฟล์ชั่วคราวเปล่า bcd.tmp:
bcdedit /createstore c:\boot\bcd.tmpสร้างรายการสำหรับ Windows Boot Manager (bootmgr):
bcdedit.exe /store c:\boot\bcd.tmp /create {bootmgr} /d "Windows Boot Manager"นำเข้าการตั้งค่าจาก bcd.tmp ไปยัง BCD ของคุณ:
bcdedit.exe /import c:\boot\bcd.tmpหากคำสั่ง bcdedit ส่งกลับข้อผิดพลาดขณะเข้าถึงไฟล์ BCD (
access denied,
the store import operation has failed,
the required system device cannot be found, the volume does not contain a recognized file system. please make sure that all required file system drivers are loaded and that the volume is not corrupted) ลองลบแอตทริบิวต์ที่ซ่อนอยู่ อ่านอย่างเดียว และระบบออกจากมัน:
attrib C:\Boot\BCD -s -h -rระบุว่า Windows Boot Manager อยู่บนพาร์ติชัน System Reserved (มีการกำหนดอักษรระบุไดรฟ์ C:):
bcdedit.exe /set {bootmgr} device partition=c:กำหนดค่าการหมดเวลาเพื่อเลือกระบบปฏิบัติการ:
bcdedit.exe /timeout 10นำไฟล์ชั่วคราวออก:
del c:\boot\bcd.tmpดังนั้น คุณได้สร้างไฟล์ BCD เปล่าด้วยการตั้งค่า bootloader ตอนนี้คุณต้องเพิ่มรายการเกี่ยวกับ Windows ที่ติดตั้ง
สร้างรายการใหม่ในการกำหนดค่า BCD สำหรับ Windows 10:
bcdedit.exe /create /d "Windows 10" /application osloaderคำสั่งจะส่งคืนตัวระบุเฉพาะ (GUID) ของรายการ bootloader นี้
The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.ระบุว่า bootmgr ควรใช้รายการนี้ตามค่าเริ่มต้น (หลังจากหมดเวลา รายการนี้จะถูกใช้เพื่อบูต Windows):
bcdedit /default {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs}ตอนนี้คุณต้องระบุเส้นทางไปยังสำเนา Windows 10 ที่ติดตั้งในรายการ bootloader ใหม่ เราพบก่อนหน้านี้ว่าอักษรระบุไดรฟ์ D: ถูกกำหนดให้กับพาร์ติชัน Windows ใน WinPE ใช้อักษรระบุไดรฟ์นี้ในคำสั่งต่อไปนี้:
bcdedit.exe /set {default}device partition=d:
bcdedit.exe /set {default} osdevice partition=d:
bcdedit.exe /set {default} path \Windows\system32\winload.exe
bcdedit.exe /set {default} systemroot \Windowsทำให้รายการบูตนี้มองเห็นได้ใน BCD เนื่องจากถูกซ่อนไว้โดยค่าเริ่มต้น:
bcdedit.exe /displayorder {default} /addlastดังนั้นเราจึงสร้าง bootloader (bootmgr) และไฟล์ BCD ของ Windows 10 ใหม่ทั้งหมด และเขียนทับบูตเซกเตอร์ MBR
ตอนนี้คุณต้องเปิดใช้งานพาร์ติชันที่มีไฟล์ bootmgr และ BCD ที่มีการกำหนดค่า bootloader ของ Windows (BIOS ถ่ายโอนการควบคุมไปยัง OS bootloader บนพาร์ติชัน MBR ที่ใช้งานอยู่) ตัวอย่างเช่น มีพาร์ติชันต่อไปนี้ในคอมพิวเตอร์ของคุณ
Volume 0 - การติดตั้งแฟลชไดรฟ์ (อิมเมจ ISO) ที่คุณบูตเครื่องคอมพิวเตอร์
เล่มที่ 1 - พาร์ติชั่นระบบสำรอง (ขนาด 500 MB) พร้อมไฟล์ bootmgr และ BCD ของ Windows
เล่มที่ 2 - พาร์ติชันที่มีโฟลเดอร์ระบบ Windows (%Windir%, ไฟล์โปรแกรม, ผู้ใช้ และอื่นๆ)
ในตัวอย่างนี้ คุณต้องทำให้ Volume 1 เป็นพาร์ติชันที่ใช้งานอยู่ (ในกรณีของคุณ คุณต้องหาหมายเลขพาร์ติชันของคุณ) คุณสามารถทำให้พาร์ติชันใช้งานได้โดยใช้ diskpart:
diskpart
list disk
sel disk 0
list vol
select volume 1 (bootmgr และ \Boot\BCD ต้องอยู่ในพาร์ติชันนี้ )
active
exitตรวจสอบว่าไดรฟ์ข้อมูล 1 เปิดใช้งานอยู่:
select vol 1
detail partition(Active: Yes )ตอนนี้คุณสามารถรีสตาร์ทคอมพิวเตอร์และตรวจสอบให้แน่ใจว่า Windows บู๊ตได้ตามปกติ











