Cria uma imagem de disco em branco para armazenamento de arquivos

6

Similar à maneira como os usuários do Mac OS X podem criar e montar arquivos .dmg em branco, adicionar e remover arquivos o quanto quiserem e mover a imagem para onde quiserem ... como se fosse uma unidade USB virtual. / p>

Existe um equivalente para o Ubuntu? Eu sei que o "Disk Image Mounter" nos permite montar e editar arquivos .img existentes, mas existe uma maneira igualmente fácil de criar / formatar arquivos .img vazios? Todas as soluções que encontrei até agora implementam copiar / clonar uma unidade já existente, mas não quero isso.

EDIT: Eu criei um aplicativo de GUI com script baseado na resposta aceita abaixo. É apenas um diálogo baseado em arquivos YAD e .sh, o que significa que o processo de comando / montagem / formatação do dd é mais fácil de ser manipulado por pessoas menos experientes na linha de comando.

Aqui está

    
por john kieran 30.08.2015 / 06:22

2 respostas

13

Sim.

Este é um guia passo a passo para criar uma imagem personalizada começando do zero;

Assumirei o seguinte:

  • O tamanho da imagem deve ser de 100 MiB
  • A tabela de partições de imagem deve ser MBR
  • A imagem deve conter uma única partição primária FAT32

Criando a imagem em branco

Crie a imagem em branco:

dd if=/dev/zero of=image.img iflag=fullblock bs=1M count=100 && sync
ubuntu@ubuntu ~/tmp % dd if=/dev/zero of=image.img iflag=fullblock bs=1M count=100 && sync
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0415825 s, 2.5 GB/s
ubuntu@ubuntu ~/tmp % tree
.
└── image.img

0 directories, 1 file

Montando a imagem em branco

Relacione os dispositivos de loopback já ocupados:

losetup
ubuntu@ubuntu ~/tmp % losetup                   
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  1 /cdrom/casper/filesystem.squashfs

Monte a imagem no primeiro dispositivo de loopback disponível:

sudo losetup loop1 image.img
ubuntu@ubuntu ~/tmp % sudo losetup loop1 image.img
ubuntu@ubuntu ~/tmp % losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  1 /cdrom/casper/filesystem.squashfs
/dev/loop1         0      0         0  0 /home/ubuntu/tmp/image.img

Particionando / formatando a imagem em branco

Execute gparted passando o dispositivo de loopback como um argumento:

sudo -H gparted /dev/loop1

Cliqueem"Dispositivo" - > "Criar tabela de partição ...":

Cliqueem"Aplicar":

Cliqueem"Partição" - > "Novo":

Selecione"fat32" no menu suspenso:

Cliqueem"Adicionar":

Cliquenomarcadorverde:

Cliqueem"Aplicar":

Cliqueem"Fechar":

EfecheoGparted.

Desmontandoaimagem

Porfim,desmonteaimagemdodispositivodeloopback:

sudolosetup-d/dev/loop1
ubuntu@ubuntu ~/tmp % sudo losetup -d /dev/loop1 ubuntu@ubuntu ~/tmp % losetup NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE /dev/loop0 0 0 1 1 /cdrom/casper/filesystem.squashfs

Você pode usar a imagem criada para qualquer finalidade desejada; por exemplo, você pode usá-lo como uma unidade USB virtual:

sudo losetup loop1 image.img

Abrindo arquivos:

    
por kos 11.09.2015 / 11:32
0

Primeiro você precisa instalar o pacote hfsutils:

sudo apt-get install hfsutils

Agora, crie um arquivo de imagem, o tamanho é fixo:

sudo dd if=/dev/zero of=/root/file.img bs=1M count=130

Em seguida, formate o arquivo de imagem:

sudo hformat -l File /root/file.img

Depois disso, monte a imagem:

sudo mkdir /mnt/file
sudo mount -t hfs -o loop /root/file.img /mnt/file

Copie seus arquivos para o novo volume montado e, quando terminar, desmonte:

sudo umount /mnt/file

Eu me referi a este link para encontrar a solução.
Ps: Eu testei com sucesso no meu Ubuntu MATE 14.04.3

    
por Ghassen Rjab 11.09.2015 / 08:17