Mount DD image on Linux
Yesterday, my Raspberry Pi running Arch Linux was not able to boot with error:
Kernel Panic, not syncing: no init found. I spent a night on it, but could not find a working solution. The last option is easy: reinstall the system. That is really the last resort, for I do not want to re-setup everything I have done: samba server, Time Machine server, Xunlei Offline Downloader…
Unable to mount the SD card
The system does not boot, so I need to find a way to get into the file system to identify what is wrong, or at least backup all the configuration files.
I cannot directly mount it on my Mac, due to the unsupported Ext4 format, although the boot partition can be mounted, as it is in FAT format. I did tried with ext4fuse and fuse-ext2 without luck. I could neither connect the inter SD card reader to Parallel Desktop VM running Ubuntu, what a pity!
Use DD to make the SD card to an image
This is really a workaround, but it indeed is the best solution I am having.
* Locate the SD card by running
diskutil list. It is disk2
* Make image file using dd:
sudo dd if=/dev/disk2 of=~/Desktop/pi.img bs=1m
Mount the image in Ubuntu
I did this in my Parallel Desktop running Ubuntu.
fdisk to list partition information of the image.
fdisk -u -l pi.img
the result I got was:
Disk pi.img: 15.9 GB, 15931539456 bytes 255 heads, 63 sectors/track, 1936 cylinders, total 31116288 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: 0x0004f23a Device Boot Start End Blocks Id System pi.img1 * 2048 186367 92160 c W95 FAT32 (LBA) pi.img2 186368 31116287 15464960 83 Linux
We will be using this command to mount the image:
mount -o loop, offset=[offset value] [path to image file] [path to mount point]
Take note of the unit size, 512 byte here and the Start sector for each partition, which are used to calculate the offset. Here I want to mount the second partition, pi.img2. With a simple calculation: 512 * 186368 = 95420416
sudo mount -o loop,offset=95420416 pi.img /media/pi
Ok, that’s it. Now I am able to explore the files.
Last night I had a dream. In that dream, my boyfriend was shopping with another woman. The first reaction of mine in that dream was to check the source code... The end result is it's still that woman but not me after a long time debugging, so I have to comment out that woman and run the program agai