Czy mogę naprawić błąd 0xc0000225 bez ponownej instalacji systemu Windows?

16

Mam system, który podwójnie uruchamia Gentoo Linux i Windows 7 za pomocą GRUB2. Komputer ma cztery dyski, a system Windows jest zainstalowany na trzeciej (ostatniej) partycji dysku nr 2. Układ dysku wygląda następująco:

|boot|-----------------home-----------------|-------------windows-------------|

( booti homesą partycjami Linuksa) To dziwna konfiguracja, ale zawsze działała, dopóki nie zdecydowałem się zmniejszyć partycji Windows za pomocą Gparted. Nowy układ to:

|boot|-----------------------home-----------------------|-------windows-------|

Po dokonaniu tych zmian partycji, kiedy wybiorę opcję Windows w GRUB2 i przekaże on kontrolę bootloaderowi Windows, pojawia się komunikat o błędzie:

Menedżer rozruchu  

systemu Windows Uruchomienie systemu Windows nie powiodło się. Przyczyną może być niedawna zmiana sprzętu lub oprogramowania. Naprawić problem:   1. Włóż dysk instalacyjny systemu Windows i uruchom ponownie komputer.   2. Wybierz ustawienia języka, a następnie kliknij przycisk „Dalej”.   3. Kliknij „napraw komputer”. Jeśli nie masz tego dysku, skontaktuj się z administratorem systemu lub komputerem producent o pomoc.   Status: 0xc0000225   Informacje: Wybór rozruchu nie powiódł się, ponieważ wymagane urządzenie jest niedostępne.

Nie jestem specjalnie zaskoczony, że tak się dzieje, ale zastanawiam się, czy mogę to naprawić bez ponownej instalacji systemu Windows.

Próbowałem uruchomić komputer przy użyciu instalacyjnego dysku DVD systemu Windows (w szczególności dysku DVD z uaktualnieniem systemu Windows 7). Po wybraniu języka i klawiatury i kliknięciu „Napraw ten komputer” ekran Opcje odzyskiwania systemu nie wykrywa mojej partycji Windows . W każdym razie mogę kliknąć przycisk „Dalej”, a następnie użyć narzędzia Naprawa uruchamiania, które nie rozwiązuje problemu , lub wypróbować narzędzia wiersza polecenia, a mianowicie bootrec(sugerowane przez kilka stron internetowych) sfc, i chkdsk. Żaden z nich nie zrobił różnicy; Nadal pojawia się ten sam komunikat o błędzie. (Szczegółowe dane wyjściowe znajdują się poniżej).

Również jak zasugerowano w podobnych pytaniach, próbowałem użyć funkcji „Przebuduj BS” (odbuduj sektor rozruchowy) w TestDisk , działając pod Linuksem, działając na partycji Windows. To również nie zmieniło błędu, który otrzymuję.

Nie widziałem żadnych oznak uszkodzenia danych na żadnej z partycji, a dyski nie doznały żadnych fizycznych uszkodzeń, więc wydaje się dość pewne, że zmiana układu partycji jest przyczyną tego błędu. Podejrzewam, że Windows musi mieć sektor początkowy i / lub rozmiar partycji zapisany gdzieś w swoim systemie plików (rejestrze?), Co sugeruje, że w zasadzie powinno być możliwe naprawienie tego poprzez przekręcenie gdzieś kilku bajtów w pliku. Ale który plik? A może jest coś bardziej skomplikowanego?

Jeśli to pomaga, oto sekcja konfiguracji GRUB2 odpowiadająca systemowi 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
}

Znowu to, czego szukam, to idealnie sposób na rozwiązanie tego problemu bez ponownej instalacji systemu Windows. Jeśli nie jest to możliwe, ponowna instalacja jest akceptowalnym planem B, ale sam sobie z tym poradzę.


Oto transkrypcja moich sesji wiersza polecenia podczas uruchamiania w środowisku naprawy za pomocą instalacyjnego dysku DVD z systemem Windows 7. Usunąłem kilka pustych linii dla czytelności. Poniżej przedstawiono wszystkie odłączone dyski :

>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

Gdy uruchamiam te same polecenia przy podłączonych wszystkich dyskach, dane wyjściowe są takie same, z wyjątkiem tego, że diskpartpoprawnie pokazują wszystkie dyski, a litera dysku dla danej partycji Windows jest Dzamiast C(ponieważ mam partycję danych NTFS na dysku nr 1 ).

