Manual backup and restore
(→Script) |
(use <source> and <code>, wikify slightly) |
||
Line 2: | Line 2: | ||
This was discussed at [http://talk.maemo.org/showthread.php?t=35037 talk.maemo.org]. | This was discussed at [http://talk.maemo.org/showthread.php?t=35037 talk.maemo.org]. | ||
- | |||
==Backup methods== | ==Backup methods== | ||
Line 10: | Line 9: | ||
This script backs up contacts (database and also exports them with osso-addressbook-backup for safety), conversations, calendar, bookmarks, repository and packages list to external memory card's directory Backup which then contains subdirectories named with date and time when the backup was performed. The path is also definable. For example: "Memory_card/Backup/2010-03-03_00-00". It also displays notification during backup, because it was made to be used with [[fcron]]. | This script backs up contacts (database and also exports them with osso-addressbook-backup for safety), conversations, calendar, bookmarks, repository and packages list to external memory card's directory Backup which then contains subdirectories named with date and time when the backup was performed. The path is also definable. For example: "Memory_card/Backup/2010-03-03_00-00". It also displays notification during backup, because it was made to be used with [[fcron]]. | ||
+ | ====Script==== | ||
- | = | + | <source lang="bash"> |
+ | #!/bin/sh | ||
- | + | path=/media/mmc1/Backup/`date +"%F_%H-%M"` | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Making backup..." | ||
+ | |||
+ | mkdir -p "$path"/home/user/.bookmarks | ||
+ | mkdir "$path"/home/user/.calendar | ||
+ | mkdir "$path"/home/user/.osso-abook | ||
+ | mkdir "$path"/home/user/.osso-abook-backup | ||
+ | mkdir "$path"/home/user/MyDocs | ||
+ | mkdir -p "$path"/var/lib/hildon-application-manager | ||
+ | |||
+ | cp /home/user/.bookmarks/MyBookmarks.xml* "$path"/home/user/.bookmarks | ||
+ | cp /home/user/.calendar/calendardb "$path"/home/user/.calendar | ||
+ | cp -r /home/user/.osso-abook/db "$path"/home/user/.osso-abook | ||
+ | cp -r /home/user/.osso-abook-backup/db "$path"/home/user/.osso-abook-backup | ||
+ | cp -r /home/user/.rtcom-eventlogger "$path"/home/user | ||
+ | cp -r /home/user/MyDocs/.documents "$path"/home/user/MyDocs | ||
+ | cp /var/lib/hildon-application-manager/catalogues* "$path"/var/lib/hildon-application-manager | ||
+ | cp /var/lib/hildon-application-manager/packages.backup "$path"/var/lib/hildon-application-manager | ||
+ | |||
+ | echo "osso-addressbook-backup -e "$path"/osso-addressbook-backup" | su - user | ||
+ | |||
+ | run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Backup created" | ||
+ | </source> | ||
===osso-backup (what is backed up by it)=== | ===osso-backup (what is backed up by it)=== | ||
[[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application|osso-backup]] is the default Backup application on the phone. You can use it for "manual" backup, because it produces standard .zip compressed files which can be opened on any system. The list of files that osso-backup backs up can be obtained by making a backup with it and opening these zip files (the list is too long for this wiki page). | [[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application|osso-backup]] is the default Backup application on the phone. You can use it for "manual" backup, because it produces standard .zip compressed files which can be opened on any system. The list of files that osso-backup backs up can be obtained by making a backup with it and opening these zip files (the list is too long for this wiki page). | ||
- | |||
===osso-addressbook-backup=== | ===osso-addressbook-backup=== | ||
Line 54: | Line 52: | ||
echo "osso-addressbook-backup -e /path/file" | su - user | echo "osso-addressbook-backup -e /path/file" | su - user | ||
- | |||
===rsync=== | ===rsync=== | ||
rsync is standard Linux/Unix file and directory synchronization tool. It is in extras repository. An example backup script is shown here: | rsync is standard Linux/Unix file and directory synchronization tool. It is in extras repository. An example backup script is shown here: | ||
- | |||
====Script==== | ====Script==== | ||
- | + | <source lang="bash"> | |
- | + | #!/bin/sh | |
- | + | ||
- | + | if [ `whoami` != "root" ]; then | |
- | + | echo "Please run as root to preserve file ownership." | |
- | + | exit 1 | |
- | + | fi | |
- | + | ||
- | + | dpkg -l > /root/dpkg.txt | |
- | + | ||
- | + | gconftool-2 -R /system/osso/connectivity/IAP > /root/iap.txt | |
- | + | ||
- | + | rsync -avz \ | |
- | + | --numeric-ids \ | |
- | + | --exclude=/dev \ | |
- | + | --exclude=/media \ | |
- | + | --exclude=/mnt/initfs \ | |
- | + | --exclude=/proc \ | |
- | + | --exclude=/sys \ | |
- | + | / \ | |
+ | mypc.example.com:/home/archive/mytablet/ | ||
+ | </source> | ||
- | Change | + | Change <code>mypc.example.com</code> to the IP/hostname of your computer and the target directory to whatever suits you. Don't forget to make the script executable and it must be run as root of course. |
- | The | + | The <code>dpkg -l</code> command makes a list of installed packages and gconftool-2 lists all internet access points (Wi-Fi and GPRS), so you can copypaste details back later. |
==Automatic/periodic/scheduled backups== | ==Automatic/periodic/scheduled backups== | ||
Maemo currently does not provide an option to schedule backups nor does the osso-backup have interface to be run from command line and thus be scheduled. So the backup scripts needs to be written manually. You get them here (or you write your own), but to schedule them periodically you need fcron or similar. The scheduling part is covered in detail on [[fcron]] wiki page. With combining these two wiki pages you can have fully working automatic backups. | Maemo currently does not provide an option to schedule backups nor does the osso-backup have interface to be run from command line and thus be scheduled. So the backup scripts needs to be written manually. You get them here (or you write your own), but to schedule them periodically you need fcron or similar. The scheduling part is covered in detail on [[fcron]] wiki page. With combining these two wiki pages you can have fully working automatic backups. | ||
- | |||
==Wipe methods== | ==Wipe methods== | ||
Wiping the device clean is achieved with reflashing. This is covered in the [[updating the firmware]] article and similar. | Wiping the device clean is achieved with reflashing. This is covered in the [[updating the firmware]] article and similar. | ||
- | |||
==Restore methods== | ==Restore methods== | ||
Line 103: | Line 99: | ||
Restoring entries below were made by the author of the rsync backup script, but they are very similar to any restoring process. Also don't forget that the applications which use the files you are restoring need to be closed/stopped/killed. | Restoring entries below were made by the author of the rsync backup script, but they are very similar to any restoring process. Also don't forget that the applications which use the files you are restoring need to be closed/stopped/killed. | ||
- | |||
===Contacts=== | ===Contacts=== | ||
- | You need to create a dummy entry before restoring contacts. Run the contacts application first and create a contact, anything will do. Then exit the contacts application and restore the files in | + | You need to create a dummy entry before restoring contacts. Run the contacts application first and create a contact, anything will do. Then exit the contacts application and restore the files in <code>/home/user/.osso-abook/db</code> and <code>/home/user/.osso-abook-backup/db</code>. |
- | + | ||
===Bookmarks=== | ===Bookmarks=== | ||
- | Close the browser first, then simply copy the files from your archive to the phone to | + | Close the browser first, then simply copy the files from your archive to the phone to <code>/home/user/.bookmarks</code>. The bookmarks should appear immediately. |
- | + | ||
- | + | ||
+ | The bookmarks are saved in <code>MyBookmarks.xml</code> file, so this is the one that you really need, other files are thumbnails and the like. | ||
===Calendar=== | ===Calendar=== | ||
- | The calendar entries are in the file | + | The calendar entries are in the file <code>/home/user/.calendar/calendardb</code>. |
- | + | ||
===Repository and packages list=== | ===Repository and packages list=== | ||
- | These are located in | + | These are located in <code>/var/lib/hildon-application-manager</code>, files <code>catalogues.backup</code>, <code>catalogues2.backup</code> and <code>packages.backup</code>. These can't be just copied back, because osso-backup uses them in its own way (asks which applications should be reinstalled), but you can use them as list of what you had installed. |
- | + | ||
===IM/Chat/SIP accounts=== | ===IM/Chat/SIP accounts=== | ||
- | These accounts are stored in /var/lib/gconf/apps/telepathy/mc/accounts. It's probably a good idea to set your presence to "off" before trying to restore. | + | These accounts are stored in <code>/var/lib/gconf/apps/telepathy/mc/accounts</code>. It's probably a good idea to set your presence to "off" before trying to restore. |
- | + | ||
===E-mail (Modest)=== | ===E-mail (Modest)=== | ||
- | Restoring /home/users/.modest and /var/lib/gconf/apps/modest doesn't work properly. I had to create the email server settings, but at least the old email did come back. Actually, I think it might have worked, but the mailbox didn't appear. I discovered that the old mailboxes were there when I looked for them in Menu->View and chose one of the mailboxes | + | Restoring <code>/home/users/.modest</code> and <code>/var/lib/gconf/apps/modest</code> doesn't work properly. I had to create the email server settings, but at least the old email did come back. Actually, I think it might have worked, but the mailbox didn't appear. I discovered that the old mailboxes were there when I looked for them in Menu->View and chose one of the mailboxes. |
- | + | ||
- | + | ||
+ | The rabbit hole goes deeper. I didn't notice there was a problem after restoring, as I use a special email address for my tablet and it didn't get any email for a while, so I was quite happy accessing my recovered emails. When a new email arrived, it killed modest, and I was unable to restart it - the UI would show up briefly before modest died. The only way I could make modest run without crashing was to rename <code>/home/user/.modest</code> to <code>/home/user/.modest.xxx</code>. | ||
===RSS Feeds=== | ===RSS Feeds=== | ||
- | Close RSS application and copy files to /home/user/.osso_rss_feed_reader. | + | Close RSS application and copy files to <code>/home/user/.osso_rss_feed_reader</code>. |
- | + | ||
===Wi-Fi and GPRS access points=== | ===Wi-Fi and GPRS access points=== | ||
You'll have to manually re-enter them, but you can copypaste details from the file created with rsync backup script (iap.txt). | You'll have to manually re-enter them, but you can copypaste details from the file created with rsync backup script (iap.txt). | ||
- | |||
===Other=== | ===Other=== | ||
Line 153: | Line 140: | ||
====gPodder==== | ====gPodder==== | ||
- | Close gPodder and copy its config directory to /home/user/.config/gpodder. | + | Close gPodder and copy its config directory to <code>/home/user/.config/gpodder</code>. |
- | + | ||
====OpenVPN Applet==== | ====OpenVPN Applet==== |
Revision as of 07:51, 12 July 2010
There are several scenarios where you might want to manually backup and restore your phone. Using manual methods (as opposed to using osso-backup) is convenient for advanced users (to have more control over their phone), scheduling backups with fcron and the like, starting from scratch (if you want to wipe the phone and restore file-by-file) - because osso-backup can backup also problematic files.
This was discussed at talk.maemo.org.
Contents |
Backup methods
Copying
This script backs up contacts (database and also exports them with osso-addressbook-backup for safety), conversations, calendar, bookmarks, repository and packages list to external memory card's directory Backup which then contains subdirectories named with date and time when the backup was performed. The path is also definable. For example: "Memory_card/Backup/2010-03-03_00-00". It also displays notification during backup, because it was made to be used with fcron.
Script
#!/bin/sh path=/media/mmc1/Backup/`date +"%F_%H-%M"` run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Making backup..." mkdir -p "$path"/home/user/.bookmarks mkdir "$path"/home/user/.calendar mkdir "$path"/home/user/.osso-abook mkdir "$path"/home/user/.osso-abook-backup mkdir "$path"/home/user/MyDocs mkdir -p "$path"/var/lib/hildon-application-manager cp /home/user/.bookmarks/MyBookmarks.xml* "$path"/home/user/.bookmarks cp /home/user/.calendar/calendardb "$path"/home/user/.calendar cp -r /home/user/.osso-abook/db "$path"/home/user/.osso-abook cp -r /home/user/.osso-abook-backup/db "$path"/home/user/.osso-abook-backup cp -r /home/user/.rtcom-eventlogger "$path"/home/user cp -r /home/user/MyDocs/.documents "$path"/home/user/MyDocs cp /var/lib/hildon-application-manager/catalogues* "$path"/var/lib/hildon-application-manager cp /var/lib/hildon-application-manager/packages.backup "$path"/var/lib/hildon-application-manager echo "osso-addressbook-backup -e "$path"/osso-addressbook-backup" | su - user run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Backup created"
osso-backup (what is backed up by it)
osso-backup is the default Backup application on the phone. You can use it for "manual" backup, because it produces standard .zip compressed files which can be opened on any system. The list of files that osso-backup backs up can be obtained by making a backup with it and opening these zip files (the list is too long for this wiki page).
osso-addressbook-backup
It is an executable which exports (or imports) address book to a vCard v3.0 format. It is used by osso-backup, but it can also be manually executed which is great for making a backup. You have to execute it as user "user".
osso-addressbook-backup -e /path/file
And if you're executing it from a root terminal:
echo "osso-addressbook-backup -e /path/file" | su - user
rsync
rsync is standard Linux/Unix file and directory synchronization tool. It is in extras repository. An example backup script is shown here:
Script
#!/bin/sh if [ `whoami` != "root" ]; then echo "Please run as root to preserve file ownership." exit 1 fi dpkg -l > /root/dpkg.txt gconftool-2 -R /system/osso/connectivity/IAP > /root/iap.txt rsync -avz \ --numeric-ids \ --exclude=/dev \ --exclude=/media \ --exclude=/mnt/initfs \ --exclude=/proc \ --exclude=/sys \ / \ mypc.example.com:/home/archive/mytablet/
Change mypc.example.com
to the IP/hostname of your computer and the target directory to whatever suits you. Don't forget to make the script executable and it must be run as root of course.
The dpkg -l
command makes a list of installed packages and gconftool-2 lists all internet access points (Wi-Fi and GPRS), so you can copypaste details back later.
Automatic/periodic/scheduled backups
Maemo currently does not provide an option to schedule backups nor does the osso-backup have interface to be run from command line and thus be scheduled. So the backup scripts needs to be written manually. You get them here (or you write your own), but to schedule them periodically you need fcron or similar. The scheduling part is covered in detail on fcron wiki page. With combining these two wiki pages you can have fully working automatic backups.
Wipe methods
Wiping the device clean is achieved with reflashing. This is covered in the updating the firmware article and similar.
Restore methods
Restoring is the hardest part in this process and you need to have a little knowledge about your system, otherwise backup and restore rather with osso-backup. It is a good choice to perform a full backup after a successful setup/reflash/restore.
Restoring entries below were made by the author of the rsync backup script, but they are very similar to any restoring process. Also don't forget that the applications which use the files you are restoring need to be closed/stopped/killed.
Contacts
You need to create a dummy entry before restoring contacts. Run the contacts application first and create a contact, anything will do. Then exit the contacts application and restore the files in /home/user/.osso-abook/db
and /home/user/.osso-abook-backup/db
.
Bookmarks
Close the browser first, then simply copy the files from your archive to the phone to /home/user/.bookmarks
. The bookmarks should appear immediately.
The bookmarks are saved in MyBookmarks.xml
file, so this is the one that you really need, other files are thumbnails and the like.
Calendar
The calendar entries are in the file /home/user/.calendar/calendardb
.
Repository and packages list
These are located in /var/lib/hildon-application-manager
, files catalogues.backup
, catalogues2.backup
and packages.backup
. These can't be just copied back, because osso-backup uses them in its own way (asks which applications should be reinstalled), but you can use them as list of what you had installed.
IM/Chat/SIP accounts
These accounts are stored in /var/lib/gconf/apps/telepathy/mc/accounts
. It's probably a good idea to set your presence to "off" before trying to restore.
E-mail (Modest)
Restoring /home/users/.modest
and /var/lib/gconf/apps/modest
doesn't work properly. I had to create the email server settings, but at least the old email did come back. Actually, I think it might have worked, but the mailbox didn't appear. I discovered that the old mailboxes were there when I looked for them in Menu->View and chose one of the mailboxes.
The rabbit hole goes deeper. I didn't notice there was a problem after restoring, as I use a special email address for my tablet and it didn't get any email for a while, so I was quite happy accessing my recovered emails. When a new email arrived, it killed modest, and I was unable to restart it - the UI would show up briefly before modest died. The only way I could make modest run without crashing was to rename /home/user/.modest
to /home/user/.modest.xxx
.
RSS Feeds
Close RSS application and copy files to /home/user/.osso_rss_feed_reader
.
Wi-Fi and GPRS access points
You'll have to manually re-enter them, but you can copypaste details from the file created with rsync backup script (iap.txt).
Other
gPodder
Close gPodder and copy its config directory to /home/user/.config/gpodder
.
OpenVPN Applet
If you use the OpenVPN Applet the configuration files are stored in /etc/openvpn
. After you copy them be sure to have them owned by user "root", group "root", and protected so that user (root) has rw privileges, and no one else has anything.