Tôi có một hệ thống khởi động kép Gentoo Linux và Windows 7 bằng GRUB2. Máy tính có bốn ổ đĩa và Windows được cài đặt trên phân vùng thứ ba (cuối cùng) của ổ đĩa số 2. Bố trí ổ đĩa trông như thế này:
|boot|-----------------home-----------------|-------------windows-------------|
( boot
và home
là các phân vùng Linux) Đó là một thiết lập kỳ lạ nhưng nó luôn hoạt động, cho đến khi tôi quyết định thu nhỏ phân vùng Windows bằng Gparted. Bố cục mới là:
|boot|-----------------------home-----------------------|-------windows-------|
Sau khi thực hiện các thay đổi phân vùng này, khi tôi chọn tùy chọn Windows trong GRUB2 và nó trao quyền kiểm soát cho bộ tải khởi động Windows, tôi nhận được thông báo lỗi:
Trình quản lý khởi động
Windows Windows không khởi động được. Một sự thay đổi phần cứng hoặc phần mềm gần đây có thể là nguyên nhân. Để khắc phục sự cố: 1. Đưa đĩa cài đặt Windows của bạn và khởi động lại máy tính của bạn. 2. Chọn cài đặt ngôn ngữ của bạn, rồi bấm "Tiếp theo". 3. Nhấp vào "sửa chữa máy tính của bạn." Nếu bạn không có đĩa này, hãy liên hệ với quản trị viên hệ thống hoặc máy tính của bạn nhà sản xuất để được hỗ trợ. Trạng thái: 0xc0000225 Thông tin: Lựa chọn khởi động không thành công vì không thể truy cập thiết bị.
Tôi không đặc biệt ngạc nhiên khi điều này xảy ra, nhưng tôi tự hỏi liệu tôi có thể sửa nó mà không cần cài đặt lại Windows không.
Tôi đã thử khởi động máy tính bằng DVD cài đặt Windows (cụ thể là DVD nâng cấp Windows 7). Sau khi tôi chọn ngôn ngữ và bàn phím và nhấp vào "Sửa chữa máy tính này", màn hình Tùy chọn khôi phục hệ thống sẽ không phát hiện phân vùng Windows của tôi . Tôi vẫn có thể nhấp vào "Tiếp theo" và sau đó sử dụng Startup Repair, không khắc phục được sự cố hoặc thử các công cụ dòng lệnh, cụ thể là bootrec
(được đề xuất bởi một số trang web) sfc
, và chkdsk
. Không ai trong số họ tạo ra sự khác biệt; Tôi vẫn nhận được thông báo lỗi tương tự. (Xem bên dưới để biết chi tiết đầu ra.)
Cũng như được đề xuất trong các câu hỏi tương tự, tôi đã thử sử dụng chức năng "Rebuild BS" (xây dựng lại khu vực khởi động) trong TestDisk , chạy trên Linux, hoạt động trên phân vùng Windows. Điều đó cũng không thay đổi lỗi tôi nhận được.
Tôi chưa thấy bất kỳ dấu hiệu hỏng dữ liệu nào trên cả hai phân vùng và các ổ đĩa không chịu bất kỳ thiệt hại vật lý nào, vì vậy có vẻ khá chắc chắn rằng sự thay đổi trong cách bố trí phân vùng là nguyên nhân gây ra lỗi này. Tôi cho rằng Windows phải có khu vực bắt đầu và / hoặc kích thước phân vùng được lưu trữ ở đâu đó trong hệ thống tệp của nó (sổ đăng ký?), Đề xuất rằng về nguyên tắc có thể khắc phục điều này bằng cách vặn một vài byte trong một tệp ở đâu đó. Nhưng tập nào? Hoặc có một cái gì đó phức tạp hơn?
Nếu có, đây là phần cấu hình GRUB2 tương ứng với 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
}
Một lần nữa, điều tôi đang tìm kiếm là, lý tưởng nhất, một cách để khắc phục điều này mà không cần cài đặt lại Windows. Nếu điều đó là không thể, thì cài đặt lại là kế hoạch B chấp nhận được, nhưng tôi có thể tự mình xử lý.
Đây là bản ghi các phiên nhắc lệnh của tôi trong khi khởi động vào môi trường sửa chữa bằng DVD cài đặt Windows 7. Tôi đã xóa một số dòng trống để dễ đọc. Sau đây là với tất cả các ổ đĩa khác bị ngắt kết nối :
>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
Khi tôi chạy các lệnh giống nhau với tất cả các ổ đĩa được kết nối, đầu ra là như nhau, ngoại trừ việc diskpart
hiển thị chính xác tất cả các ổ đĩa và ký tự ổ đĩa cho phân vùng Windows được đề cập là D
thay vì C
(vì tôi có phân vùng dữ liệu NTFS trên ổ đĩa # 1 ).
Tôi sẽ lưu ý rằng bootrec /fixmbr
ghi đè MBR của ổ đĩa số 2, thay thế MBR được đặt ở đó bằng GRUB2. Khi tôi cố gắng khởi động từ đĩa đó, tôi chỉ nhận được thông báo "Thiếu hệ điều hành" thay vì lỗi 0xc0000225. Sau đó tôi có thể khởi động vào Linux và sử dụng grub-install
để đặt lại GRUB2 MBR, sau đó chọn tùy chọn Windows trong GRUB2 cung cấp lại 0xc0000225.