Posso corrigir o erro 0xc0000225 sem reinstalar o Windows?

16

Eu tenho um sistema que inicializa o Gentoo Linux e Windows 7 usando o GRUB2. O computador possui quatro unidades e o Windows está instalado na terceira (última) partição da unidade 2. O layout da unidade fica assim:

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

( boote homesão partições Linux) É uma configuração estranha, mas sempre funcionou, até que decidi encolher a partição do Windows usando o Gparted. O novo layout é:

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

Depois de fazer essas alterações na partição, quando seleciono a opção Windows no GRUB2 e ela passa o controle para o carregador de inicialização do Windows, recebo a mensagem de erro:

O Windows Boot Manager  

do Windows não conseguiu iniciar. Uma mudança recente de hardware ou software pode ser a causa. Para consertar o problema:   1. Insira o disco de instalação do Windows e reinicie o computador.   2. Escolha suas configurações de idioma e clique em "Avançar".   3. Clique em "reparar seu computador". Se você não possui este disco, entre em contato com o administrador do sistema ou o computador fabricante para assistência.   Status: 0xc0000225   Informações: a seleção de inicialização falhou porque um dispositivo necessário está inacessível.

Não estou particularmente surpreso que isso aconteça, mas estou me perguntando se posso consertar isso sem reinstalar o Windows.

Tentei inicializar o computador usando o DVD de instalação do Windows (especificamente, um DVD de atualização do Windows 7). Depois de escolher o idioma e o teclado e clicar em "Reparar este computador", a tela Opções de recuperação do sistema não detecta minha partição do Windows . Eu posso clicar em "Avançar" de qualquer maneira e usar o Reparo de Inicialização, que falha ao corrigir o problema , ou tentar ferramentas de linha de comando, a saber bootrec(sugeridas por vários sites) sfc, e chkdsk. Nenhum deles fez diferença; Ainda recebo a mesma mensagem de erro. (Veja abaixo a saída detalhada.)

Também como sugerido em perguntas semelhantes, tentei usar a funcionalidade "Rebuild BS" (setor de inicialização de reconstrução) no TestDisk , em execução no Linux, atuando na partição do Windows. Isso também não mudou o erro que recebo.

Não vi nenhum sinal de corrupção de dados em nenhuma das partições e as unidades não sofreram danos físicos; portanto, parece bastante certo que a alteração no layout da partição é a causa desse erro. Suponho que o Windows deva ter o setor inicial e / ou o tamanho da partição armazenados em algum lugar dentro do sistema de arquivos (o registro?), Sugerindo que, em princípio, seja possível corrigir isso girando alguns bytes em um arquivo em algum lugar. Mas qual arquivo? Ou há algo mais complicado?

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

Novamente, 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 mesmo posso lidar com isso.


Aqui está uma transcrição das minhas sessões de prompt de comando enquanto inicializadas no ambiente de reparo usando o DVD de instalação do Windows 7. Eu removi algumas linhas em branco para facilitar a leitura. A seguir, 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 diskpartmostra todas as unidades corretamente, e a letra da unidade da partição do Windows em questão é Dsubstituída por C(porque eu tenho uma partição de dados NTFS na unidade nº 1 )

Eu observaria que bootrec /fixmbrsobrescreve o MBR da unidade 2, substituindo o MBR colocado pelo GRUB2. Quando tento inicializar a partir desse disco, simplesmente recebo a mensagem "Sistema operacional ausente" em vez do erro 0xc0000225. Posso então inicializar no Linux e usá-lo grub-installpara colocar de volta o MBR do GRUB2 e, em seguida, escolher a opção do Windows no GRUB2 fornece 0xc0000225 novamente.

David Z
fonte
A clonagem do Windows geralmente exige manipulações de partição que interrompem o processo de inicialização do Windows - o Windows não inicializa se a partição estiver localizada em uma posição diferente no disco do que durante a instalação. Seria bom para usar suas descobertas :)
Basilevs
@ ali786 bem, prefiro reinstalar o Windows do que gastar US $ 20 em uma ferramenta para corrigir o problema. Mas, caso contrário, isso seria uma opção. (Eu já olhei para que o site enquanto preparava esta questão, no entanto.)
David Z
Que tal usar o disco de instalação e clicar em Atualizar agora em vez de executar uma instalação limpa? É uma espécie de reinstalação, mas você mantém seus arquivos.
Rsya Studios
1
@RsyaStudios O instalador gráfico não detecta minha instalação existente do Windows, então não acho que posso fazer isso.
David Z

Respostas:

11

Dependendo do método usado, certas coisas podem mudar no andamento:

Os detalhes da partição : Use activeno diskpart para ativar a partição novamente.

O setor de inicialização : A ferramenta bootsect pode ser usada para restaurar o setor de inicialização. (por exemplo bootsect /nt60 C:)

O UUID da partição : alterando a posição e / ou tamanho da partição, o UUID muda; portanto, o UUID inacessível armazenado no BCD não corresponde ao UUID da sua partição. Para corrigir isso, remova e reconstrua o BCD da seguinte maneira:

