Solaris backup and restore utilities
This article provides an overview of the native backup and restore utilities available within the Solaris operating system.
Overview of utilities
- Backup Utilities
- /usr/lib/fs/ufs/ufsdump (linked to /usr/sbin/ufsdump)
- /usr/sbin/tar
- /bin/cpio
- /bin/dd
- Restore Utilities
- /usr/lib/fs/ufs/ufsrestore (linked to /usr/sbin/ufsrestore)
- /usr/sbin/tar
- /bin/cpio
- /bin/dd
- Tape Utility
- /bin/mt
Utility Summary
- ufsdump
- performs backups of ufs filesystems
- performs backups of specified files
- able to span multiple tapes
- does not cross file systems
- able to perform backups to remove devices
- ufsrestore
- able to restore interactively
- able to restore from remote devices
- tar
- able to cross filesystems
- Can perform remote dumps and restores with compound commands
- no interactive mode
- does not support multiple tapes
- able to restore singular files
- able to update dump files.
- cpio
- able to cross filesystems
- supports multiple tapes
- dd
- very simple dump of file/device to another file/device
- does not support multiple tapes
- does not cross filesystems
Basic usage
- ufsdump
- this example performs a full backup of c0t0d0s0 and updates the /etc/dumpdates file.
# ufsdump 0uf /dev/rmt/0cn /dev/rdsk/c0t0d0s0
- this example performs an incremental backup and updates /etc/dumpdates
# ufsdump 5uf /dev/rmt/0cn /dev/rdsk/c0t0d0s0
- thisexampleperformsafulldumptoaremotedevice
# ufsdump 0uf hostb:/dev/rmt/0cn /dev/rdsk/c0t0d0s0
special notes: the remote system must have entries for the local host in the root's .rhosts file if dumping to a remote file, the remote file must already exist.
- this example performs a full backup of c0t0d0s0 and updates the /etc/dumpdates file.
- ufsrestore
- this example restores to the current directory
# ufsrestore xf /dev/rmt/0
- thisexamplewillstartufsrestore in interactive mode and restore to the current directory
# ufsrestore if /dev/rmt/0
- thisexampleisfromtheufsrestore man page. It dumps and restores on one command line
# ufsdump 0f - /dev/rdsk/c0t0d0s7 | (cd /home;ufsrestore xf -)
- this example skips to the 3rd dump on the tape and restores to the current directory
# ufsrestore sxf 3 /dev/rmt/0
- this example restores to the current directory
- tar
- this example creates a backup of /usr to tape
# tar cf /dev/rmt/0cn /usr
- this example creates a backup of /opt to file
# tar cf /tmp/opt.tar /opt
- this example extracts from tape
# tar xf /dev/rmt/0
- this example shows the contents of a tar archive from tape
# tar tvf /dev/rmt/0
- this example extracts the /etc/passwd and /etc/shadow files from an archive of /etc from tape
# tar xvf /dev/rmt/0 /etc/shadow /etc/passwd
- this example creates a backup of /usr to tape
- cpio
- this example creates an archive to tape
# find . | cpio -ovt > /dev/rmt/0cn
- thisexamplelistsfilesfrom from tape
# cpio -civt < /dev/rmt/0
- this example extracts files from tape
# cpio -icv < /dev/rmt/0
- this example creates an archive to tape
- dd
- this example dumps files to tape
# dd if=/dev/rdsk/c0t0d0s0 of=/dev/rmt/0cn
- this example extracts files from tape
# dd if=/dev/rmt/0 of=/dev/rdsk/c0t0d0s0
- this example dumps files to tape
- mt
- this example rewinds a tape
# mt -f /dev/rmt/0 rew
- this example rewinds and ejects a tape
# mt -f /dev/rmt/0 rewoffl
- thisexampleretensions a tape (occasionally corrects i/o errors)
# mt -f /dev/rmt/0 retension
- this example rewinds a tape
Documentation Resources
- Useful man pages:
- ufsdump(1M)
- ufsrestore(1M)
- tar(1)
- chroot(1M)
- cpio(1)
- ls(1)
- find(1)
- dd(1M)
- mt(1)
- st(7D)
- archives(4)
- Useful SunSolve SRDB's and InfoDoc's
- How to do a disk-to-diskcopyviaufsdump/tar under Solaris 2.X. Info Docs: 16311
- Primary Boot Disk Emergency Backup and Restore. Info Docs: 20812
- Moving filesystems and boot devices with ufsdump and ufsrestore. Info Docs: 17234
- ufsdump aborts with "SIGSEGV( ) ABORTING!". Symptoms and Resolutions: 10879
- Copying a filesystem using ufsdump w/o a tape drive. Info Docs: 14067
- Central Startup for Remote System Dumps. Info Docs: 20031
- ufsdump remotely not working, cannot connect to tape host. Symptoms and Resolutions: 19168
- Tape drive parameters in device name. Info Docs: 14066
- A ufsdump/ufsrestore tutorial. Info Docs: 21351
- How can you force tar to restore to a relative path? Info Docs: 18015
- how to back up the root partition using "cpio" command. Symptoms and Resolutions: 7031
Troubleshooting
- all utilities
- i/o error
- clean the tape drive
- retension the tape ( mt -f /dev/rmt/? retension)
- tape is bad
- ran dump and nothing is on the tape
- ls -l /dev/rmt* look for any files that are very large and not links example: ufsdump 0f /dev/rmt0cn or ufsdump 0f /dev/rmt/ocn
- i/o error
- ufsdump/ufsrestore
- accessingremote device fails
- local host is not /.rhosts on the remote machine.
- Answering the set owner mode question
- never answer yes It will set the owner of all restored files to root.
- There is no method of keeping this question from being asked.
- accessingremote device fails
- tar
- cd /tmp, did tar xvf and no files are there.
- The archive was done with absolute pathing. Files were restored to their absolute path
- i cannot tar to /dev/diskette
- stop /usr/sbin/vold
- cd /tmp, did tar xvf and no files are there.
- dd
- my filesystem was corrupt, did a newfs and restored from dd archive. Corruption is back.
- dd operates on a block level, corruption was in the archive and put back on the filesystem.
- my filesystem was corrupt, did a newfs and restored from dd archive. Corruption is back.
Sample backup scheme
- Always suggest usingufsdump andufsrestore
- daily backup scheme to local tape
- Do full backup on Sunday
- Do level 5 incremental backups the rest of the week
- this will reduce restore time in the event of disaster recovery
- a level 5 everyday will backup all data newer or modified since Sunday's full backup. Therefore restoring several days worth of incrementals is not nessesary.
- daily backup scheme to local tape
- Steps to take
- gather raw device info.Typicaly from /etc/vfstab. Sometimes customers will have filesystems that aremountedviarc script.
- via /etc/vfstab
- grep rdsk /etc/vfstab|grep -v "#"|awk '{print $2}'
- via mount command
- mount|grep dsk|awk '{print $1}'
- ufsdump will translate the mount point to the raw device
- mount|grep dsk|awk '{print $1}'
- via /etc/vfstab
- perform backups via a script or command line with the following basic syntax. It will perform a level 5 backup of each raw fs in /etc/vfstab, update the /etc/dumpdates file, and log the backups to /var/log/mmdddumplog file.
# for VOL in `grep rdsk /etc/vfstab|grep -v "#"|awk '{print $2}'` > do > echo "starting dump of $VOL" >> /var/log/`date +%m%d`dumplog > ufsdump 5fu /dev/rmt/0cn $VOL >> /var/log/`date +%m%d`dumplog 2>&1 > echo >> /var/log/`date +%m%d`dumplog > done # mt rewoffl
- gather raw device info.Typicaly from /etc/vfstab. Sometimes customers will have filesystems that aremountedviarc script.