THE DD COMMAND
The dd command copies an amount of data block by block. The most basic syntax is:
Format
# dd if=xxxxx of=yyyyy bs=zzzzzz
( Where if=xxxxx is the source, of=yyyyy is the target and bs= both read and write zzzzz bytes at a time )
Examples:
Copy a hard disk partition to another hard disk:
# dd if=/dev/hda2 of=/dev/hdb2 bs=4096 conv=notrunc,noerror
If hdb2 doesn't exist, dd will start at the beginning of the disk, and create it. Be careful with order of if and of. You can write a blank disk to a good disk if you get confused. If you duplicate a smaller partition to a larger one, using dd, the larger one will now be formatted the same as the smaller one. And there will be no space left on the drive. The way around this is to use
rsync
To make an iso image of a CD: This duplicates sector for sector. MyCD.iso will be a hard disk image file of the CD.
dd if=/dev/hdc of=/home/sam/myCD.iso bs=2048 conv=sync,notrunc
mkdir /mnt/myCD mount -o loop /home/sam/myCD.iso /mnt/myCD
# dd if=/dev/hda of=/dev/hdb conv=notrunc,noerror
Copy a disk partition to a file on a different partition. (Do not copy a partition to the same partition !)
# dd if=/dev/hdb2 of=/home/test/partition.image bs=4096 conv=notrunc,noerror
Restore a disk partition from an image file:
# dd if=/home/test/partition.image of=/dev/hdb2 bs=4096 conv=notrunc,noerror
Mount a existing dd image:
# mount -o loop /path/your-dd-image /mnt/test
Copy MBR only of a hard drive:
# dd if=/dev/hda of=/home/test/MBR.image bs=446 count=1
Reverse:
# dd if=/home/test/MBR.image of=/dev/hda bs=446 count=1
Wipe a hard drive of all data ( you would want to boot from a cd to do this ):
# dd if=/dev/zero of=/dev/hda conv=notrunc
Make an iso image of a CD:
# dd if=/dev/hdc of=/home/test/TEST.iso bs=2048 conv=notrunc
( CD sectors are 2048 bytes, so this copies sector for sector. )
Copy a floppy disk:
# dd if=/dev/fd0 of=/home/test/floppy.image conv=notrunc
You can back up your MBR ( including partition table ):
# dd if=/dev/hda of=mbr.bin count=1
Put this on a floppy you make with:
# dd if=boot.img of=/dev/fd0
Boot from the floppy and restore the MBR:
# dd if=mbr.bin of=/dev/hda count=1
How to check dd progress
===================
By the way, if you need to restore a large image file and want to see what the progress is, you can use the following command from a new terminal session:
kill -USR1 $pid
You can find dd command's pid by using ps and grep commands like:
ps -A | grep dd
If you want to check an automatic progress, use "watch" command:
watch kill -USR1 $pid
0 Comments:
Post a Comment