Dmitry Mityugov wrote:


I am looking for a program that would let me image HDDs in my test lab and
restore them, either completely or just a few first partitions. I don't mind
buying it (although freeware would be preferred of course) but I don't want
to buy an OS to host this program on, so I would like to use FreeBSD for
this project. I have modest experience with versions 4.7, 4.8 and 5.1 of
FreeBSD and no bandwidth to stay current with version 5.1, so 5.1 released
on the CDs is the latest version that I have. It works reasonably well in my
test lab; it panics on reboot (shutdown -r) when I enable MP support on a
test server with two "server Tualatin" processors but I can live with the
standard kernel just fine.

The data I am going to image are just test servers that store no valuable
data so strictly speaking this is not vital data to me, I need this program
just to speed up the setup, not for backup purposes (and to get rid of the
HDDs in removable racks with different versions of various operating systems
lying everywhere in my lab). However, I would prefer not to use beta
software in this project because I need to use the time I get because of the
improvement in speed for purposes other than helping the author find and fix
bugs in the software. The software should be able to image partitions of any
type, not just DOS/NTFS/etc like most commercial software does, compress the
image well, because a typical test server in my lab occupies 5-15 GB that
need to be imaged, and be smart enough to not compress the remaining free
space on the disks (the typical HDD sizes in my lab start at 80 GB so I'd
definitely not want to image the free space). The current number of servers
is about 20 and of course it tends to grow.

It would be nice to be able to image SCSI disks as well but almost all my
HDDs except 2 are IDE. It would also be nice to be able to restore not the
entire disk but just several partitions from it (yes, I believe I understand
the possible consequences) but this is not critical for me. I searched the
Packages and Ports collections, the documentation and the Internet
(including archives of these lists) but found nothing that would (a) work on
FreeBSD, (b) is not in the beta state, (c) can image everything and (d)
compresses the images and does not image the free space. I suspect that
there is a simple approach that does not require a third-party program at
all (why did I get so many links to DD command? <g>) but I cannot figure out
how to image the first 15 GB off a 80 GB HDD with DD and restore it to
another (larger or smaller) HDD. I don't mind performing some arithmetic
like in Greg Lehey's "The Complete FreeBSD" in the chapter about disks, I
think I just need some enlightenment.

Thank you in advance for any help you can provide

P.S. I am not on the list, don't forget to copy me.


[EMAIL PROTECTED] mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Hello Dmitry,

I don't know if my solution will fit your needs perfectly, but here is how I solved the same problem for my lab ...

I have eight machines, all running five flavors of Windows ( 98SE, Me, 2000, XP Pro, XP Home ) on a single disc. Each OS is on it's own partition as follows:

ad0s1 = Win98SE
ad0s2 = WinMe
ad0s3 = Win2000
ad0s4 = Logical Partition
ad0s5 = Win XP Pro
ad0s6 = Win XP Home

First off, I use LiveCD ( ) and I store my backups on a server running FreeBSD 4.8-RELEASE. The only downside to LiveCD is that the keyboard is not mapped to my US based keyboard. To fix this, the first command I enter is 'kbdcontrol -l ../usr/share/syscons/keymaps/us.iso.kbd'.

To backup any of my partitions I use the following command, 'dd bs=2097152 if=/dev/ad0s? | gzip > /mounted/drive/os_name.gz'
To backup the entire drive I would use, 'dd bs=2097152 if=/dev/ad? | gzip > /mounted/drive/os_name.gz'

To restore any of my partitions I use the following command, 'cat os_name.gz | gunzip -c | dd bs=2097152 of=/dev/ad0s?'
To restore the entire drive I would use, 'cat os_name.gz | gunzip -c | dd bs=2097152 of=/dev/ad?'

One thing you must be careful about when restoring partitions. If you have OSes installed on the logical partitions as I do, you need to create /dev/ad0s5, /dev/ad0s6 and so on for each logical partition you have. A drive is only allowed 4 primary partitions but any number of logical partitions. To create /dev/ad0s5 and /dev/ad0s6 for WinXP Pro and WinXP Home I do the following;

cd /dev;
./MAKEDEV ad0s5;
./MAKEDEV ad0s6;

And just for yucks, before I create a new test machine I zero the drive so I don't backup useless data, 'dd bs=2097152 if=/dev/zero of=/dev/ad0 count=??g'

This system allows me to refresh any partition in about 5 minutes. Creating the backups takes a little longer as I'm gziping the data over the network, but I create new machines far less than I break them and need to restore.

As for your specific requirements ...

I have not tried this setup with a scsi disk so I have no idea if it will work.

You can backup any type of file system as dd makes a block for block copy of the entire partition or disk. As well, backing up the entire drive also backs up the MBR, so any boot manager is intact after a full system restore.

The amount of empty space does not seem to make a difference on the size of the .gz file created. I have partitions ranging from 4 GB to 20 GB and the file size for a patched install of Win2000 is around 1.2GB. I believe this is because I zero the drives before turning them into test machines. If you have data on the disc, dd will back it up and your backup files size will be larger.

One of the flaws in my system is that I cannot restore to any other drive than the one I imaged. This is because drive geometry differs from drive to drive. I have never tried to restore to another drive, but my understanding is that it will probably not work. Anyone have data regarding this point?

I hope you find some of this information helpful.
If you have any specific questions regarding my setup that I have not covered here, let me know.

Good luck,

_______________________________________________ [EMAIL PROTECTED] mailing list To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to