use of the DD command


 
Thread Tools Search this Thread
Special Forums Hardware Filesystems, Disks and Memory use of the DD command
# 1  
Old 07-24-2002
use of the DD command

i want to clone a harddisk with the DD command. I need two
full identik Harddisk insert in my system. How must i proceed
to clone my disk?
# 2  
Old 07-24-2002
Following found on sunsolve.sun.com. Searched for 'clone disk':




The following infodoc/SRDB assumes a PATH variable that contains /usr/sbin and
/usr/bin. For commands or files that normally exist outside of these common
directories, full paths are specified.

How to Clone a Boot Disk using the "dd" command.

If the precautions below aren't followed, dd is not the most reliable method of copying
OS filesystems. But it is the quickest.
Other methods include ufsdump/ufsrestore, tar, cpio and of course installing
OS from the CDs or from a Jumpstart server.

In order to reduce possibilities of a corrupted copy, the following precautions should be
taken:

1. Entire disk should be in an idle state (unmounted). Best way to accomplish this is
to boot from CDROM, then attempt to clone the disks.

Dd copies raw data in blocksize chunks. If the filesystem being copied is active
(files are being written, modified and possibly relocated by the OS) while dd is
copying the raw data, the copy will be corrupted. Dd has no way of locking the
filesystem during copy, so it is imperative that dd is the only process using the
disk.

2. The destination disk has to be identical to the source disk (including model
number and geometry). This is because dd copies the entire disk image (including
the label {vtoc}). So, if a 9Gb Seagate drive was dd'd to a 36Gb IBM drive, then
after the operation, the 36Gb IBM drive would show up as a Seagate 9Gb and there
is no easy way to reclaim the missing space.

3. Hardware config. of the cloned machines must be identical to the source machine.
HW platform (uname -i), location of the disk controllers, video cards, etc., has
to be identical.

4. Make sure that slice 2 on source and destination drive spans the entire disk.

NOTE:

Often a question comes up about what dd does with bad disk blocks. Here is an
explanation:

Dd doesn't copy bad blocks because it actually copies logical blocks,
not physical ones. And we're hoping here, at least, that the bad blocks
have already been mapped out by the disk controller to somewhere where they
can't harm anyone. Bad block information is hidden in the disk itself.
The OS maintains a bad block list, because it is still "capable" of supporting
vintage SMD and IPI drives, which did not manage this internally. However, all drives
that we use now do internal management of bad block lists, and these lists are
hidden from the system.

The Procedure:

1. Bring the machine down (init 0 or init 5) and power down.

2. Install disk to be used as a destination for the cloning.

3. Power up and insert a Solaris OS CD (in multi-volume OS use OS disk 1 of 2).

4. Boot from the CD (boot cdrom -s)

5. Use the dd command to copy the master disk to the clone disk.

# dd if=/dev/rdsk/cXtXdXs2 of=/dev/rdsk/cYtYdYs2 bs=blocksize

if=/dev/dsk/cXtXdXs2 Represents the master disk device as the input
device.

of=/dev/dsk/cYtYdYs2 Represents the clone disk device as the output
device.

We are assuming here that slice (partition) 2 spans
the entire drive.

bs=blocksize Block size. Changing blocksize will change speed
of the procedure. Bigger blocks mean faster copy.
That number is limited by amount of virtual memory
on the machine. Must be a multiple of 512.
Good starting number is 1024k (1Mb).

Example:
# dd if=/dev/rdsk/c1t1d0s2 of=/dev/rdsk/c1t4d0s2 bs=1024k

6. On the cloned disk, fsck all slices containing filesystems.

7. Bring the machine down (halt) and remove the cloned disk.
It can now be used on another identical machine (or stored as a backup drive).
In order to be able to boot from the cloned disk, it must be placed at the same
address (target) as the original.

Note:
When the cloned disk is used on another machine, the best way to change the IP addr,
hostname and other system parameters is to boot into singleuser mode, then run
sys-unconfig command. During the next boot you will be asked to enter the new parameters.

Keywords: configuration, configured, configure, copy

Formerly InfoDoc 1794
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Another one line command where I'd like to determine if Ubuntu or Red Hat when running command

Hello Forum, I'm making very good progress on my report thanks to the very helpful people on this forum. I've been able to successfully create my report for my Red Hat servers. But I do have a few ubuntu servers in the mix and I'd like to capture some data from them when an ssh connection is... (8 Replies)
Discussion started by: greavette
8 Replies

2. AIX

I'm facing problem with rpm command, when running the command and appears this error:

exec(): 0509-036 Cannot load program /usr/opt/freeware/bin/rpm because of the following errors: 0509-022 Cannot load module /opt/freeware/lib/libintl.a(libintl.so.1). 0509-150 Dependent module /opt/freeware/lib/libiconv.a(shr4.o) could not be loaded. 0509-152 Member... (4 Replies)
Discussion started by: Ohmkar
4 Replies

3. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

4. Shell Programming and Scripting

SH script, variable built command fails, but works at command line

I am working with a sh script on a solaris 9 zone (sol 10 host) that grabs information to build the configuration command line. the variables Build64, SSLopt, CONFIGopt, and CC are populated in the script. the script includes CC=`which gcc` CONFIGopt=' --prefix=/ --exec-prefix=/usr... (8 Replies)
Discussion started by: oly_r
8 Replies

5. UNIX for Dummies Questions & Answers

passing command output from one command to the next command in cshell

HI Guys, I hope you are well. I am trying to write a script that gets executed every time i open a shell (cshell). I have two questions about that 1) I need to enter these commands $ echo $DISPLAY $ setenv $DISPLAY output_of_echo_$display_command How can i write a... (2 Replies)
Discussion started by: kaaliakahn
2 Replies

6. UNIX for Advanced & Expert Users

unix command : how to insert text at the cursor location via command line?

Hi, Well my title isn't very clear I think. So to understand my goal: I have a script "test1" #!/bin/bash xvkbd -text blabla with xbindkeys, I bind F5 key in order it runs my test1 script So when I press F5, test1 runs. I'm under Emacs/Vi and I press F5 in order to have "blabla" be... (0 Replies)
Discussion started by: xib.be
0 Replies

7. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

8. AIX

AIX:Command to get netaddress/subnet address command in IPv4/IP6

AIX:Command to get netaddress/subnet address command in IPv4/IP6 Can anybody help us with a command to retrieve netaddress/subnet address command in IPv4/IP6 on aix machine. net/subnet address is in the format 172.16.212.0(signifies all 255 machines in an IPv4 network) (2 Replies)
Discussion started by: rookie8278
2 Replies

9. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

10. SuSE

inconsistent ls command display at the command prompt & running as a cron job

Sir, I using the following commands in a file (part of a bigger script): #!/bin/bash cd /opt/oracle/bin ls -lt | tail -1 | awk '{print $6}' >> /tmp/ramb.out If I run this from the command prompt the result is: 2007-05-16 if I run it as a cron job then... (5 Replies)
Discussion started by: rajranibl
5 Replies
Login or Register to Ask a Question