Installation and Updates
Configuration
Accessing media files
Backup and restore
Expert / Developers
Peripherals
Installation and Updates
Configuration
Accessing media files
Backup and restore
Expert / Developers
Peripherals
xbian-config (both XBMC and CLI version) provides functionality to create a functional clone of your running XBian installation. This new clone can be made to various media such as a different partition on same storage, another SD card, external USB media as HDD, or a file if you want to create a backup. After the xbian-config clone function finishes, only a small modification of the /boot/cmdline.txt
is needed. Change root=/dev/mmcblk0p2
to the USB device and partition you cloned to e.g. root=/dev/sda1
.
To create the clone. Start xbian-config:
root@pi:~# xbian-config
Then go to option 6 and change the destination address to the device you want to clone to.
In rare cases, with more USB disks attached, it can happen that other disk get the name /dev/sda1
so XBian fails to boot. If you are using more devices, use the LABEL
or UUID
pointers to root device:
1. Remove all devices except your new root device. 2. Run:
root@pi:~# sudo -i root@pi:~# blkid -s UUID -o value /dev/sda1 240d84e4-dd44-42df-b31e-fe4f492b5cceor
root@pi:~# sudo -i root@pi:~# blkid -s LABEL -o value /dev/sda1 xbian-copy3. These values can be used in the
cmdline.txt
:
root=UUID=240d84e4-dd44-42df-b31e-fe4f492b5cceor
root=LABEL=xbian-copy
It is also possible to utilize this function for creating absolute backup copies. xbian-config can directly create .img
file you can later use to write back on your SD card. So restoring is as easy as installing XBian for the first time. Instead of clean public distribution image you flash to SD card your own image file.
xbian-config will change all parameters in /boot/config.txt
and /boot/cmdline.txt
(or even /etc/fstab
) for you during the backup creation process. The image can be created on a usb disk or network server, or any other destination accessible by XBian.
If you want to move to usb/backup version Beta1X, follow this older guide. This process will remove XBian sub volumes from /rootfs
thus manually editing /etc/fstab
is required.
This guide assumes your USB disk is on /dev/sda1
. Beware, all data on this disk will be removed!
sudo umount /dev/sda1 sudo mkfs.btrfs -L xbian-usb /dev/sda1 sudo mount /dev/sda1 /mnt sudo rsync -aAX /* /mnt/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs} --progress sudo nano /mnt/etc/fstab
Notes:
/home
(with a #
at the start of the line)LABEL=xbian-root-btrfs
to root=/dev/sda1
and remove the subvol=root/@,
from the /
entry./boot/cmdline.txt
andLABEL=xbian-root-btrfs
to root=/dev/sda1
subvol=root/@
mod_scsi.scan=async
to mod_scsi.scan=sync
rootwait=
1. Unmount external drive and make filesystem:
sudo umount /dev/sda1 sudo mkfs.btrfs -L xbian-usb /dev/sda1
2. Mount it and copy files from sd-card
sudo mount /dev/sda1 /mnt sudo rsync -aAX /* /mnt/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs} --progress
3. Edit boot.scr.txt
sudo nano /boot/boot.scr.txt
change root=/dev/mmcblk0p2
to root=/dev/sda1
(or what your partition on the external drive is)
remove subvol=root/@,
and compile boot.scr with (make backups of both files beforehand - just in case):
cd /boot; sudo ./mks
Reboot
That's all!
To use sub volumes again: (Important for filesystem snapshots)
sudo -i cd / btrfs sub create ROOT btrfs sub snap / ROOT/@
and then re add the previous deleted text at the same position:
sudo nano /boot/boot.scr.txt
subvol=ROOT/@,
and compile it again with:
cd /boot; sudo ./mks
(It's important that ROOT is written the same way as created, in this case in capital letters!) For more informations see: https://github.com/xbianonpi/xbian/issues/556
Some external USB drives such as Seagate Expansion take longer than 10 seconds to spin up on boot, resulting in xbian not identifying the xbian-copy partition in time and results in recovery mode on start up.
It is necessary to add appropriate delay in the initramfs script between device initialization and root mounting to resolve this issue.
xbian@xbian ~ $ sudo nano /etc/xbian-initramfs/init
Add sleep 10
on a new line between up “after modprobe”
and INITIALBOOT=“0”
... up "after modprobe" sleep 10 INITIALBOOT="0" ...
Adjust the delay from 10 to the appropriate amount needed for your external drive.
Now, update the initramfs image:
xbian@xbian ~ $ sudo xbian-update-initramfs
The system should now boot from external USB drive properly. The only downside is a few additional seconds wait time during boot up.