Ho un sistema che avvia dual Gentoo Linux e Windows 7 usando GRUB2. Il computer ha quattro unità e Windows è installato sulla terza (ultima) partizione dell'unità n. 2. Il layout dell'unità è simile al seguente:
|boot|-----------------home-----------------|-------------windows-------------|
( boot
e home
sono partizioni Linux) È una configurazione strana ma ha sempre funzionato, fino a quando non ho deciso di ridurre la partizione di Windows usando Gparted. Il nuovo layout è:
|boot|-----------------------home-----------------------|-------windows-------|
Dopo aver apportato queste modifiche alla partizione, quando seleziono l'opzione Windows in GRUB2 e passa il controllo al bootloader di Windows, ricevo il messaggio di errore:
Windows Boot Manager
Impossibile avviare Windows. Una recente modifica hardware o software potrebbe essere la causa. Per fissare il problema: 1. Inserisci il disco di installazione di Windows e riavvia il computer. 2. Scegli le impostazioni della lingua, quindi fai clic su "Avanti". 3. Fai clic su "ripara il computer". Se non si dispone di questo disco, contattare l'amministratore di sistema o il computer produttore per assistenza. Stato: 0xc0000225 Informazioni: la selezione di avvio non è riuscita perché un dispositivo richiesto è inaccessibile.
Non sono particolarmente sorpreso che ciò accada, ma mi chiedo se posso risolvere questo problema senza reinstallare Windows.
Ho provato ad avviare il computer utilizzando il DVD di installazione di Windows (in particolare, un DVD di aggiornamento di Windows 7). Dopo aver scelto la lingua e la tastiera e aver fatto clic su "Ripara questo computer", la schermata Opzioni di ripristino del sistema non rileva la mia partizione di Windows . Posso comunque fare clic su "Avanti" e quindi utilizzare Ripristino all'avvio, che non riesce a risolvere il problema , oppure provare gli strumenti da riga di comando, vale a dire bootrec
(suggeriti da diversi siti Web) sfc
, e chkdsk
. Nessuno di loro ha fatto la differenza; Ricevo ancora lo stesso messaggio di errore. (Vedi sotto per l'output dettagliato.)
Inoltre, come suggerito in domande simili, ho provato a utilizzare la funzionalità "Ricostruisci BS" (ricostruisci settore di avvio) in TestDisk , in esecuzione su Linux, agendo sulla partizione di Windows. Anche questo non ha cambiato l'errore che ricevo.
Non ho visto alcun segno di corruzione dei dati su entrambe le partizioni e le unità non hanno subito danni fisici, quindi sembra abbastanza certo che la modifica del layout delle partizioni sia la causa di questo errore. Suppongo che Windows debba avere il settore iniziale e / o la dimensione della partizione memorizzata da qualche parte all'interno del suo filesystem (il registro?), Suggerendo che in linea di principio dovrebbe essere possibile risolvere questo problema twiddling un paio di byte in un file da qualche parte. Ma quale file? O c'è qualcosa di più complicato?
Se aiuta, ecco la sezione di configurazione di GRUB2 corrispondente a 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
}
Ancora una volta, quello che sto cercando è, idealmente, un modo per risolvere questo problema senza reinstallare Windows. Se ciò non è possibile, la reinstallazione è un piano B accettabile, ma posso gestirlo da solo.
Ecco una trascrizione delle sessioni del mio prompt dei comandi durante l'avvio nell'ambiente di riparazione utilizzando il DVD di installazione di Windows 7. Ho rimosso alcune righe vuote per la leggibilità. Quanto segue è con tutte le altre unità disconnesse :
>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
Quando eseguo gli stessi comandi con tutte le unità collegate, l'output è lo stesso, tranne per il fatto che diskpart
mostra correttamente tutte le unità e la lettera di unità per la partizione di Windows in questione è D
invece di C
(perché ho una partizione di dati NTFS sull'unità n. 1 ).
Vorrei sottolineare che bootrec /fixmbr
sovrascrive l'MBR dell'unità n. 2, sostituendo l'MBR inserito da GRUB2. Quando provo quindi ad avviare da quel disco, ricevo semplicemente il messaggio "Sistema operativo mancante" invece dell'errore 0xc0000225. Posso quindi avviare Linux e utilizzare grub-install
per ripristinare l'MBR di GRUB2, quindi scegliere l'opzione Windows in GRUB2 restituisce nuovamente 0xc0000225.