Tive a infelicidade de precisar clonar uma caixa com Windows XP / 7 de inicialização dupla para substituir seu disco rígido por um menor. Tive muitos problemas para inicializá-lo e gostaria de entender o que está acontecendo e se eu poderia estar fazendo algo melhor.
Antecedentes: a máquina possui uma unidade de 750Gb com 3 partições:
- Windows XP
- Windows 7
- Dados
A instalação original foi feita de tal maneira que não há partição de recuperação separada do Windows 7. Espero que esse fato simplifique um pouco as coisas.
Estou substituindo-o por uma unidade de 80Gb. As partições já foram reduzidas no Windows 7 para caber no disco menor.
Eu usei GParted
(de um PartedMagic
Linux LiveCD) para copiar as partições. Marquei a partição do Windows XP como a partição ativa (a mesma do disco original).
Não consegui usar CloneZilla
ou fazer uma cópia inteira do disco devido à transição de um disco maior para um menor.
Depois de copiar as partições, copiei manualmente o carregador de inicialização (tomando cuidado para não copiar a tabela de partições):
$ dd if=/dev/sda of=/dev/sdb bs=446 count=1
Removai o disco original, coloquei o novo para que ele esteja fisicamente conectado da mesma forma que o original (mestre do canal IDE 1) e tentei inicializar. Isso apresentou o menu de inicialização com êxito, mas falhou ao selecionar uma das opções (existem duas: uma para XP e outra para Win7).
Eu fiz uma boa pesquisa que me permitiu perceber que os dados de configuração de inicialização do Windows 7 não continham tudo o que deveriam. Eu comparei a saída BCD dos discos originais e novos e observei que as entradas do dispositivo no último eram unknown
. Então, eu as alterei manualmente para corresponder ao original - assim:
$ bcdedit /set {ntldr} device partition=C:
$ bcdedit /set {default} device partition=D:
$ bcdedit /set {default} osdevice partition=D:
e reiniciado. Desta vez, eu poderia inicializar o XP e o Win7. Preciso fazer mais testes porque parece haver outras diferenças entre os dois BCDs, mas fazer as alterações acima pelo menos permitiu que a inicialização acontecesse.
Portanto, minha pergunta é realmente perguntar por que o BCD em uma partição clonada pareceria diferente do original e suficientemente para impedir a inicialização?
E um acompanhamento para isso seria perguntar se eu deveria fazer isso de outra maneira?
bcdboot
fornece uma maneira mais fácil de recriar uma entrada de inicialização, mas não tenho certeza de que seria adequado em um cenário de inicialização dupla do XP / W7.De acordo com esta documentação não oficial sobre componentes internos do BCD , as partições no repositório do BCD são realmente identificadas pela assinatura do disco e pelo deslocamento da partição. Você copiou a assinatura do disco (bytes MBR 440 a 443), mas provavelmente alterou os desvios de partição ao colocar partições em um disco menor, portanto, o BOOTMGR não conseguiu mais encontrar essas partições.
fonte
bcdedit
). Eu sou a favor do Visual BCD Editor. Se você pode entrar em um ambiente Windows, o Visual BCD facilita bastante a configuração do dispositivo de inicialização. Você pode fazer o mesmo no DVD de inicialização, abrindo o prompt de comando (acho que era o F11 ou algo assim) e usandobcdedit
lá. Eu recomendaria contra o reparo do sistema se você quiser corrigi-lo manualmente, já que o reparo do sistema remove o ambiente de recuperação em disco antes.