Making a backup

From Sharpfin
Revision as of 00:00, 18 October 2007 by Philipp (talk | contribs)
Jump to navigation Jump to search

Making a backup

The reciva module has onboard NAND flash which is used to store the software. The flash is split into several partitions, here's the layout of my IMP box:

# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00004000 00004000 "NAND BootAgent"
mtd1: 000fc000 00004000 "Linux Kernel"
mtd2: 00d00000 00004000 "Root"
mtd3: 00100000 00004000 "Config"
mtd4: 00100000 00004000 "Debug"
mtd5: 00000000 00004000 "Data"

A simple backup mechanism is storing the raw contents of the block devices. I've been told that simply using cat or cp is not safe on NAND devices, but a better alternative exists: the 'nanddump' tool.

Via ssh

If you've got ssh running, the following is a method of creating a back of the partitions. Run these commands on another machine on the network where you want to store the backups:

$ ssh root@<address-of-the-box> "nanddump /dev/mtd/0 -" > backup/mtd0

Repeat the command for each flash partition, increasing the 0 to 5.

Via telnet

If you are working through telnet, you will need to dump the partitions to /tmp or a mounted drive

$ mkdir /tmp/x
$ smbmount //server/share /tmp/x -ousername=username,password=password
$ nanddump /dev/mnt/0 /tmp/x/mtd0

Via the Webserver

Comming soon: nand backup via the webserver


Restoring

With these saved images, you can perform a restore of your radio if everything goes wrong. Check the Unbricking page for more information.

Restoring the backup might be also possible using the 'nandwrite' utility. I've not tried this myself, and I'm quite sure strange things will happen while writing the flash image while the partition is mounted. Use at your own risk, and feel free to write down your experiences here.