Criar contêiner de imagem de arquivo


23

Eu gostaria de criar um arquivo de 100 GB para usar como sistema de arquivos. O arquivo será armazenado em um volume criptografado, para que o sistema de arquivos / arquivos em si não precise ser (adicionalmente) criptografado. A pesquisa revelou muitos métodos diferentes de fazer isso. Alguns usam losetup, outros não. O método a seguir é aceitável?

$ dd if=/dev/zero of=~/theFile.img bs=1M count=10240
$ mkfs.ext4 ~/theFile.img   # will prompt about block special device
$ sudo mount -o loop ~/theFile.img /media/mountPoint

3
Além deste criando um arquivo de 10GB em vez de 100GB, muito obrigado, mudando a contagem de 102400 cumprido o meu necessidades :)

Respostas:


9
  1. BS e COUNT devem estar em minúsculas:

    dd if=/dev/zero of=~/theFile.img bs=1M count=10240

  2. você precisa criar o diretório / media / MountPoint se ele ainda não existir:

    sudo mkdir -p /media/MountPoint

Além dessas duas coisas, o que você tem lá deve funcionar.

Geralmente é melhor ser explícito do que confiar no comportamento implícito; portanto, convém alterar a linha de montagem para:

sudo mount -t ext4 -o loop ~/theFile.img /media/mountPoint


2
Obrigado pelas correções. Foi o Mem 1Mque tinha que ser maiúsculas. Não sei por que eu coloquei bse countem letras maiúsculas também. Obrigado pela melhoria mount.
SabreWolfy

Aceitei uma edição sugerida para minha pergunta para corrigir o erro em maiúsculas e especificar explicitamente um dispositivo de loop no mount.
SabreWolfy

5

Exceto pelas letras maiúsculas nas ddopções e sem incluir a loopopção mount, acho isso perfeitamente válido. mkfsestá avisando que não está usando um dispositivo de bloqueio para garantir que você saiba o que está fazendo.

De qualquer forma, no final, você estará usando um dispositivo de loop:

$ dd if=/dev/zero of=~/theFile.img bs=1M count=10
$ /sbin/mkfs.ext4 theFile.img
$ sudo mount -o loop theFile.img /mnt/tmp/
$ df -h

/dev/loop0            9,7M  1,1M  8,1M  12% /mnt/tmp

1
O -o looppode ou não ser necessário ... depende da versão do mount. Minha versão atual não exige, mas lembro de ter que especificá-la no passado. Ainda assim, como eu disse - é melhor ser explícito do que implícito nos scripts, serve como documentação do WTF Eu estava pensando quando fiz isso?
cas

Acordado. (Nota: eu estou usando montar 2.17.2-9 dos atuais estável Debian)
rPET
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.