Tôi có thể sửa lỗi 0xc0000225 mà không cần cài đặt lại Windows không?


16

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-------------|

( boothomelà 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 diskparthiể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à Dthay 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 /fixmbrghi đè 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.


Nhân bản Windows thường yêu cầu các thao tác phân vùng phá vỡ quá trình khởi động của Windows - windows sẽ không khởi động nếu phân vùng nằm ở vị trí khác trên đĩa so với khi cài đặt. Sẽ rất tuyệt nếu sử dụng kết quả của bạn :)
Basilevs


@ ali786, tôi muốn cài đặt lại Windows hơn là chi $ 20 cho một công cụ để khắc phục sự cố. Nhưng nếu không đó sẽ là một lựa chọn. (Tuy nhiên, tôi đã xem trang web đó trong khi chuẩn bị câu hỏi này.)
David Z

Làm thế nào về việc sử dụng đĩa cài đặt của bạn và nhấp vào Nâng cấp ngay bây giờ thay vì thực hiện cài đặt sạch? Đó là một loại cài đặt lại nhưng bạn giữ các tập tin của bạn.
Phim trường Rupya

1
@RsyaStudios Trình cài đặt đồ họa không phát hiện cài đặt Windows hiện tại của tôi, vì vậy tôi không nghĩ mình có thể làm điều đó.
David Z

Câu trả lời:


11

Tùy thuộc vào phương pháp được sử dụng, một số điều có thể thay đổi trong tiến trình:

Các chi tiết phân vùng : Sử dụng activetrong đĩa để tạo phân vùng kích hoạt lại.

Boot sector : Các bootsect công cụ có thể được sử dụng để khôi phục boot sector. (ví dụ. bootsect /nt60 C:)

UUID phân vùng : Bằng cách thay đổi vị trí và / hoặc kích thước phân vùng, UUID thay đổi; do đó, UUID không thể truy cập được lưu trữ trong BCD không khớp với UUID của phân vùng của bạn. Để khắc phục điều này, hãy xóa và xây dựng lại BCD như thế này:

bcdedit /export C:\boot\bcd.backup
ren C:\boot\bcd C:\boot\bcd.old
bootrec /rebuildbcd

Đây hóa ra là vấn đề đúng (và giải pháp), nhưng mẹo của bạn về việc đặt phân vùng thành activekhóa thực sự. Tôi cần phải làm cho phân vùng hoạt động để có bootrecthể biết BCD được xây dựng lại ở đâu. Có lẽ bạn có thể thêm nó vào câu trả lời? (Tôi không phải sử dụng bootsect, vì nó bật ra.)
David Z

Cập nhật câu trả lời bằng cách nhúng bình luận của tôi; vâng, các chi tiết của phân vùng là phần còn thiếu ở đây.
Tamara Wijsman

"ren C: \ boot \ bcd C: \ boot \ bcd.old" đã gây ra lỗi cho tôi. Phải là "ren C: \ boot \ bcd bcd.old"
user4035

3

Bạn có thể đã gây ra sự cố bằng cách giảm phân vùng Windows quá nhiều.

Windows có một số tệp không thể di chuyển mà sản phẩm của bên thứ ba có thể quyết định di chuyển. Trong tương lai, bạn nên sử dụng Trình quản lý đĩa Windows để thay đổi kích thước các phân vùng của nó, vì nó sẽ không phá vỡ đĩa. Trước tiên, bạn cũng nên tắt và dọn sạch Thùng rác, vô hiệu hóa tệp Paging cũng như ngủ đông, để giảm thiểu số lượng tệp Windows đặc biệt và cũng chạy trình chống phân mảnh có tác dụng nén tất cả các tệp vào đầu đĩa.

Điều đó nói rằng, bạn có thể thực hiện Sửa chữa cài đặt để sửa chữa Windows 7 . Hình thức cài đặt nhẹ này sẽ khắc phục Windows 7 hiện đang cài đặt của bạn và bảo vệ tài khoản người dùng, dữ liệu, chương trình và trình điều khiển hệ thống của bạn. Bài viết được liên kết mô tả quá trình chi tiết với ảnh chụp màn hình. Sau đó, bạn có thể phải đối phó với một số sự phá hủy đối với khu vực khởi động GRUB2.

Nếu Repair Install không hoạt động, thì Gparted đã phá hủy phân vùng Windows của bạn. Tôi hy vọng bạn có bản sao lưu trong trường hợp này, vì nếu không, bạn có thể phải dùng đến Tiện ích phục hồi dữ liệu .


