Dispositivos de Loop (Loop devices, loopback devices) são drivers de dispositivo que permitem que arquivos de imagens (images files) sejam montados como se fossem dispositivos de blocos normais. Em um POST anterior, foi demonstrado como montar um arquivo iso, utilizando o comando mount. Repetindo o comando, nós fizemos:
[root@skyship ~]# mount -o loop -t iso9660 ubuntu-10.04-desktop-i386.iso /mnt/iso
No exemplo acima, montamos uma imagem do Ubuntu 10.04 (o arquivo chamada-se ubuntu-10.04-desktop-i386.iso), dentro de um diretório chamado /mnt/iso. A partir desse momento, um ls /mnt/iso irá mostrar todos os arquivos que estão dentro do sistema de arquivos contido na imagem.
Já sabemos como montar um arquivo de imagem, mas como cria-los? Precisaremos das ferramentas dd e losetup.
Vamos criar um arquivo com o tamanho desejado. Isto é feito com o comando dd e o dispositivo zero (/dev/zero):
[marvin@skylab ~]$ dd if=/dev/zero of=volume1 bs=1M count=100
Criamos um arquivo chamado volume1 dentro do diretório home do usuário. Esse arquivo será usado para armazenar o sistema de arquivo com um tamanho máximo de 100M.
Mas antes que um sistema de arquivo possa ser criado no arquivo no nosso arquivo de imagem, devemos fazer com que o arquivo comporte-se como um sistema de bloco. Isto é feito com o comando losetup. Assim:
[marvin@skylab .~]$ sudo losetup /dev/loop0 volume1
Existem 8 arquivos de loop, por isso você precisa ter certeza que o dispositivo que deseja utilizar não esteja em uso. Para isso podemos utilizar o comando sudo losetup /dev/loopN (onde N é o número do arquivo desejado).
[marvin@skylab ~]$ sudo losetup /dev/loop0 /dev/loop0: [0805]:7749664 (volume1)
Agora que /dev/loop0 é um dispositivo de bloco legítimo, utilizaremos o mkfs.ext3 para criar o sistema de arquivos ext3:
[marvin@skylab ~]$ sudo mkfs.ext3 /dev/loop0
O resultado deve ser algo do tipo:
mke2fs 1.40.2 (12-Jul-2007) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 16 inodes, 100 blocks 5 blocks (5.00%) reserved for the super user First data block=1 1 block group 8192 blocks per group, 8192 fragments per group 16 inodes per group Writing inode tables: done Filesystem too small for a journal Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 24 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Com o arquivo de imagem criado, podemos monta-lo com o comando mount:
[marvin@skylab ~]$ sudo mount -o loop -t ext3 /dev/loop0 /mnt/imagem/
Um ls irá confirmar que a imagem está montada:
[marvin@skylab .~]$ ls /mnt/imagem lost+found
Como podemos perceber, o diretório lost+found do ext3 foi encontrado, demonstrado que nosso dispositivo está montado.
DESMONTANDO O DISPOSITIVO
Para desmontar o dispositivo:
[marvin@skylab ~]$ sudo umount /mnt/imagem/ [marvin@skylab ~]$ sudo losetup -d /dev/loop0
E para montar novamente:
[marvin@skylab ~]$ sudo losetup /dev/loop0 volume1 [marvin@skylab ~]$ sudo mount -o loop -t ext3 /dev/loop0 /mnt/imagem/
ENCRIPTAÇÃO
Um recurso do losetup bastante interessante é a possibilidade de criar um volume criptografado, aumentado bastante a seguranças dos seus dados:
Primeiramente, devemos carregar os módulos necessários:
[marvin@skylab ~]$ sudo modprobe des [marvin@skylab ~]$ sudo modprobe cryptoloop
Executando o losetup:
[marvin@skylab ~]$ sudo losetup -e aes /dev/loop0 volume2 Senha:
No comando anterior, usamos o parâmetro -e para indicar qual algoritmo de criptografia será usado. Neste exemplo, estamos usando o AES.
Criando o sistema de arquivos no volume2:
[marvin@skylab ~]$ sudo mkfs.ext3 /dev/loop0
Agora pode-se montar o arquivo normalmente com o mount.
0sem comentários ainda