Como criar uma imagem flash USB “.bin” no Linux sem drive físico

1

Eu tenho alguns arquivos no Linux, que eu tenho que copiar para vários cartões SD no Windows periodicamente (não inicializável, mas com permissões de arquivo, sistema de arquivos ext3 ). Agora o procedimento é: Eu copio os arquivos para uma unidade flash no Linux, em seguida, crie uma imagem .bin desta unidade e clone esse .bin para outras unidades USB no Windows. Arquivos às vezes mudam, então eu preciso criar .bin arquivo novamente. A ideia é criar .bin arquivos sem usar a unidade física.

Existe uma solução para criar imagens de drive USB virtualmente? Ou existe uma ferramenta para gravar unidades flash USB ext3 do arquivo tag.bz2 no Windows?

    
por Heavy 06.11.2014 / 16:40

1 resposta

1

A solução óbvia é montar a imagem diretamente no Linux e fazer as mudanças, mas há um pequeno problema. Essas mídias são particionadas de maneira semelhante a um disco rígido. A solução é montar a partição correta da imagem.

Verifique se a imagem está realmente particionada:

$ file -k OpenELEC-RPi.arm-4.95.1.img
OpenELEC-RPi.arm-4.95.1.img: x86 boot sector; partition 1: ID=0xc, active, starthead 32, startsector 2048, 262145 sectors; partition 2: ID=0x83, starthead 146, startsector 266240, 65537 sectors

Trabalhando com a imagem

Mapeie as partições da imagem para dispositivos de loop:

$ sudo kpartx -av OpenELEC-RPi.arm-4.95.1.img
add map loop0p1 (252:3): 0 262145 linear /dev/loop0 2048
add map loop0p2 (252:4): 0 65537 linear /dev/loop0 266240

No Ubuntu kpartx não está instalado por padrão. Do sudo apt-get install kpartx .

Monte a partição:

$ sudo mount /dev/mapper/loop0p1 /mnt/tmp1

Agora faça suas alterações no diretório /mnt/tmp1 .

Umount da partição e exclua o mapeamento:

$ sudo umount /dev/mapper/loop0p1
$ sudo kpartx -dv OpenELEC-RPi.arm-4.95.1.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0

Outras opções

Se kpartx não estiver disponível, você poderá determinar o deslocamento da partição usando por exemplo fdisk (ele também funciona nas imagens para que você possa criar a imagem sem ter uma unidade física) e mapeá-las usando losetup ou mount -o loop,offset=x ou até mesmo a nova versão de losetup (do util-linux 2.21) pode mapear as partições diretamente usando a opção --partscan .

Há descrições em outras perguntas:

por 06.11.2014 / 18:10