Usando o dd para salvar e restaurar um setor de inicialização?

1

Através de algum código legado eu estou usando o dd para salvar e restaurar (partes) de um setor de inicialização depois de descompactar o .iso do sistema no disco rígido (de um live cd).

Eu uso o seguinte comando para salvar o mbr (primeiro 446 bytes, portanto, tudo, MAS a tabela de partições):

dd if=/dev/sda of=/mnt/mbr.bin bs=446 count=1

Depois restaurei o .iso do disco rígido e depois use o seguinte comando para restaurar o setor de inicialização:

dd if=/mnt/mbr.bin of=/dev/sda bs=446 count=1

Agora como estou tendo o problema que antes eu tinha APENAS um windows xp instalado e DEPOIS de usar o método acima ele me permite escolher entre uma inicialização linux e uma inicialização do windows xp acho que algo está muito errado lá.

Minha pergunta aqui é: estes dois comandos acima devem ser suficientes para salvar e depois restaurar um setor de inicialização?

    
por Thomas 31.12.2015 / 15:45

1 resposta

2

O MBR é basicamente um segmento de 512 bytes no primeiro setor do seu disco rígido e é composto de 3 partes: o código de inicialização (446 bytes), a tabela de partição (64 bytes) e a assinatura do código de inicialização (2 bytes de comprimento). Não tenho certeza do que deu errado ao seu lado, mas isso funciona para mim:

Isso fará o backup do código de inicialização e nada mais:

[root@host]# dd if=/dev/sda of=/tmp/mbr.img_backup bs=446 count=1

Em seguida, você deseja limpar o MBR, incluindo a tabela de partições, que você não deseja salvar junto com a assinatura do bootcode:

[root@host]# dd if=/dev/zero of=/dev/sda bs=512 count=1

E agora você restaura o código de inicialização:

[root@host]# dd if=/tmp/mbr.img_backup of=/dev/sda bs=446 count=1

    
por 31.12.2015 / 18:30

Tags