Como adicionar uma tabela de partições ms-dos a um dispositivo de loop?

3

Recentemente fiz um dd a partir de uma partição de disco. Eu quero usá-lo como um disco em uma máquina virtual. Eu não posso porque o disco não tem tabela de partições.

Posso ter uma tabela de partições em um dispositivo de loop? como?

aparentemente uma questão semelhante existe aqui. Se alguém souber como fazer isso sem duplicar todos os dados, isso seria ótimo.

eu fiz dd if=/dev/sda1 of=myfile

Não consigo copiar o disco sda completo porque ele é muito grande.

    
por Guerrio 08.04.2013 / 15:07

2 respostas

2

Se você ainda tiver a unidade original, exclua a imagem e crie-a novamente com:

dd if=/dev/sda1 of=myfile bs=512 seek=2048

Isso deixará os usuais 1 MiB de espaço no início para que a tabela de partição seja adicionada posteriormente.

Você também pode querer usar o qcow2 para a imagem em vez de um arquivo de imagem completo e bruto que contém todo o lixo nos blocos não usados.

    
por 08.04.2013 / 16:57
0

Algo parecido com isto?

sda1_size=$(('blkdev --getsize64 /dev/sda1'/1024/1024+1))
dd if=/dev/sda of=myfile bs=1M count=$(($sda1_size+1))

Inicie o dd para todo o sda, mas copie somente até que a primeira partição seja coberta. Obtido adicionando +1 MiB à contagem. Isso está assumindo que sda1 está no início do disco. Se houver uma lacuna vazia maior que 1 MiB, adicione mais de +1.

Em vez do material de matemática, você também pode ver qual é o tamanho da partição MiB em qualquer programa de particionamento e, em seguida, ser generoso e adicionar um pouco a ela.

    
por 09.04.2013 / 01:55