Como eu crio uma imagem USB com uma tabela de partições?

5

Eu quero criar uma imagem de alguma árvore de diretórios que seja gravável diretamente em uma unidade USB, assim como as imagens de muitas distribuições do Linux. Por exemplo, com o openSUSE você pode baixar uma imagem ISO gravável diretamente no USB usando dd .

root@computer# dd if=openSUSE.iso of=/dev/sdb

Eu tentei criar imagens usando mkisofs , mas quando executei o comando dd acima com essa imagem não obtive uma tabela de partição, o que fez o windows não reconhecer o formato da unidade e o Linux não apresentou %código%. Eu também tentei criar um arquivo vazio e, em seguida, criar um sistema de arquivos nesse arquivo usando /dev/sdb1 .

Parece haver muitos tutoriais na Web sobre como gravar imagens em unidades USB, bem como despejar uma unidade USB em um arquivo, mas não encontrei nada na criação de uma imagem com uma tabela de partições.

O problema que estou tentando resolver com isso é distribuir um pen drive USB pré-formatado, então não há necessidade de o stick ser inicializável; Eu também gostaria de tornar este processo scriptável.

    
por Kotte 01.08.2012 / 13:53

1 resposta

6

Você pode usar kpartx para isso. Aqui está uma maneira de criar uma imagem de disco completa.

# create empty image
dd if=/dev/zero of=myvm.img bs=1G count=0 seek=100

# partition the image file with fdisk/gdisk or any other tool
gdisk myvm.img

# make the partitions in the image file available as individual devices
kpartx -a myvm.img

# work with the partitions
./someprogram /dev/mapper/loop0p1

# close the partitions
kpartx -d myvm.img
    
por 01.08.2012 / 14:01