====== Usando Discos Virtuales ======
====== Creando un disco ======
Creamos el archivo que usaremos como disco, para eso, usaremos el comando ''dd'':
gboksar@macbook:~/tmp$ dd if=/dev/zero of=./data.hdd bs=2048 count=2048000
2048000+0 registros de entrada
2048000+0 registros de salida
4194304000 bytes (4,2 GB) copiados, 143,113 s, 29,3 MB/s
gboksar@macbook:~/tmp$ ls -l
total 4100004
-rw------- 1 gboksar gboksar 4194304000 2008-05-22 00:05 data.hdd
Este archivo fue creado como una iteración de N veces del dispositivo ''zero'', por lo que si bien ocupa una el espacio en disco que fuera especificado, podríamos llegar a comprimirlo en un archivo extremadamente pequeño! (son todos ''0'')
Veamos un ejemplo:
gboksar@macbook:~/tmp$ tar cjf data.hdd.tar.bz2 data.hdd
gboksar@macbook:~/tmp$ ls -l
total 4100008
-rw------- 1 gboksar gboksar 4194304000 2008-05-22 00:05 data.hdd
-rw------- 1 gboksar gboksar 3052 2008-05-22 00:11 data.hdd.tar.bz2
Tal como se aprecia aquí, un archivo de 4GB fue reducido a 3K! bastante, verdad?!
Bien, ya tenemos el archivo creado, o sea, podríamos decir que tenemos nuestro "nuevo disco". El siguiente paso es darle formato. Para eso usaremos el comando ''mkfs'' y lo especializaremos al tipo de filesystem que creamos conveniente. En este caso del ejemplo usaremos VFAT(FAT32):
gboksar@macbook:~/tmp$ mkfs.vfat -F 32 data.hdd
mkfs.vfat 2.11 (12 Mar 2005)
gboksar@macbook:~/tmp$
El parámetro ''-F'' con la opción ''32'' dice a ''mkfs.vfat'' que de formato en FAT32 en lugar de FAT12 o FAT16.
===== Montemos nuestro nuevo "disco" =====
El primer paso es crear un directorio para el montaje o utilizar alguno ya existente en nuestro filesystem. En este caso, crearemos un directorio ''test'' en nuestro ''home'':
gboksar@macbook:~/tmp$ mkdir test
Una vez creado el directorio, podemos montar la nueva "unidad" en el mismo:
gboksar@macbook:~/tmp$ sudo mount -tvfat data.hdd test -o loop -O rw,user,users
gboksar@macbook:~/tmp$ cd test/
gboksar@macbook:~/tmp/test$ ls -l
total 0
Creemos algunas cosas dentro de nuestro nuevo "disco". Es importante recordar que el uso de la unidad queda totalmente transparente, ya que para el usuario será simplemente un directorio más del sistema, pero lo cierto eso que, en este caso, todo lo que se guarde dentro del directorio "test" se estará almacenando en el disco virtual.
gboksar@macbook:~/tmp/test$ sudo mkdir test
gboksar@macbook:~/tmp/test$ sudo mkdir test2
gboksar@macbook:~/tmp/test$ sudo mkdir test4
gboksar@macbook:~/tmp/test$ sudo mkdir test3
gboksar@macbook:~/tmp/test$ ll
total 16
drwxr-xr-x 2 root root 4096 2008-05-22 00:20 test/
drwxr-xr-x 2 root root 4096 2008-05-22 00:21 test2/
drwxr-xr-x 2 root root 4096 2008-05-22 00:21 test3/
drwxr-xr-x 2 root root 4096 2008-05-22 00:21 test4/
gboksar@macbook:~/tmp/test$ cd ..
===== Desmontando el disco =====
Primero que nada debemos salir del directorio que es punto de montaje. Si por algun motivo no nos permitiera desmontar la unidad, podríamos forzar la acción usando el parámetro ''-l''.
gboksar@macbook:~/tmp/test$ cd ..
gboksar@macbook:~/tmp$ sudo umount test/
Una vez desmontado, el contenido que había sido creado en ''test'' cuando estaba montado el disco habrá "desaparecido" y se mostrará el contenido original del directorio.
gboksar@macbook:~/tmp$ ls -l test
total 0
gboksar@macbook:~/tmp$
Si volvemos a montar nuestro unidad virtual, el contenido reaparecerá y lo podremos seguir usando:
gboksar@macbook:~/tmp$ sudo mount -tvfat data.hdd test -o loop
gboksar@macbook:~/tmp$ ls -l test
total 16
drwxr-xr-x 2 root root 4096 2008-05-22 00:20 test/
drwxr-xr-x 2 root root 4096 2008-05-22 00:21 test2/
drwxr-xr-x 2 root root 4096 2008-05-22 00:21 test3/
drwxr-xr-x 2 root root 4096 2008-05-22 00:21 test4/
gboksar@macbook:~/tmp$ sudo umount test/
gboksar@macbook:~/tmp$ ls -l test
total 0
gboksar@macbook:~/tmp$
Una vez desmontado el "disco" se lo podría cifrar mediante GPG para evitar su utilización por otros usuarios, incluso ''root''.