Chciałbym zauważyć, że bootrec /fixmbrnadpisuje MBR dysku nr 2, zastępując MBR umieszczony tam przez GRUB2. Kiedy próbuję uruchomić komputer z tego dysku, po prostu pojawia się komunikat „Brak systemu operacyjnego” zamiast błędu 0xc0000225. Następnie mogę uruchomić system Linux i użyć grub-installdo przywrócenia MBR GRUB2, a następnie wybranie opcji Windows w GRUB2 daje 0xc0000225 ponownie.

David Z
źródło
Klonowanie systemu Windows często wymaga manipulacji partycjami, przerywając proces uruchamiania systemu Windows - system Windows nie uruchamia się, jeśli partycja znajduje się w innej pozycji na dysku niż podczas instalacji. Byłoby miło skorzystać z twoich ustaleń :)
Basilevs
@ ali786 cóż, wolę ponownie zainstalować system Windows niż wydać 20 USD na narzędzie do rozwiązania problemu. Ale w przeciwnym razie byłaby to opcja. (Już jednak patrzyłem na tę stronę internetową, przygotowując to pytanie).
David Z
Co powiesz na użycie dysku instalacyjnego i kliknięcie opcji Uaktualnij teraz zamiast czystej instalacji? To ponowna instalacja, ale zachowujesz swoje pliki.
Rsya Studios,
1
@RsyaStudios Graficzny instalator nie wykrywa mojej istniejącej instalacji Windows, więc nie sądzę, żebym mógł to zrobić.
David Z

Odpowiedzi:

11

W zależności od zastosowanej metody niektóre rzeczy mogą się zmieniać w trakcie:

Szczegóły partycji : Użyj activew diskpart, aby ponownie aktywować partycję.

Sektor rozruchowy : Za pomocą narzędzia bootsect można przywrócić sektor rozruchowy. (np. bootsect /nt60 C:)

Identyfikator UUID partycji : Zmieniając pozycję i / lub rozmiar partycji, zmienia się identyfikator UUID; dlatego niedostępny UUID przechowywany w BCD jest niezgodny z UUID partycji. Aby to naprawić, usuń i przebuduj BCD w następujący sposób:

bcdedit /export C:\boot\bcd.backup
ren C:\boot\bcd C:\boot\bcd.old
bootrec /rebuildbcd
Tamara Wijsman
źródło
Okazało się, że jest to właściwy problem (i rozwiązanie), ale twoja wskazówka dotycząca ustawienia partycji activebyła prawdziwym kluczem. Musiałem uaktywnić partycję, bootrecaby wiedział, gdzie napisać przebudowany BCD. Być może mógłbyś dodać to do odpowiedzi? (Jak się bootsectokazało, nie musiałem używać .)
David Z
Zaktualizowałem odpowiedź, umieszczając mój komentarz; tak, szczegóły partycji były tutaj brakującym elementem.
Tamara Wijsman
„ren C: \ boot \ bcd C: \ boot \ bcd.old” dał mi błąd. Powinno być „ren C: \ boot \ bcd bcd.old”
user4035
3

Przyczyną problemu mógł być zbyt duży spadek partycji Windows.

System Windows zawiera niektóre nieprzenośne pliki, które może zostać przeniesiony przez produkt innej firmy. W przyszłości powinieneś użyć Menedżera dysków systemu Windows, aby zmienić rozmiar jego partycji, ponieważ nie spowoduje to uszkodzenia dysku. Dobrym pomysłem jest również wyłączenie i opróżnienie Kosza, wyłączenie pliku stronicowania oraz hibernacji, aby zminimalizować liczbę specjalnych plików systemu Windows, a także uruchomić defragmentator, który kompaktuje wszystkie pliki na początku dysk.

To powiedziawszy, możesz zrobić Napraw instalację, aby naprawić system Windows 7 . Ta łagodna forma instalacji naprawi aktualnie zainstalowany system Windows 7 i zachowa konta użytkowników, dane, programy i sterowniki systemowe. Połączony artykuł szczegółowo opisuje ten proces za pomocą zrzutów ekranu. Być może będziesz musiał poradzić sobie z pewnym zniszczeniem sektora rozruchowego GRUB2.

