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-------------|
( boot
i home
są 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 diskpart
poprawnie pokazują wszystkie dyski, a litera dysku dla danej partycji Windows jest D
zamiast C
(ponieważ mam partycję danych NTFS na dysku nr 1 ).
Chciałbym zauważyć, że bootrec /fixmbr
nadpisuje 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-install
do przywrócenia MBR GRUB2, a następnie wybranie opcji Windows w GRUB2 daje 0xc0000225 ponownie.