The problem
When you download a Raspmc (Raspberry Pi Media Center) image it’s a .zip file.
If you want to check the content of the file you must find a way to mount the image.
Prerequisites
- a pc with GNU/Linux
- a user with root permissions on the pc
- the image you want to analyze (download from the site)
Procedure
- first of all unzip the archive
$ unzip installer.zip
- you’ll notice one file: installer.img that’s an image of a block device:
$ file installer.img
installer.img: x86 boot sector; partition 1: ID=0xc, starthead 0, startsector 2048, 131072 sectors; partition 2: ID=0x83, starthead 3, startsector 133120, 251904 sectors, code offset 0xb8 - create a mount point
$ mkdir /tmp/mnt-installer
- if your “file” output gives you less informations, you can examine the image structure (sizes in Sectors) with the following command
$ sfdisk -uS -l installer.img
Disk installer.img: cannot get geometry
Disk installer.img: 24 cylinders, 255 heads, 63 sectors/track
Warning: The partition table looks like it was made
for C/H/S=*/4/32 (instead of 24/255/63).
For this listing I'll assume that geometry.
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
installer.img1 2048 133119 131072 c W95 FAT32 (LBA)
installer.img2 133120 385023 251904 83 Linux
installer.img3 0 - 0 0 Empty
installer.img4 0 - 0 0 Empty
- take a note of what you want to mount, i.e. img2 (Linux filesystem) as I highlighted
- with root permissions, mount the desired partition on the previous created path (133120 is the Start sector taken from the last output)
$ sudo mount -o loop,offset=$(( 512 * 133120)) installer.img /tmp/mnt-installer
- check the content
$ ls -lAtr /tmp/mnt-installer
total 96
drwxr-xr-x 2 root root 4096 Jul 21 2010 selinux
drwxr-xr-x 2 root root 4096 Mar 27 23:44 sys
drwxr-xr-x 2 root root 4096 May 7 17:28 proc
drwxr-xr-x 2 root root 4096 May 7 17:28 mnt
drwxr-xr-x 2 root root 4096 May 7 17:28 home
drwxr-xr-x 2 root root 4096 May 7 17:28 boot
drwx------ 2 root root 16384 Jun 18 02:26 lost+found
drwx------ 2 root root 4096 Jun 18 02:27 root
drwxr-xr-x 2 root root 4096 Jun 18 02:27 srv
drwxr-xr-x 2 root root 4096 Jun 18 02:27 opt
drwxr-xr-x 2 root root 4096 Jun 18 02:27 media
drwxr-xr-x 13 root root 4096 Jun 18 02:27 var
drwxr-xr-x 10 root root 4096 Jun 18 02:27 usr
drwxrwxrwt 2 root root 4096 Jun 18 02:27 tmp
drwxr-xr-x 2 root root 4096 Jun 18 02:31 sbin
drwxr-xr-x 9 root root 12288 Jun 18 02:31 lib
drwxr-xr-x 43 root root 4096 Jun 18 02:31 etc
drwxr-xr-x 2 root root 4096 Jun 18 02:31 bin
drwxr-xr-x 4 root root 4096 Jun 18 02:31 dev
- when you have done, unmount the filesystem
$ sudo umount /tmp/mnt-installer
Thanks! I found this very useful for updating OpenElec to a new image version. I’ve been getting images from http://openelec.thestateofme.com/, extracting the KERNEL and SYSTEM files, creating KERNEL and SYSTEM.md5 files and copying them to the Update share on the RPi. Your instructions are essential to this.