How to backup/restore/mount Xbian .img to a local folder

Xbian is my proffered media center solution for some time now and one of the great features is ability to create .img of your current system so that you can use it for backup purposes or multiplication.

All you need to do is to create your backup using xbian-config script run as root and navigate to Xbian copier:

xbian_copier

To create .img in Destination field write following:

"file:/[YOUR_PATH}/[YOUR_FILE}.img"

xbian_to_img

Image created this way can easily be restored with a simple dd command:

pv /[YOUR_PATH]/[YOUR_FILE/.img | dd of=/dev/mmcblk bs=1M

I am using here pv tool for progress monitoring of data through pipe, normal way would be without verbosed output:

dd if=/[YOUR_PATH]/[YOUR_FILE/.img of=/dev/mmcblk bs=1M

One cool thing you can do also is to mount your backup to a folder and use it for example to copy some files, compare configs etc.

First peace of information you will need to obtain is the start location of your btrfs partition in the .img file.

You can do this with fdisk command for example:

fdisk -l /mnt/volume_2/backup/xbian_20150804.img

Disk /mnt/volume_2/backup/xbian_20150804.img: 8.1 GiB, 8665432064 bytes, 16924672 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: 0x000af7b0

Device Boot Start End Sectors Size Id Type
 /mnt/volume_2/backup/xbian_20150804.img1 * 2048 71679 69632 34M b W95 FAT32
 /mnt/volume_2/backup/xbian_20150804.img2 71680 16924671 16852992 8G 83 Linux

Notice the start sector of your btrfs partition is 71680, and your sector size is 512 bytes. You need to calculate the offset for this .img file so that you can mount directly to your btrfs partition.

Simple bash command would do:

echo "$((71680 * 512))"
 36700160

Now you will need kernel loopback module for mounting image files if it is not already loaded;

modprobe loop

And now finally the complete mount command:

mount -v -t auto -o loop,offset=36700160,ro /mnt/volume_2/backup/xbian_20150804.img /mnt/temp/
 mount: /dev/loop0 mounted on /mnt/temp.

Now you can access your btrfs partition in /mnt/temp folder.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.