Crear contenedor de imagen de archivo


23

Me gustaría crear un archivo de 100GB para usarlo como sistema de archivos. El archivo se almacenará en un volumen cifrado, por lo que el archivo / sistema de archivos en sí no necesita ser (más) cifrado. La búsqueda ha revelado muchos métodos diferentes para hacerlo. Algunos usan losetup, otros no. ¿Es el siguiente un método aceptable?

$ 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
Además de crear un archivo de 10GB en lugar de 100GB, muchas gracias, cambiar el conteo a 102400 satisfizo mis necesidades :)

Respuestas:


9
  1. BS y COUNT deben estar en minúsculas:

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

  2. necesita crear el directorio / media / MountPoint si aún no existe:

    sudo mkdir -p /media/MountPoint

Aparte de esas dos cosas, lo que tienes allí debería funcionar.

Por lo general, es mejor ser explícito que confiar en el comportamiento implícito, por lo que es posible que desee cambiar la línea de montaje a:

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


2
Gracias por las correcciones. Era el Min 1Mque tenía que ser mayúscula. No sé por qué pongo bsy counten mayúsculas también. Gracias por la mejora mount.
SabreWolfy

Acepté una edición sugerida a mi pregunta para corregir el error en mayúsculas y especificar explícitamente un dispositivo de bucle en el mount.
SabreWolfy

5

Excepto por las letras mayúsculas en las ddopciones y sin incluir la loopopción en mount, encuentro esto perfectamente válido. mkfsle advierte que no está utilizando un dispositivo de bloqueo para asegurarse de que sabe lo que está haciendo.

De todos modos, al final, usarás un dispositivo de bucle:

$ 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
El -o looppuede o no ser requerido ... depende de la versión de montaje. Mi versión actual no lo requiere, pero recuerdo tener que especificarlo en el pasado. Aún así, como dije, es mejor ser explícito que implícito en los scripts, sirve como documentación de WTF ¿Estaba pensando cuando hice eso?
cas

Convenido. (Nota: estoy usando el montaje 2.17.2-9 del actual Debian Stable)
rpet
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.