¿Cómo crear correctamente un sistema de archivos virtual?

10

Una tarea en mi tarea me pide que cree un sistema de archivos virtual, lo monte y realice algunas operaciones en él.

Se supone que debo crear un archivo de 10 MB cuyos bits estén configurados 0, formatearlo como ext3 y montarlo. Así es como lo hice:

dd if=/dev/zero of=~/filesyst bs=10485760 count=1
sudo mkfs.ext3 ~/filesyst
sudo mount –o loop ~/filesyst /media/fuse

A pesar de que he usado /dev/zero, el archivo todavía está lleno de caracteres galimatías (en su mayoría en signos). Los permisos /media/fuseestán en drw-rw-rw-(que están bien), pero los permisos en los archivos que contiene son algo así:

d????????? ? ? ? ?          ? lost+found
-????????? ? ? ? ?          ? secret_bin

¿Dónde me he equivocado?

Paul
fuente
Creo que el problema está relacionado con su comando mkfs.ext3. IIRC, hay diferentes argumentos que debe utilizar al hacer esto en un archivo en lugar de un dispositivo.
user606723
1
Tal vez me equivoque, según adamsinfo.com/… , lo estás haciendo correctamente. ¿Puedes intentar seguir los comandos exactos en esta url y ver si todavía tienes problemas?
user606723
Además, intentemkfs.ext3 -F ~/filesyst
user606723
@ user606723 Gracias, lo resolví. El problema fue el bsy los countargumentos. Si escribo bs=1MiB count=10, como en ese enlace que publicaste, funciona.
Paul
1
Por cierto, en realidad no necesita llenar el archivo con ceros. Simplemente puede crear un archivo vacío de tamaño arbitrario con truncate -s 400m filesyst. La diferencia es que hasta que realmente escriba datos en el archivo, no utilizará espacio en el disco, por lo que puede crear un sistema de archivos virtual que sea más grande que toda su unidad de disco, siempre y cuando no intente llenarlo . Puede ver cuánto espacio está usando realmente el archivo du -h filesyst.
psusi

Respuestas:

6

Hmmm ... la forma correcta de hacerlo es:

dd if=/dev/zero of=./filesyst bs=10485760 count=1
sudo losetup /dev/loop0 ./filesyst
sudo mkfs.ext3 /dev/loop0
sudo mount /dev/loop0 /tmp/lalla

y funciona:

(0)romano-asus:~/tmp% ls -l /tmp/lalla
total 12
drwx------ 2 root root 12288 2011-12-20 22:21 lost+found
(0)romano-asus:~/tmp% df /tmp/lalla
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/loop0                9911      1121      8278  12% /tmp/lalla

Debe verificar el primer dispositivo de bucle gratis con losetup -f.

Rmano
fuente