Jeśli instalacja naprawcza nie działa, Gparted zniszczył twoją partycję Windows. Mam nadzieję, że masz kopię zapasową w tym przypadku, ponieważ w przeciwnym razie może być konieczne skorzystanie z narzędzi do odzyskiwania danych .

harrymc
źródło
Ach, cóż, to było zamierzone. Próbowałem najpierw użyć systemu Windows do zmiany rozmiaru partycji, po opróżnieniu Kosza i defragmentacji (zapomniałem o wyłączeniu specjalnych plików), ale nie było w stanie zmniejszyć rozmiaru partycji tak bardzo, jak potrzebowałem. Spróbuję zainstalować instalację naprawczą i zobaczę, czy działa. Jeśli nie, to mogę zamontować partycję Windows z Linuksa i skopiować przydatne pliki na inną partycję, więc nie będę musiał uciekać się do odzyskiwania danych.
David Z
Patrząc na to teraz, widzę, że instalację naprawczą można wykonać tylko z poziomu systemu Windows, więc to mi nie pomaga.
David Z
Możesz to zrobić za pomocą dysku DVD / USB z systemem Windows 7 SP1. Szczegóły w powyższym artykule.
harrymc
1
Nie mogę Artykuł jednoznacznie mówi (wiele razy), że musisz mieć już zainstalowany system Windows, aby wykonać instalację naprawczą; poza tym próbowałem i nie pozwala mi użyć opcji Upgrade podczas uruchamiania z dysku DVD.
David Z
Czy Linux zdoła zamontować dysk i czy widzisz system plików, a zwłaszcza wiercisz folder Windows, a nawet kopiujesz z niego pliki? Czy możesz uruchomić Windows DVD do DOS i zobaczyć dysk? Spróbuj także odłączyć wszelkie możliwe urządzenia od komputera.
harrymc
1

Miałem podobny problem (ten sam kod błędu 0xc0000225) na moim komputerze podczas próby uaktualnienia do systemu Windows 10

Problem pochodzi z pustej partycji EFI, która wciąż pozostaje na jednym z moich dysków. Podczas rozruchu komputer znajduje 2 partycje EFI: jedną z mojego głównego systemu operacyjnego, a drugą odpowiadającą staremu systemowi, który odinstalowałem kilka miesięcy temu (przeniosłem się z pierwszego dysku twardego na dysk SSD i sformatowałem wszystko)

Może to także twój problem. Mam dla ciebie 2 rozwiązania, mam nadzieję, że to zadziała:

  • Na panelu sterowania zarządzaj komputerem, znajdź niepotrzebną partycję EFI i usuń ją
  • Uruchom komputer z obsługą instalacji systemu Windows (możesz to zrobić, pobierając kreatora z witryny Microsoft), uruchom program instalacyjny, ustawienia zaawansowane, a gdy wyświetli się wszystkie woluminy, znajdź partycję EFI i usuń ją

Ponownie zainstalowałem system Windows, ale jeśli usuniesz złą partycję EFI, wystarczy

Od tego czasu nie ma już problemu z uruchomieniem, mój komputer może zainstalować W10 itp.

Przepraszam, jeśli nie podam ci dokładnych nazw rzeczy, które musisz kliknąć, mój system operacyjny jest w języku francuskim ^^

Ziiik
źródło
-1

Dodając tutaj odpowiedź, ponieważ jest to strona, która pokazała mi się i odpowiedź, której potrzebowałem:

0xc0000225 może być również spowodowane wyłączeniem obsługi ACPI APIC w BIOS-ie (zgodnie z opisem w tym BIOS-ie). Wyłączyłem go podczas rozwiązywania problemów z zawieszaniem w Ubuntu, ale w tym przypadku system Windows wymaga włączenia.

Spowodowało to również, że instalacja CD / USB, odzyskiwanie zakończyło się niepowodzeniem z tym samym błędem, więc nic nie można było zrobić z systemem Windows, dopóki nie zostanie włączony.

0xc0000225 wydarzyło się podczas aktualizacji Windows 10 Creators, ale nie uruchamiało się ponownie do systemu Windows, dopóki nie wyłączyło ustawień w BIOS-ie, więc wyglądało na to, że było to spowodowane aktualizacją, ale tak naprawdę nie było! Zdradliwy!

CmosBattery
źródło