Como posso clonar apenas uma partição inicializável do Windows (não o disco) em um arquivo?

2

Eu tenho um disco rígido que é 1 Tb em tamanho. Eu criei e instalei windows Xp em uma partição de tamanho 10 Gb . Eu quero clonar a partição para um arquivo em outro disco, de modo que eu possa dd o arquivo para qualquer novo disco, resultando que seja um clone exatamente igual da partição 10 Gb .

OBSERVAÇÃO Eu não quero clonar todo o disco 1Tb em um arquivo, mas apenas a partição 10Gb inicializável. A partição é do tipo GPT .

Estou procurando especificamente qualquer comando que eu possa usar para inicializar o sistema por meio de live CD .

Qualquer sugestão é bem vinda.

    
por abhi 19.11.2015 / 05:49

3 respostas

1

Então eu pude fazer o que eu queria.

Eu usei gnu parted e dd para copiar apenas a partição inicializável.

Primeiro usei o comando parted para print do início e do final da unidade, digamos /dev/sda e, em seguida, observei o início e o fim da unidade inicializável. Por exemplo, end está em 7890Mb, basta converter isso em bytes e dividir por 512, que é o tamanho de bloco da unidade em que eu estava trabalhando. Vamos dizer que esse resultado é N . O resultado seria a contagem que você fornecerá ao comando dd .

Agora é só usar dd if=/dev/driveWhereBootablePartionExist of=/backup/img.img count = N acima de bs = 512 (ou tamanho de bloco)

Isso resultou em um arquivo de imagem totalmente inicializável para a partição igual ao tamanho da partição.

    
por 19.11.2015 / 09:48
1

Você pode usar dd para copiar a partição inteira, como em:

dd if=/dev/sda3 of=windows-xp.img

(Altere /dev/sda3 e o nome do arquivo de saída, conforme necessário). Você então inverteria o processo para copiá-lo de volta:

dd if=windows-xp.img of=/dev/sda3 bs=4096

Observe que adicionei bs=4096 como uma opção. Isso faz com que a saída seja enviada em partes de 4096 bytes, o que provavelmente será mais rápido na maioria dos discos modernos. (Isso terá pouco ou nenhum efeito ao criar o backup, no entanto.)

Embora o uso de dd , conforme especificado em sua pergunta, funcione, é ineficiente. Uma maneira melhor é usar uma ferramenta chamada ntfsclone , pelo menos supondo que a partição use NTFS. (Esta é uma ferramenta do Linux. Baseado no fato de que você especificou dd e disse que está usando um live CD, estou assumindo que é o Linux.) Para clonar uma partição com ntfsclone , você usaria algo como isso:

ntfsclone --save-image --output windows-xp.img /dev/sda3

A restauração exige um comando como este:

ntfsclone --restore-image --overwrite /dev/sda3 windows-xp.img

Existem mais exemplos de uso próximo ao final da página ntfsclone man (digite man ntfsclone para lê-lo).

A vantagem de ntfsclone é que ele usa um formato de arquivo esparso, o que significa que ele não faz backup de setores que não estão em uso. Por contraste, dd copia tudo, portanto, se a partição tiver muito espaço não utilizado, dd provavelmente levará mais tempo e definitivamente ocupará mais espaço em disco. Dependendo do estado do disco antes da instalação do XP, compactar o dd backup pode não ajudar muito, já que os setores não utilizados podem ter dados antigos neles.

De qualquer forma, há algumas ressalvas a serem lembradas:

  • O ntfsclone e o dd farão backup dos dados do carregador de boot na partição do Windows, mas não no carregador de boot no MBR do disco. Você terá que fazer o backup separadamente. (OTOH, você disse que o disco é GPT, e o Windows XP não pode inicializar a partir de discos GPT, exceto algumas construções exóticas do Itanium, IIRC. Você está usando isso em um ambiente de virtualização?)
  • Os dois dd e ntfsclone representam um risco de danos sérios se você digitar o nome do arquivo incorreto do dispositivo, principalmente ao restaurar a imagem. Se o destino de restauração for a partição errada, é provável que você acabe com tudo nesse destino, o que pode ser desastroso. Seja muito cuidadoso!
  • Você precisa de root privileges para executar esses comandos. Dependendo do seu ambiente de CD ativo, esse pode ser o padrão ou talvez você tenha que incluir sudo no início de cada comando.
por 20.11.2015 / 23:40
0

Experimente gparted . Pode copiar partições para outro disco. Ou dd pode ser usado assim:

dd if=/dev/sda1 of=/dev/sdb1 bs=1M

Você precisa reinstalar o carregador de boot para torná-lo inicializável após essa cópia.

    
por 19.11.2015 / 06:59