bcdedit /export C:\boot\bcd.backup
ren C:\boot\bcd C:\boot\bcd.old
bootrec /rebuildbcd
Tamara Wijsman
fonte
Esse acabou sendo o problema (e a solução) certos, mas sua dica sobre como configurar a partição activeera a chave real. Eu precisava ativar a partição para bootrecsaber onde escrever o BCD reconstruído. Talvez você possa adicionar isso à resposta? (Eu não tenho que usar bootsect, como ele saiu.)
David Z
Atualizei a resposta incorporando meu comentário; sim, os detalhes da partição eram a peça que faltava aqui.
Tamara Wijsman
"ren C: \ boot \ bcd C: \ boot \ bcd.old" me deu um erro. Deve ser "ren C: \ boot \ bcd bcd.old"
user4035
3

Você pode ter causado o problema reduzindo muito a partição do Windows.

O Windows possui alguns arquivos imóveis que um produto de terceiros pode decidir mover. No futuro, você deverá usar o Gerenciador de disco do Windows para redimensionar suas partições, pois ele não quebrará o disco. Também é uma boa idéia desligar e esvaziar a Lixeira, desativar o arquivo de paginação e a hibernação, para minimizar o número de arquivos especiais do Windows e também executar um desfragmentador que compacta todos os arquivos no início do disco.

Dito isto, você pode fazer a instalação de reparo para corrigir o Windows 7 . Essa forma moderada de instalação corrigirá o Windows 7 atualmente instalado e preservará suas contas de usuário, dados, programas e drivers do sistema. O artigo vinculado descreve o processo em detalhes com capturas de tela. Você pode ter que lidar posteriormente com alguma destruição no setor de inicialização do GRUB2.

Se a Instalação de reparo não funcionar, o Gparted destruiu sua partição do Windows. Espero que você tenha backup neste caso, caso contrário, talvez seja necessário recorrer aos Utilitários de recuperação de dados .

harrymc
fonte
Ah, bem, isso foi intencional. Tentei usar o Windows para redimensionar a partição primeiro, depois de esvaziar a Lixeira e desfragmentar (embora esqueci de desabilitar arquivos especiais), mas não foi possível reduzir o tamanho da partição tanto quanto eu precisava. Vou tentar a instalação do reparo e ver se funciona. Caso contrário, posso montar a partição do Windows no Linux e copiar qualquer arquivo útil para outra partição, para que não precise recorrer à recuperação de dados.
David Z
Observando agora, vejo que uma instalação de reparo só pode ser feita no Windows, o que não me ajuda.
David Z
Você pode fazer isso usando um DVD / USB do Windows 7 SP1. Detalhes no artigo acima.
precisa saber é o seguinte
1
Não posso. O artigo diz explicitamente (várias vezes) que você já deve estar executando o Windows para executar uma instalação de reparo; além disso, tentei e não me permite usar a opção Atualizar ao inicializar a partir de um DVD.
David Z
O Linux consegue montar o disco e você consegue ver o sistema de arquivos e, principalmente, detalhar a pasta do Windows e até copiar arquivos dele? Você pode inicializar o DVD do Windows no DOS e ver o disco? Tente também desconectar qualquer dispositivo possível do computador.
harrymc 26/09/14
1

Eu tive um problema semelhante (mesmo código de erro 0xc0000225) no meu computador enquanto tentava atualizar para o Windows 10

O problema veio de uma partição EFI vazia que ainda permanece em uma das minhas unidades. Na inicialização, o computador encontra 2 partições EFI: uma no meu sistema operacional principal e outra correspondente a um sistema operacional antigo que eu desinstalei meses atrás (mudei do meu primeiro disco rígido para o SSD e formatei tudo)

Talvez também seja seu problema. Eu tenho 2 soluções para você, espero que funcione:

  • No painel de controle, gerencie seu computador, encontre a partição EFI inútil e exclua-a
  • Execute o seu computador com o suporte de instalação do Windows (você pode fazer um baixando o assistente no site da microsoft), execute o programa de instalação, as configurações avançadas e, quando ele apresentar todos os volumes, encontre a partição EFI e exclua-a

Eu também reinstalei o Windows, mas se você excluir a partição EFI incorreta, será suficiente

Desde então, não há mais problema na inicialização, meu computador pode instalar o W10, etc ...

Desculpe se eu não fornecer os nomes exatos das coisas em que você precisa clicar, meu sistema operacional está em francês ^^

Ziiik
fonte
-1

Adicionando uma resposta aqui, porque esta é a página que foi mostrada para mim e a resposta que eu precisava:

0xc0000225 também pode ser causado pela desativação do suporte ao ACPI APIC no BIOS (conforme rotulado neste BIOS). Eu o desativei enquanto corrigia os problemas de suspensão no Ubuntu, mas o Windows, nesse caso, exige que ele seja ativado.

Isso também causou falha na instalação do CD / USB, recuperação com o mesmo erro, para que nada pudesse ser feito com o Windows até que ele fosse ativado.

0xc0000225 aconteceu durante a atualização do Windows 10 Creators, mas não inicializou novamente no Windows até depois de ter desativado a configuração no BIOS, pelo que parecia ter sido causado pela atualização, mas na verdade não foi! Complicado!

CmosBattery
fonte