Como 62914560 aponta exatamente 60MiB para o arquivo, acho que o melhor palpite é que a imagem do disco Raspian seja particionada. O deslocamento informa mount
(ou, na verdade, losetup
) o deslocamento real do sistema de arquivos root /boot resp os arquivos de bootloader / firmware).
O problema aqui é que, embora o driver loop
realmente suporte imagens particionadas, o número de partições máximas por loop
dispositivo deve ser especificado como um parâmetro do módulo ao carregar o módulo (ou na linha de comando do kernel) . Como há muitas distribuições por aí que não fazem isso por padrão, ...,offset=XXX
é a maneira mais confiável de lidar com imagens particionadas quando loop
usa o parâmetro padrão (que é 0, portanto, nenhum suporte a partições).
Você pode testar se o driver loop
foi carregado com suporte a partições pesquisando /sys/module/loop/parameters/max_part
. No meu sistema atual (ArchLinux), após carregar loop
sem parâmetros, isto é:
$ cat /sys/module/loop/parameters/max_part
0
Para ativar o suporte ao particionamento, você terá que descarregar loop
e carregá-lo novamente com o valor desejado para as opções max_part
, por exemplo,
# modprobe -r loop
# modprobe loop max_part=8
Depois disso, você pode tentar configurar manualmente o dispositivo de loop para sua imagem, fazendo
# losetup /dev/loop0 /path/to/<date>-wheezy-raspbian.img
Agora, você não deve ver apenas /dev/loop0
representando a imagem inteira, mas (contanto que minha teoria esteja correta;) também tenha /dev/loop0p1
, /dev/loop0p2
, etc., para todas as partições na imagem. / p>
Editar:
Se você quiser fazer isso sozinho, da maneira tediosa (sugiro simplesmente recarregar loop
com a opção max_part
correta e simplesmente usar as partições), você pode descobrir qual compensação é necessária usando fdisk
diretamente no arquivo de imagem (mostrado com um ISO do ArchLinux, como eu tinha na mão, mas a idéia é a mesma):
$ fdisk -l archlinux-2016.03.01-dual.iso
Disk archlinux-2016.03.01-dual.iso: 268.3 MiB, 281339392 bytes, 549491 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
Disklabel type: dos
Disk identifier: 0x2237702c
Device Boot Start End Sectors Size Id Type
archlinux-2016.03.01-dual.iso1 * 0 1452031 1452032 709M 0 Empty
archlinux-2016.03.01-dual.iso2 172 63659 63488 31M ef EFI (FAT-12/16/32)
A segunda partição começa no setor 172 com um tamanho de setor de 512 bytes. Multiplicando ambos os valores, você recebe o offset em bytes, assim, para montar a partição, você usará:
# mount -o loop,offset=$((172*512)) archlinux-2016.03.01-dual.iso /mnt
# ls -l /mnt
total 4
drwxr-xr-x 4 root root 2048 Mar 1 15:49 EFI
drwxr-xr-x 3 root root 2048 Mar 1 15:49 loader
Voila.