Pode ser útil para qualquer pessoa que trabalhe com virtualização, por exemplo, se você deseja montar uma imagem de modelo com várias partições localmente para modificá-la, enviar algumas configurações, etc …
Por exemplo, vamos chamar nosso arquivo de imagem de FooBar-disk1.raw
fdisk -l FooBar-disk1.raw
Disk FooBar-disk1.raw: 322.1 GB, 322122547200 bytes
255 heads, 63 sectors/track, 39162 cylinders, total 629145600 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: 0x00000000
Device Boot Start End Blocks Id System
FooBar-disk1.raw1 * 63 12611024 6305481 83 Linux
FooBar-disk1.raw2 12611025 25222049 6305512+ 83 Linux
FooBar-disk1.raw3 25222050 629137529 301957740 5 Extended
FooBar-disk1.raw5 25222113 29447144 2112516 83 Linux
(...)
Para montar uma partição, temos que encontrar seu setor inicial, multiplicá-lo pelo tamanho de um setor (aqui são 512 bytes).
Em seguida, podemos montar a partição, usando seu endereço inicial como um deslocamento no comando de montagem:
Para montar a partição 1 em / mnt:
mount -o offset=$((63*512)) FooBar-disk1.raw /mnt
Para montar a partição 2 em / mnt:
mount -o offset=$((12611025*512)) FooBar-disk1.raw /mnt