Eu tenho um sistema que inicializa o Gentoo Linux e o Windows 7 usando o GRUB2. O computador tem quatro unidades e o Windows está instalado na terceira (última) partição da unidade 2. O layout da unidade é assim:
|boot|-----------------home-----------------|-------------windows-------------|
( boot
e home
são partições Linux) É uma configuração estranha, mas sempre funcionou, até que decidi reduzir a partição do Windows usando o Gparted. O novo layout é:
|boot|-----------------------home-----------------------|-------windows-------|
Depois de fazer essas alterações de partição, quando eu seleciono a opção do Windows no GRUB2 e dou o controle para o bootloader do Windows, recebo a mensagem de erro:
Windows Boot Manager
Windows failed to start. A recent hardware or software change might be the cause.
To fix the problem:
1. Insert your Windows installation disc and restart your computer.
2. Choose your language settings, and then click "Next."
3. Click "repair your computer."
If you don't have this disc, contact your system administrator or computer
manufacturer for assistance.
Status: 0xc0000225
Info: The boot selection failed because a required device is inaccessible.
Não estou particularmente surpreso que isso aconteça, mas estou pensando se posso corrigir isso sem reinstalar o Windows.
Eu tentei inicializar o computador usando o DVD de instalação do Windows (especificamente, um DVD de atualização do Windows 7). Depois que eu escolher o idioma e o teclado e clicar em "Reparar este computador", a tela Opções de Recuperação do Sistema não detectará meu Windows partição . Eu posso clicar em "Avançar" de qualquer maneira e usar o Reparo de Inicialização, que falha em corrigir o problema ou tentar ferramentas de linha de comando, ou seja, bootrec
(sugerido por vários sites), sfc
e chkdsk
. Nenhum deles fez diferença; Eu ainda recebo a mesma mensagem de erro. (Veja abaixo a saída detalhada).
Além disso, como sugerido em perguntas semelhantes, tentei usar a funcionalidade "Rebuild BS" (reconstruir o setor de inicialização) em TestDisk , rodando sob o Linux, agindo na partição do Windows. Isso também não mudou o erro que recebo.
Eu não vi nenhum sinal de corrupção de dados na partição, e as unidades não sofreram nenhum dano físico, então parece bastante certo que a alteração no layout da partição é a causa desse erro. Suponho que o Windows deve ter o setor de inicialização e / ou o tamanho da partição armazenado em algum lugar dentro de seu sistema de arquivos (o registro?), Sugerindo que deveria em princípio ser possível corrigir isso alterando alguns bytes em um arquivo algum lugar. Mas qual arquivo? Ou há algo mais complicado?
Se isso ajudar, aqui está a seção de configuração do GRUB2 correspondente ao 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
}
Mais uma vez, o que estou procurando é, idealmente, uma maneira de corrigir isso sem reinstalar o Windows. Se isso não for possível, a reinstalação é um plano B aceitável, mas eu posso lidar com isso sozinho.
Aqui está uma transcrição das minhas sessões de prompt de comando enquanto inicializado no ambiente de reparo usando o DVD de instalação do Windows 7. Eu removi algumas linhas em branco para facilitar a leitura. O seguinte é com todas as outras unidades desconectadas :
>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 executo os mesmos comandos com todas as unidades conectadas, a saída é a mesma, exceto que diskpart
mostra corretamente todas as unidades e a letra da unidade da partição Windows em questão é D
em vez de C
(porque eu tenho uma partição de dados NTFS na unidade 1).
Eu observaria que bootrec /fixmbr
sobrescreve o MBR da unidade 2, substituindo o MBR colocado lá pelo GRUB2. Quando eu tento inicializar a partir desse disco, simplesmente recebo a mensagem "Sistema operacional ausente" em vez do erro 0xc0000225. Em seguida, posso inicializar no Linux e usar grub-install
para recuperar o MBR do GRUB2 e, em seguida, escolher a opção do Windows no GRUB2 retorna 0xc0000225.