BeeJ said:
Backup disks:
a) DVD-DL written with interior drive interior to laptop
b) eSATA drive. waiting to decide before I buy
c) USB drive. 1T WD, 500GB Seagate
d) can purchase whatever I need if I currently do not have
a) Samsung P580 laptop with 320GByte
a) Win XP Pro not installed yet
OK, to avoid doing it from Linux, I had another think about
it, and perhaps if you boot the Windows 7 recovery CD, you can
run "dd" program from there. I use version dd-0.5 here, for
the things I do. I haven't tried a later version yet.
http://www.chrysocome.net/dd
The recovery CD is something you can burn from the System Image
menu. It is the "Create a system repair disc" option.
When you boot with that "system repair disc", there is a
"Command Prompt" option. You get a MSDOS style black window
with command prompt in there.
http://www.123seminarsonly.com/Tips...-Options-System-Image-Recovery_sisimgRes1.jpg
This is the command prompt window you get, while running the
rescue CD as your boot CD. This is what appears after you
select "Command Prompt" in the previous link.
http://itexpertvoice.com/files/2009/12/WinRE-06.png
The prompt is "X:", meaning the OS has booted as the drive
letter X: and stuff in X: is the contents of the CD. So
X: is the temporary OS partition in this environment.
You would put the copy of "dd.exe" on some other disk you
know will be accessible. Say the dd.exe executable was
on drive letter "T:".
You'd type "T:" to get it to CD to T:. And run "dd" from
there.
You use this first. It lists all the disks, in the internal
syntax the OS uses. For example, I have three disks right
now on the computer. They're listed in the same order as
Disk Management would see them.
dd --list
Selecting some lines from there, the disks are numbered in the
same order as in Disk Management. Of course in command prompt,
you can't see that info, as there isn't a GUI to work with. The
fact a size is listed, means "dd" has enough access rights
at the moment, to make a copy. If a size is not listed,
then there is a problem with getting to the partition.
The notation "Partition0", means the ability to access the
disk starting at sector 0. A reference such as "Partition1"
is the first defined partition on the disk, and is a fraction
of the disk contents. When backing up an entire disk, we'll
be using Partition0 notation.
\\?\Device\Harddisk0\Partition0
link to \\?\Device\Harddisk0=DR0
Fixed hard disk media. Block size = 512
size is 500107862016
\\?\Device\Harddisk1\Partition0
\\?\Device\Harddisk2\Partition0
In order to do a backup in this case, I need a destination
disk (external), that holds at least 500,107,862,016 bytes or
in rough round numbers, 500GB. The disk should be a touch
larger, in that I would want to copy the file to an NTFS
partition on another disk. For me here, that means connecting
up a 1TB disk, so there is room for the 500GB file. On the
1TB disk, I would create a single partition of type NTFS.
I would create an empty text file with the name
"I_am_your_backup_disk.txt", so that later, in the Command
Prompt, you can verify which disk you're looking at.
So later, in the Command Prompt, I might try
dir E:
and then I might see a single file
I_am_your_backup_disk.txt (size 0)
That way, I then know my destination for the backup, is
drive letter E:.
So now I'm ready to issue a command to back up the disk.
Now, some arithmetic will be required.
The number 500,107,862,016 is factorable. I actually have
a program off the Internet, which does the factoring for
me, so I'm cheating. In any case, the disk size should be
divisible by 63. (That's in honor of the decades old CHS
definition of disk capacity.) In addition, the disk size
should be divisible by some power of two. In the case
of 500,107,862,016, my factor.exe program shows me this
as the factors of that number.
2000398934016: 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 7 269 1601
So 2**13 or 8192 is also a factor. I can take 8192*3*3*3
as a decent sized block for transferring purposes, and
8192*3*3*3 = 221184 bytes. Dividing 500,107,862,016 by
some 221184 byte blocks, gives a total of 2261049 blocks
of data of that size. The block size should be a multiple
of a sector, which is 512 bytes. 221184 bytes is 432 sectors.
So now, in the command prompt, I'm ready to back up the disk.
I know the drive letter E: is my NTFS destination volume,
with room for a 500GB file. I know how many blocks to transfer
from the source disk. And using "dd --list", I got the name
of the source disk as \\?\Device\Harddisk0\Partition0. The
size is a cue I use, to determine I've got the right disk.
There can be an ambiguity problem, if I own two or more
disks of the same size. But we'll ignore that for now. Your
laptop has a 320GB internal disk, and the external backup
disk is likely a lot larger.
This is the command I issue in command prompt. This copies
raw sectors from Harddisk0, into a 500GB file E:\backup.dd .
dd if=\\?\Device\Harddisk0\Partition0 of=E:\backup.dd bs=221184 count=2261049
That should transfer data at a rate of 30MB/sec to a USB2
external disk drive. If you attempt to transfer without
size parameters, like this, the speed drops to around
13MB/sec, because much smaller transfer blocks are used.
dd if=\\?\Device\Harddisk0\Partition0 of=E:\backup.dd
The other purpose of using "block size" and "count" parameters,
is when you need to transfer an exact amount of data. When
restoring just a portion of the disk for example, you might
need to do that, to prevent overwriting something. It's
good to get in the habit of providing the bs and count parameters.
*******
Now, it's later. You made a mistake and your laptop drive is empty.
You boot the Windows 7 repair disc CD, enter the command prompt
again, and verify the backup file is available.
dir E:
And it lists
I_am_your_backup_disk.txt (size 0)
backup.dd (size 500,107,862,016)
So, we're ready to do the restoration. I check using "dd --list"
that everything is the same as before. I then craft my
restore command as
dd if=E:\backup.dd of=\\?\Device\Harddisk0\Partition0 bs=221184 count=2261049
and my laptop disk now gets loaded from the external backup.dd file.
The command puts out completion information when it finishes, like
2261049+0 records in
2261049+0 records out
and that confirms an equal number and the right number of
"blocks" was transferred from backup.dd to Harddisk0.
If the command completes successfully, you can "exit" the
command prompt, and reboot without the CD in the drive.
Anyway, that's a sector-by-sector backup operation. And
done using the repair CD your laptop can burn for you.
That gives you a command prompt to work from, when the
laptop drive is otherwise empty or damaged.
Your 320GB hard drive will be a different size than
my 500GB example, so the arithmetic will be different
than mine. But there's a good chance 221184 might fit
as a useful transfer size. If you don't have a copy of
"factor.exe", you can try dividing that in first and
see if it's a factor of the entire disk size. Use the
calculator application to work out the numbers.
The reason I use this method, is I've proved to myself
it works. And, the method is independent of the disk
type, the partitions on it, and so on. Even if there
was FreeBSD on the source disk, I could still back it
up. And have a way to recover and put things back,
if I make a mistake in some experiment.
So that's "Step 1", the "make a good backup" step.
Step 2, changing from Dynamic to Basic, can be done
with one of those free programs off the Internet. If
it goes wrong (and it could), you'll have your
"backup.dd" to fall back on. And since it is an
exact copy, we don't have to worry about Acronis
or Macrium refusing to do Dynamic Disk backups.
The dd.exe, just doesn't care what's on there. All
it does, is "copy bytes".
HTH,
Paul