Ah, đó là cố ý. Tôi đã thử sử dụng Windows để thay đổi kích thước phân vùng trước, sau khi làm trống Thùng rác và chống phân mảnh (quên về việc vô hiệu hóa các tệp đặc biệt), nhưng nó không thể giảm kích thước phân vùng nhiều như tôi cần. Tôi sẽ thử cài đặt sửa chữa và xem nếu nó hoạt động. Nếu không, sau đó tôi có thể gắn phân vùng Windows từ Linux và sao chép bất kỳ tệp hữu ích nào sang phân vùng khác, vì vậy tôi sẽ không phải dùng đến phục hồi dữ liệu.
David Z

Nhìn vào nó bây giờ, tôi thấy rằng việc cài đặt sửa chữa chỉ có thể được thực hiện từ bên trong Windows, vì vậy điều đó không giúp tôi.
David Z

Bạn có thể làm điều đó bằng cách sử dụng DVD / USB Windows 7 SP1. Chi tiết trong bài viết trên.
harrymc

1
Không, tôi không thể. Bài báo nói rõ ràng (nhiều lần) rằng bạn cần phải chạy Windows để thực hiện cài đặt sửa chữa; ngoài ra, tôi đã thử nó và nó sẽ không cho phép tôi sử dụng tùy chọn Nâng cấp khi khởi động từ DVD.
David Z

Linux có quản lý để gắn đĩa không, và bạn có thể thấy hệ thống tệp và đặc biệt là truy sâu vào thư mục Windows và thậm chí sao chép các tệp ra khỏi nó không? Bạn có thể khởi động Windows DVD vào DOS và xem đĩa không? Cũng cố gắng ngắt kết nối mọi thiết bị có thể khỏi máy tính.
harrymc

1

Tôi gặp vấn đề tương tự (cùng mã lỗi 0xc0000225) trên máy tính của mình trong khi tôi cố gắng nâng cấp lên Windows 10

Vấn đề đến từ một phân vùng EFI trống vẫn còn trên một trong các ổ đĩa của tôi. Khi khởi động, máy tính tìm thấy 2 phân vùng EFI: một từ hệ điều hành chính của tôi và một phân vùng khác tương ứng với một hệ điều hành cũ tôi đã gỡ cài đặt vài tháng trước (tôi đã chuyển từ ổ cứng đầu tiên sang SSD và định dạng mọi thứ)

Có lẽ đó cũng là vấn đề của bạn. Tôi có 2 giải pháp cho bạn, hy vọng nó hoạt động:

  • Trên bảng điều khiển của bạn, quản lý máy tính của bạn, tìm phân vùng EFI vô dụng và xóa nó
  • Chạy máy tính của bạn với hỗ trợ cài đặt Windows (bạn có thể tạo một máy bằng cách tải xuống trình hướng dẫn trên trang web microsoft), chạy chương trình cài đặt, cài đặt nâng cao và khi nó hiển thị cho bạn tất cả các ổ đĩa, hãy tìm phân vùng EFI và xóa nó

Tôi cũng đã cài đặt lại Windows nhưng nếu bạn xóa phân vùng EFI xấu thì sẽ đủ

Kể từ đó, không còn vấn đề gì khi khởi động, máy tính của tôi có thể cài đặt W10, v.v ...

Xin lỗi nếu tôi không cung cấp cho bạn tên chính xác của những thứ bạn phải nhấp vào, hệ điều hành của tôi bằng tiếng Pháp ^^


-1

Thêm câu trả lời ở đây vì đây là trang hiển thị cho tôi và câu trả lời tôi cần:

0xc0000225 cũng có thể được gây ra bằng cách vô hiệu hóa hỗ trợ ACPI APIC trong BIOS (như được dán nhãn trong BIOS này). Tôi đã vô hiệu hóa nó trong khi sửa các vấn đề đình chỉ trong Ubuntu, nhưng Windows trong trường hợp này yêu cầu nó phải được kích hoạt.

Điều này cũng khiến thiết lập cd / usb, recovery không thành công với cùng một lỗi nên không thể làm gì với Windows cho đến khi nó được kích hoạt.

0xc0000225 đã xảy ra trong quá trình cập nhật Windows 10 Creators, nhưng không khởi động lại vào Windows cho đến khi đã tắt cài đặt trong BIOS để có vẻ như nó được tạo ra từ bản cập nhật nhưng thực tế không phải vậy! Khó khăn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.