Objetivo:
Esse rascunho tem a finalidade de reunir informações
necessárias para manipulação de arquivos de discos virtuais, como por
exemplo, vhds do vmware, arquivo de disco gerado pelo protocolo iSCSI. Possibilitar
a detecção e montagem de partições contidas nesses arquivos.
O estudo surgiu com a ideia de indisponibilidade total de uma storage iSCSI, onde o único meio para recuperação de arquivos seria a retirada de disco para a manipulação do arquivo que armazena as informações do protocolo.
O estudo surgiu com a ideia de indisponibilidade total de uma storage iSCSI, onde o único meio para recuperação de arquivos seria a retirada de disco para a manipulação do arquivo que armazena as informações do protocolo.
Espero com esse documento poder ajudar de alguma forma pessoas
que assim como eu passaram por essa necessidade.
1 - Listando e criando dispositivos loops(/dev/loop*)
#Caso não tenham dispositivos loops ativos pode criar com o
comando:
#Listar dispositivos loops existentes "ls -la
/dev/loop*"
#Criando dispositivos loops.
ex: para criar /dev/loop3
"mknod -m660 /dev/loop3 b 7 3"
ex: para criar /dev/loop8
"mknod -m660 /dev/loop8 b 7 8"
#References
http://www.tldp.org/HOWTO/CDServer-HOWTO/addloops.html
2 - Manipulando arquivos de discos virtuais com ferramenta
"losetup".
- Carregue o arquivo para o dispositivo de blocos:
losetup /dev/loop0 /var/lib/vz/teste
Obs: (/var/lib/vz/teste, arquivo do disco iSCSI que foi criado automaticamente no servidor iSCSI, com o nome de teste).
Obs: (/var/lib/vz/teste, arquivo do disco iSCSI que foi criado automaticamente no servidor iSCSI, com o nome de teste).
- Listando partições carregadas no dispositivo /dev/loop0
fdisk -lu /dev/loop0
- Resultado:<
Disk /dev/loop0: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders, total 2097152
sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x46a6c0d0
Device Boot
Start End Blocks
Id System
/dev/loop0p1
128 204927 102400
7 HPFS/NTFS/exFAT
/dev/loop0p2
204928 512127 153600
7 HPFS/NTFS/exFAT
:>
- Depois gere um ponto de montagem para cada partição
encontrada, multiplicando o inicio de cada partição (offset) x 512
losetup -o {offset partição 1}x512 /dev/loop1 /dev/loop0 =
losetup -o 65536 /dev/loop1 /dev/loop0
losetup -o {offset partição 2}x512 /dev/loop2 /dev/loop0 =
losetup -o 104923136 /dev/loop2/dev/loop0
- Se preferir ainda monte direto somente a partição
desejada, passando o parâmetro de qual setor ela inicia.
Ex: Montada a partição 1, 512x128=65536
losetup -o 65536 /dev/loop0 /var/lib/vz/teste
- Concluído o carregamento do ponto de montagem monte a
partição de acordo com o sistema de arquivos, ex:
mount.ntfs3g /dev/loop0 /mnt/teste | mount /dev/loop1
/mnt/teste1
#É necessária a ferramenta ntfs-tools instalada no Linux,
"apt-get install ntfs-3g" para manipular
#partições ntfs.
#Para encerrar o carregamento do dispositivo loop entre com
o comando "losetup -d /dev/loop0" por #exemplo.
#Ver status do dispositivo de loop "losetup
/dev/loop0" por exemplo.
Referências losetup:
http://varghese85-cs.blogspot.com.br/2008/11/mouting-partitions-with-losetup.html
http://cromoteca.com/en/blog/mountflatvmwarediskimagesunderlinux/
By:- Pedro Alex | pedroalex@gmail.com
25/02/2014