Con il diffondersi di Rasperry PI, Orange PI, Cubieboartd ed altri micro computerini, il mondo Linux è realmente impazzito e sforna continui aggiornamenti, ma (come mi è capitato oggi) ricompilando un kernel, avevo la necessità di vedere all’interno di un altro img come era stato realizzato l’output su di un led del trigger del carico della CPU.
Sotto Linux è particolarmente semplice (sapendolo …) e sono veramente due comandi: in sostanza bisogna dire al comando mount di partire da un certo punto… Ma da che punto ?
Per prima cosa con fdisk mi faccio dire la struttura dell’immagine:
$fdisk -l debian.img
Disk debian.img: 983 MiB, 1030750208 bytes, 2013184 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: 0x00000000
Dispositivo Avvio Start Fine Settori Size Id Tipo
debian.img1 2048 26623 24576 12M 83 Linux
debian.img2 26624 1967199 1940576 947,5M 83 Linux
Quindi si vedono due partizioni, entrambe formattate ext4. Per montare la prima bisognerà dire al comando mount di spostarsi di 2048 settori e per la seconda partizione l’offset sarà di 26624 settori!
sudo mount -t ext4 -o loop,offset=$((2048 * 512)) debian.img /mnt/disk
mount -t ext4 -o loop,offset=$((26624 * 512)) imgfile.img /mnt/disk1
Se si dovesse sbagliare l’offset, l’unico errore sarebbe un bel
mount : wrong fs type, bad option, band superblock on /dev/loop,
missing codepage or helper proggram, or other error
In some cases useful info is found in syslog – try
dmesg | tail or so
Da puntualizzare che 512 bytes non va bene per i CD o DVD che hanno il settore di 2352 bytes.