ฉันมีระบบที่ใช้ Gentoo Linux และ Windows 7 โดยใช้ GRUB2 คอมพิวเตอร์มีสี่ไดรฟ์และ Windows ได้รับการติดตั้งในพาร์ติชันที่สาม (ล่าสุด) ของไดรฟ์ # 2 เค้าโครงไดรฟ์มีลักษณะดังนี้:
|boot|-----------------home-----------------|-------------windows-------------|
( boot
และhome
เป็นพาร์ติชัน Linux) มันเป็นการติดตั้งที่แปลก แต่มันใช้งานได้เสมอจนกระทั่งฉันตัดสินใจลดขนาดพาร์ติชัน Windows โดยใช้ Gparted เลย์เอาต์ใหม่คือ:
|boot|-----------------------home-----------------------|-------windows-------|
หลังจากทำการเปลี่ยนแปลงพาร์ติชั่นเหล่านี้เมื่อฉันเลือกตัวเลือก Windows ใน GRUB2 และทำการควบคุมการ bootloader ของ Windows ฉันได้รับข้อความแสดงข้อผิดพลาด:
Windows Boot Manager
Windows ไม่สามารถเริ่มต้นได้ การเปลี่ยนแปลงฮาร์ดแวร์หรือซอฟต์แวร์ล่าสุดอาจเป็นสาเหตุ ในการแก้ไขปัญหา: 1. ใส่แผ่นดิสก์การติดตั้ง Windows ของคุณแล้วรีสตาร์ทคอมพิวเตอร์ 2. เลือกการตั้งค่าภาษาของคุณแล้วคลิก "ถัดไป" 3. คลิก "ซ่อมคอมพิวเตอร์ของคุณ" หากคุณไม่มีแผ่นดิสก์นี้โปรดติดต่อผู้ดูแลระบบหรือคอมพิวเตอร์ของคุณ ผู้ผลิตเพื่อขอความช่วยเหลือ สถานะ: 0xc0000225 ข้อมูล: การเลือกการบูตล้มเหลวเนื่องจากอุปกรณ์ที่ต้องการไม่สามารถเข้าถึงได้
ฉันไม่แปลกใจอย่างยิ่งกับสิ่งนี้ที่เกิดขึ้น แต่ฉันสงสัยว่าฉันสามารถแก้ไขได้โดยไม่ต้องติดตั้ง Windows ใหม่
ฉันลองบูทคอมพิวเตอร์โดยใช้แผ่นดีวีดีติดตั้ง Windows (โดยเฉพาะคือดีวีดีอัพเกรด Windows 7) หลังจากที่ผมเลือกภาษาและแป้นพิมพ์และคลิกที่ "ซ่อมคอมพิวเตอร์เครื่องนี้" ระบบหน้าจอตัวเลือกการกู้คืนไม่ได้ตรวจสอบพาร์ทิชันของ Windows ฉันสามารถคลิก "Next" อยู่แล้วและจากนั้นใช้ซ่อมแซมการเริ่มต้นที่ล้มเหลวในการแก้ไขปัญหาได้หรือลองเครื่องมือบรรทัดคำสั่งคือbootrec
(แนะนำโดยหลายเว็บไซต์) และsfc
chkdsk
ไม่มีใครสร้างความแตกต่างได้ ฉันยังคงได้รับข้อความแสดงข้อผิดพลาดเดียวกัน (ดูด้านล่างสำหรับรายละเอียดผลลัพธ์)
นอกจากนี้ตามที่แนะนำในคำถามที่คล้ายกันฉันลองใช้ฟังก์ชั่น "Rebuild BS" (สร้างบูตเซกเตอร์) ในTestDiskทำงานภายใต้ Linux ทำหน้าที่ในพาร์ติชัน Windows ที่ยังไม่ได้เปลี่ยนข้อผิดพลาดที่ฉันได้รับ
ฉันไม่ได้เห็นสัญญาณของความเสียหายของข้อมูลในพาร์ติชันทั้งสองและไดรฟ์ไม่ได้รับความเสียหายทางกายภาพดังนั้นจึงค่อนข้างแน่ใจว่าการเปลี่ยนแปลงในรูปแบบพาร์ติชันเป็นสาเหตุของข้อผิดพลาดนี้ ฉันคิดว่า Windows จะต้องมีเซกเตอร์เริ่มต้นและ / หรือขนาดพาร์ติชันที่เก็บไว้ในระบบแฟ้ม (รีจิสทรี?) โดยบอกว่าโดยหลักการแล้วมันควรจะเป็นไปได้ในการแก้ไขปัญหานี้โดย twiddling สองสามไบต์ในไฟล์ แต่ไฟล์ไหน หรือมีบางอย่างที่ซับซ้อนกว่ากัน?
ถ้าช่วยได้นี่คือส่วนกำหนดค่า GRUB2 ที่สอดคล้องกับ Windows:
menuentry 'Windows 7 (loader) (on /dev/sdb3)' --class windows --class os $menuentry_id_option 'osprober-chain-1F9948EB30A986A0' {
insmod part_msdos
insmod ntfs
set root='hd1,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos3 --hint-efi=hd1,msdos3 --hint-baremetal=ahci1,msdos3 1F9948EB30A986A0
else
search --no-floppy --fs-uuid --set=root 1F9948EB30A986A0
fi
chainloader +1
}
สิ่งที่ฉันกำลังมองหาก็คือวิธีการแก้ไขโดยไม่ต้องติดตั้ง Windows ใหม่ หากไม่สามารถทำได้การติดตั้งใหม่เป็นแผน B ที่ยอมรับได้ แต่ฉันสามารถจัดการได้เอง
นี่คือบันทึกของเซสชันพรอมต์คำสั่งของฉันขณะบู๊ตในสภาพแวดล้อมการซ่อมแซมโดยใช้ DVD ติดตั้ง Windows 7 ฉันได้ลบบรรทัดว่างเปล่าบางส่วนเพื่อให้สามารถอ่านได้ ต่อไปนี้คือการยกเลิกการเชื่อมต่อไดรฟ์อื่น ๆ ทั้งหมด:
>bootrec /fixmbr
The operation completed successfully,
>bootrec /fixboot
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.
>bootrec /scanos
Scanning all disks for Windows installations.
Please wait, since this may take a while...
Successfully scanned Windows installations.
Total identified Windows installations: 1
[1] C:\Windows
The operation completed successfully.
>bootrec /rebuildbcd
Scanning all disks for Windows installations.
Please wait, since this may take a while...
Successfully scanned Windows installations.
Total identified Windows installations: 1
[1] C:\Windows
Add installation to boot list? Yes(Y)/No(N)/All(A):y
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.
>sfc /verifyonly /offwindir=C:\Windows /offbootdir=C:\
Beginning system scan. This process will take some time.
Windows Resource Protection did not find any integrity violations.
>chkdsk C: /F
The type of the file system is NTFS.
Volume label is windows.
CHKDSK is verifying files (stage 1 of 3)...
313344 file records processed.
File verification completed.
1684 large file records processed.
0 bad file records processed.
2 EA records processed.
158 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
416370 index entries processed.
Index verification completed.
0 unindexed files scanned.
0 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
313344 file SDs/SIDs processed.
Security descriptor verification completed.
51514 data files processed.
CHKDSK is verifying Usn journal...
35406088 USN bytes processed.
Usn Journal verification completed.
Windows has checked the file system and found no problems.
207510871 KB total disk space.
104134880 KB in 251224 files.
137304 KB in 51514 indexes.
0 KB in bad sectors.
423075 KB in use by the system.
65536 KB occupied by the log file.
102815612 KB available on disk.
4096 bytes in each allocation unit.
51877717 total allocation units on disk.
25703903 allocation units available on disk.
Failed to transfer logged messages to the event log with status 50.
>diskpart
Microsoft DiskPart version 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: MININT-P92LVUL
DISKPART>list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 596 GB 0 B
DISKPART>select disk 0
Disk 0 is now the selected disk.
DISKPART>list part
Partition ### Type Size Offset
------------- ---------------- ------- -------
Partition 1 Primary 62 MB 31 KB
Partition 2 Primary 398 GB 62 MB
Partition 3 Primary 197 GB 398 GB
เมื่อฉันเรียกใช้คำสั่งเดียวกันกับไดรฟ์ทั้งหมดที่เชื่อมต่อผลลัพธ์จะเหมือนกันยกเว้นว่าdiskpart
แสดงไดรฟ์ทั้งหมดอย่างถูกต้องและอักษรชื่อไดรฟ์สำหรับพาร์ติชัน Windows ที่เป็นปัญหานั้นD
แทนC
(เพราะฉันมีพาร์ติชันข้อมูล NTFS บนไดรฟ์ # 1 )
ฉันจะทราบว่าbootrec /fixmbr
เขียนทับ MBR ของไดรฟ์ # 2 แทนที่ MBR โดย GRUB2 เมื่อฉันลองบูตจากดิสก์นั้นฉันก็จะได้รับข้อความ "ระบบปฏิบัติการที่หายไป" แทนที่จะเป็นข้อผิดพลาด 0xc0000225 ฉันสามารถบูตเข้าสู่ Linux และใช้grub-install
เพื่อเรียกคืน GRUB2 MBR แล้วเลือกตัวเลือก Windows ใน GRUB2 ให้ 0xc0000225 อีกครั้ง