How Do I make Linux filesystem backup with dd?
dd command is all in one tool to Copy a file, converting and formatting according to the options. Since Linux (and other UNIX versions) understand everything as a file dd works like wonders. Please note dd is not created specifically for a backup purpose but it is real handy tool. Few months back I was new to HP-UX and I was unable to understand the HP-UX tape devices then I used dd to create backup. Later when I got information of tape device name I switched to age old tar and other dump commands
dd command syntax
The syntax of dd is as follows:
dd if=INPUT-FILE-NAME of=OUTPUT-FILE-NAME
dd command examples
So to backup /dev/hda3 under Linux command should be as follows i.e. linux filesystem backup with dd:
# dd if=/dev/hda3 of=/backup/myhostname-15-nov-05-hda3.bak.dd
However if you are running planning to run dd in background and if you wish to kill it or want to sending a SIGUSR1 single to a running dd process then you need to start dd as follows (this is really useful stuff):
# dd if=/dev/hda3 of=/backup/myhostname-15-nov-05-hda3.bak.dd; dpid=$!
Now use kill command as follows:
# kill -USR1 $dpid; sleep 5; kill $dpid
dd command to backup boot loader / MBR
dd can be use to backup your boot loader too (if you install a Windows after Linux it will destroy grub/lilo boot loader):
# dd if=/dev/hdX of=/backup/mbr.bak bs=512 count=1
You can restore MBR with the following dd command:
# dd if=/backup/mbr.bak of=/dev/hdX bs=512 count=1
Note replace hdX with your actual device name. However I prefer to use grub-install.
Please note that dd is also capable of reading tapes that were created on other UNIX or written in a format other than Unix (like Windows 2000 server).
Here is one more practical example for Solaris UNIX:
To copy all but the label from disk to tape i.e. copy data in 512 KiB blocks between a disk and a tape, but do not save or restore:
# (dd bs=4k skip=1 count=0 && dd bs=512k) </dev/rdsk/c0t1d0s2 >/dev/rmt/0
Copy from tape back to disk, but leave the disk label alone (restore):
# (dd bs=4k seek=1 count=0 && dd bs=512k) < /dev/rmt/0 >/dev/rdsk/c0t1d0s2
Backing up entire disk/partition with dd command
Backup /dev/hda to /dev/hdb:
# dd if=/dev/hda of=/dev/hdb conv=noerror,sync
Where,
- /dev/hda: Source disk
- /dev/hdb: Target disk
- sync: Use synchronized I/O for data and metadata
- noerror: Continue copy operation after read errors
dd is an easy to use (real life saver) command. Read the man page of dd for more information.
$ man dd
You may also be interested in other helpful articles:
- Understanding UNIX / Linux filesystem Superblock
- Take action or execute a command based upon shell script name
- Surviving a Linux Filesystem Failures
- Repairing ReiserFS file system with reiserfsck
- Bash shell script tip: Run commands from a variable
Leave a Reply
We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!
Tags: Backup, command_syntax, dd_command, handy_tool, Linux, linux_command, linux_filesystem, UNIX



Recent Comments
Today ~ 15 Comments
Today ~ 51 Comments
Today ~ 4 Comments
Today ~ 14 Comments
Today ~ 8 Comments