Using partimage to clone hard disks


Introduction


Purpose:

In this HOWTO I'll explain the process of cloning hard disks over a LAN using freely-available Linux tools. The original purpose of this document was to assist other IT/support professionals within the company that I work for, but in the spirit of Open Source and the sharing of information, as it got more detailed I decided to take the extra step and contribute it to the IT community at large by posting it on the web. (Also, I did this because thumbnailed images don't work well in an email-circulated PDF.) There are other pages on the web that cover this, but this document assumes no prior knowledge of Linux. It does assume (but doesn't require) some familiarity with Norton Ghost.

This method of disk cloning attempts to get past certain limitations of Norton Ghost. One of these is licensing. For occasional or light use, it doesn't always make sense to purchase a license for Ghost. Another, more important issue, is that the Ghost Boot Wizard includes only a few drivers for common network card chipsets. While it is possible to get other drivers, many new network cards simply don't have DOS-based drivers anymore. By using Linux, there is no need to have several sets of boot disks for different network cards, and there is a much stronger chance that network functionality will "just work" upon booting the machine.


Cons:

User-friendliness - Norton Ghost is a much more complete and mature application than partimage, with more features, a friendlier interface, and good support. This method is not as intuitive as Ghost, and might be a bit confusing the first time it's used, but once you've done it a couple of times it's really not difficult at all.

No multicasting - One of the coolest things about Ghost is multicasting, which partimage doesn't do. (yet)



Pros:

Cost - Every tool we'll use here costs nothing. It's not shareware or even freeware; it's Open Source. Free to copy, distribute, and modify.

Hardware support - By using a "Live CD" distribution of Linux, we benefit from the regularly-released and updated hardware support of a full mainstream server/desktop operating system. There is no digging for network card or SCSI/IDE drivers. The OS either supports it right now or you can be sure it will within a very short time. There's no dependency on antiquated DOS drivers that a hardware vendor may or may not see the merit in creating and releasing.

Experience - While it's not a direct benefit for the task at hand, if this is your first exposure to Linux for system building, backup and recovery, you'll immediately see other uses for these tools.


The Procedure


The Tools:

fdisk - For creating partitions. (This is similar, but not the same as the DOS fdisk that you may be used to.)

partimage - This is the client-side application for the cloning procedure.

partimaged - The server component.

OpenSSH - The means by which the two components communicate over the network.

qtparted - A GUI application for resizing partitions.

Knoppix - A full Linux operating system completely contained on a bootable CD. It boots and runs directly from the disc, and also happens to contain all of the tools mentioned above, among many others.


Get Knoppix!

The first thing you'll need to do is download and burn a copy of the Knoppix ISO. There is a CD and a newly-developed DVD version of this. In this article I'll be using the CD version, but either one should work fine. Knoppix was originally developed in Germany by Klaus Knopper, and it can be downloaded from his website or one of the mirrors listed at this location: KNOPPIX - Mirrors. (Make sure you get the English version, which will have a name like "KNOPPIX_V3.9-2005-05-27-EN.iso".) Currently, Knoppix is in version 3.9. Releases happen very often, and since I already have it downloaded I'll be using version 3.6 here. All of the required tools are the same in recent versions of Knoppix.

Once it's downloaded, just burn it to a CD using the application of your choice. If you're not familiar with burning ISO images, you can check out the Downloading FAQ. (In Roxio Easy CD creator, just click "File," "Record CD from CD Image") You'll want at least two copies unless you have a permanent Linux server.


Set up the server...

This is the most "involved" part of using this method. If you're going to do this on any kind of a regular basis, it would be more efficient to use a permanent Linux server or at least to have a dedicated machine that stays booted into Knoppix for this purpose. That way, you can store the disk images directly on the server and the process will be much faster. (I generally use my Linux workstation for this. You can use any breed of Linux to set up a permanent server, as long as your versions of partimage and partimaged are the same. SuSE, Redhat, Mandriva, Xandros, etc. are all fine for this. I use Debian.)

In this section I will show you how to set up a temporary server and a "semi-permanent" server. Semi-permanent is twice as fast, but you will be erasing that machine's hard disk. The temporary method doesn't touch the machine's hard drive. (It doesn't even require you to have one.) If at all possible though, I definitely recommend going with Method 2, the "semi-permanent" way, if you've got an extra machine or a "scratch" hard disk.

Whichever method you are using, start by booting up a spare machine using your Knoppix CD. This machine will be referred to as "server' for the rest of this document. You will see a screen similar to this one:



At the bottom of the screen is a prompt that reads,
boot:

At that prompt, type:
knoppix 2
(enter)

(Type fast - there is a timeout period!)

Normally, you would just press enter here or just wait a few seconds, but by typing that command we will be bypassing the GUI desktop, since we won't be using that until later. Knoppix will begin booting, detecting your hardware, and getting itself onto the network. After a short time, your screen will look like this: (If you see something about an "undefined mode number," don't worry about it. It just means that the VGA console doesn't like your video card. We don't need VGA right now anyway.



By default, Linux will blank the screen every few minutes. We probably don't want that here, so first type:
setterm -blank 0
(enter)

Let's see if you're already on the network! If you have a DHCP server, you probably are. Type:
ifconfig
(enter)

You'll see at least two blocks of text. One is "lo," which is your loopback, "dummy" address. Disregard that. You're looking for something like "eth0" or "eth1":
eth0 Link encap:Ethernet HWaddr 00:06:5B:84:58:85
inet addr:10.20.98.91 Bcast:10.255.255.255 Mask:255.255.255.0
inet6 addr: fe80::206:5bff:fe84:5885/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1036824 errors:0 dropped:0 overruns:19 frame:0
TX packets:907692 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:598783587 (571.0 MiB) TX bytes:492027529 (469.2 MiB)
Interrupt:23 Base address:0xdc80


From this I can see that the machine's already talked to DHCP and my IP address is 10.20.98.91. Perfect! Write this down, you will need it later.

Next, we're going to need to provide a way for the remote client to log on. Knoppix, unlike other Linux distributions, does not ask you to set a default root (administrator) password. Because of this, OpenSSH will not start due to the security concerns of having a blank root password. So, we're going to need to set up a root password, like this:

Type:
passwd root
(enter)
You will then see:
Enter new UNIX password:
(Type a password here and press enter. You won't see any *'s.)
Retype new UNIX password:
Re-enter the password, press enter, and you should see...
passwd: password updated successfully


Remember your password. Now you can start SSH with the following command:
/etc/init.d/ssh start
(enter)

Setting up the server, Part 2

If all went well, you've just set up an encrypted Linux terminal server. Now, all we have to do is give it a place to put the disk images.

There are two methods. The first way will be to "map" into a Windows share and store the data on another server. Since the data has to move twice, this will be half as fast as it could be, but your temporary server can go back to whatever it was doing before as soon as you take out the Knoppix disc. The second way will erase the server's hard disk and use it to store your disk images. (Twice as fast, twice as destructive, and much easier later on.)

Method 1: Safe and temporary

If you care at all about the data on the machine you're booted into, you should use this method. Otherwise, skip down to Method 2.

Determine what share you're going to "map" into. In my case, I'm going to use a server whose IP is "10.20.98.24" and whose share is called "archive."

In Linux, there are no drive letters. Everything is seen by the user as just one filesystem. Whether it's another hard drive, a partition, a CD, or a network share, everything has a "mount point." We'll start by creating a directory/folder to be our mount point for this network share:
mkdir /mnt/archive
(enter)

Now we'll issue a command to mount the network share:
smbmount //10.20.98.24/archive /mnt/archive smb -o username=dpittman


Replace my username with a username on the Windows machine that has access to that share. If the command completes without an error message, you can verify that it worked by getting a directory listing.
ls /mnt/archive
...should show you a listing of the folders on the Windows share. You can also type:
df -h
...and you'll see all of the mount points that the Linux kernel currently sees. Something like this:
Filesystem Size Used Avail Use% Mounted on
/dev/root 3.4M 1.1M 2.3M 33% /
/dev/scd0 700M 700M 0 100% /cdrom
/dev/cloop 1.9G 1.9G 0 100% /KNOPPIX
/ramdisk 195M 56K 195M 1% /ramdisk
//10.20.98.24/archive
1.3T 1.1T 242G 82% /mnt/archive


The last line shows me that I have 242GB of space on the Windows share, which is mounted on "/mnt/archive"

You've now given the server a place to put its disk images. If all that worked out well, skip past Method 2 and go on to "start partimaged"

Method 2: Reckless and fast!

Okay, so you don't need the data on your server's hard disk. Excellent. Let's start by getting rid of it. We'll use fdisk to create our partitions and/or remove any partitions that already exist. At the prompt, type:
fdisk /dev/hda
(enter)
(Note: I use "hda" because my hard disk is the first disk on the IDE controller. If it was the second, I'd use "hdb." If it was SCSI, I'd use "sda" or "sdb." Google this if you're not sure what to put here, or type "fdisk -l" to list your hard drives)

You'll see a prompt that looks something like this:
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 2610.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help):


Go ahead and type "m" to see what the menu options are. This is a great tool that lets you do a lot of cool things with hard drives.

First thing to do in fdisk, is to see what partitions there already are on the disk, and delete them. (There are many ways to set this up; I'm going for the most simple to explain. You don't necessarily have to delete every partition.)

Type "p" (enter) to see what partitions already exist. In this case, there is one partition:
Disk /dev/hda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 2610 20964793+ 7 HPFS/NTFS


Let's delete that by typing "d" (enter) If there's more than one partition, you'll be asked which one to delete. Otherwise, it will just delete the only one there. Type "p" again to verify that there are no more partitions.

Type "n" (enter) to create a new partition. When asked, type "p" (enter) to make it a primary partition, then "1" (enter) to make it partition number one. When asked about the cylinder number, just press enter and accept the defaults.

Now, type "p" (enter) once more, and you should see something like this:
Disk /dev/hda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 2610 20964793+ 83 Linux


Now we're done here. Press "w" (enter) and your new partition will be written to the disk:
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.


Now, we'll format the partition, using the ext3 native Linux filesystem:
mke2fs -j /dev/hda1
(enter)

The formatting process will be very fast, then you'll be ready to "mount" the partition:
mount -t ext3 /dev/hda1 /mnt/hda


To verify that the process worked, you can type "df -h" (enter) and you'll see all of the mount points, including the one you just made:
Filesystem Size Used Avail Use% Mounted on
/dev/root 3.4M 1.1M 2.3M 33% /
/dev/scd0 700M 700M 0 100% /cdrom
/dev/cloop 1.9G 1.9G 0 100% /KNOPPIX
/ramdisk 195M 56K 195M 1% /ramdisk
/dev/hda1 20G 33M 19G 1% /mnt/hda


Now you have a place to put your disk images.

Setting up the server, Part 3: start partimaged

We have a server we can log into, and it has a place to store disk images. Now we just need to start the partimage listening "daemon." If you used the first method, type:
partimaged -d /mnt/archive


If you used the second method, type:
partimaged -d /mnt/hda


You're done with the server for now. You can leave it alone entirely and do as many disk clones as you want until you either run out of space or reboot the machine. All it does is listen and write. The client app is where you set all of your parameters. Your screen should look like this:






The rest of this operation is a lot simpler than the server setup. Once you've done that, reading and writing disk images becomes very easy to deal with.

Get a disk image from a client machine...

First, grab another Knoppix CD and go to the machine that you want to do your cloning from. Now would be a good time to run the Sysprep tool if you haven't already. (Optional if you're just upgrading the hard drive or experimenting, making a backup, etc.)

Boot up just like you did before, typing "knoppix 2" at the "boot:" prompt. After it's gone through the boot process and you have a command prompt, you can use the same "setterm -blank 0" command that you did for the server, then type:
fdisk /dev/hda
(enter)
(This step is optional if your source/target drives are exactly the same size and geometry. Also, see previous notes on fdisk and be sure "hda" is right. If the hard disk is the first device on the IDE bus, you're good to go!)

Now type "l" (enter)

You'll see something like this:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1304 10474348+ 7 HPFS/NTFS


All we're doing here is looking at the size and type of the partition we've got, so we can match it later. If the target machines have exactly the same hard disks as the source machine you're on now, then don't worry about this. If you're doing this so that you can upgrade this machine to a bigger hard drive (ie, the image you're writing will reside on a disk larger than the one it came from, as in the example I will use later on) then write these numbers down.

Type "q" (enter) to get out of fdisk. Then start partimage:
partimage
(enter)

Your screen should look like this:



Now, just fill out the fields you see on the screen, using the IP you wrote down from the server, and giving the image file a name (I suggest using no spaces in the name, although I haven't tried):



Press "F5"...



For your login, use "root" unless you have a permanent server and you've set up another user. (Not a bad idea...) Use the password that you set in the first part of this howto. Once again you won't see any *'s or other feedback while you're typing. After login, you'll see this settings screen:



If you're used to Ghost, some of this will be familiar. If you are storing your image file on a Linux disk, (method 2) then I'd advise using "Automatic split" instead of the default second option that uses 2GB sections. If you have enough space and you're not writing to a Windows share, then there's no need to do that. Otherwise if you are writing on a Windows share, or a FAT32/NTFS disk, then go ahead and take the default. It is generally preferable not to split the image file up.

When you're ready, press "F5" You may be given the option to give the image file a description. After you've done that, you might see a warning about NTFS support being experimental. I haven't had any problem with it yet, and in fact it's been 100% reliable compared to some of the interesting "flakiness" I've seen when I've Ghosted a bunch of machines. However, my experience could be dumb luck. This is an Open Source project, so things tend to get fixed fast. If you do experience a weird problem with NTFS and it's repeatable, then it would be very beneficial and just generally cool of you to file a bug report with the authors. You can bet it will get handled.

So, after acknowledging the warning message, hit enter and you'll see a summary of what's about to happen. Hit enter once again and watch the bytes fly...



Speed will vary depending on your network hardware, compression level, and whether or not you're saving the image locally. In the screenshot you see above, I'm not storing the image locally and I am using medium compression, so that speed you're seeing is probably about the least you could expect from a modest-sized Windows XP installation. Still it's not too bad, and if you save the image on the server, without compression, you can expect to move the data at up to twice this speed. Remember that this file is being compressed, and moved across the network twice because I used the temporary option. Notice the filename that the software has chosen. Even though I did not give it a file extension, there is a ".000" appended to the name I gave it. That is there in case it has to split files. You may need to remember that when you go to pull this image down later.



All done! You can get out of Knoppix by typing "reboot" at the prompt. The CD will eject.


Restore a disk image to a hard disk...

Loading an image to a hard disk works about the same as dumping one to the network, with the exception of the fact that you might have to prepare the partition. In this section I'll go over three possible scenarios:

1. The source drive is smaller than the destination; you're upgrading a machine's hard drive. You will need all three tools in this section; fdisk, partimage, and qtparted.

2. The destination drive is brand-new and totally blank. It has no partitions. But it's exactly the same size as the one the image came from. (Or, the drive is the same but the partitions are not.) You will need fdisk and partimage.

3. You're working with identical computers, and you're completely certain that the partitions are all set up exactly the same. (For example, you just got a bunch of computers fresh from the factory, you set one up like you want it and now you're going to clone it.) All you need for this is partimage.

fdisk

Partimage does not automatically create and resize partitions the way that Ghost does. This has both advantages and drawbacks. One advantage is that when you're building partitions in Linux, you're booted into an environment that is likely to have already loaded a driver that's specific to your IDE/SCSI controller instead of something generic. In this way, Linux fdisk can be more reliable than something running under DOS. A disadvantage to this approach of course, is that you will sometimes have to create and/or edit the partition yourself if a suitable one is not already in place.

If your application for these tools fits Scenario 1 or 2, proceed with the following. Otherwise skip to the appropriate section(s) below.

Boot your destination machine with the Knoppix CD. As before, type "knoppix 2" at the "boot:" prompt.

Once you're booted and at the command prompt, type:
fdisk /dev/hda
(enter)

("hda" assumes we're working with the primary IDE disk. If not, see the notes above.)

You should see something like this:
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 3916.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help):


Type "p" (enter) to list all of this drive's partitions.

If there are no partitions, then we'll make at least one new partition to match the configuration of the original disk. When you created the image, you ran fdisk and it told you the information about your source drive's partition(s). Compare what you wrote down to what you're seeing now. If the partitions already match exactly, press "q" and exit without saving changes. You're done with this step. If they don't match, then press "d" (enter) and follow the prompts until you've deleted the non-matching partition(s). When you press "p" (enter) again, your partition table should look like this:
Disk /dev/hda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System



There are no partitions on this disk because it's new, (or because I deleted them) so I'm going to make a new one that matches the disk image. When I ran fdisk on the source machine and listed the partitions, this is what it showed me:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1304 10474348+ 7 HPFS/NTFS


You may have noticed that my original disk was 10GB, and my new blank one is 30GB. I did that for two reasons. One is so that I can show you how to resize partitions in the next step, and also I want you to see how I define the partition. Regardless of what size the new hard disk is, the partition size must be the same as the old one or Windows will not see the extra space.

Follow the steps below to create your new partition. You can press "m" at any time to see an explanation of what the commands you're entering are. Things in bold text are what you should type, and things in red italics are my notes:
Command (m for help): n New partition
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3916, default 1):I pressed (enter) here.
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3916, default 3916): 1304
This is the number from the original disk.

Command (m for help): p

Disk /dev/hda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 1304 10474348+ 83 Linux

Our partition is now the right size, but the wrong type.
And it's not bootable! Let's fix it:

Command (m for help): t I'm changing the type...
Selected partition 1
Hex code (type L to list codes): 7 Type 7 is NTFS...
Changed system type of partition 1 to 7 (HPFS/NTFS)

Command (m for help): a This sets the partition bootable.
Partition number (1-4): 1

Command (m for help): p

Disk /dev/hda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 1304 10474348+ 7 HPFS/NTFS

Okay, everything's right now. We can see by the "*" that we're bootable,
and everything's as it should be. We have a 10GB partition sitting on a 30GB
disk, but we'll address that later.

Command (m for help): w Write the changes and exit.
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.



Okay, we're done with that and we can run partimage now. We'll use qtparted later to resize the partition if needed. (It's also perfectly okay to just leave it alone and create another drive letter in Windows with the free space if you want.)


partimage

If you skipped the "fdisk" step above, then boot into Knoppix as we've done before, using "knoppix 2" at the "boot:" prompt. Optionally, you can also disable screen-blanking so you can keep an eye on the progress:
setterm -blank 0

Having ensured that your partition is set up correctly, start the program by typing:
partimage

Your screen should look like this:



Fill out the fields using the image below as an example. You'll want to select "Restore partition from an image file," type the name of your image file from earlier using the file extension as shown, check "Connect to server," give it the server's IP and then press "F5" to continue.



Login as before, using "root" as the username, and typing the password that you specified when you set up the server:



After login, you'll see a window with the description that you entered when you made the image:



Press enter, then press "F5" to continue. Once again you may see a warning about experimental NTFS support, then you'll see a summary. Press enter, then answer "yes" to the confirmation, and the process will begin...



As you may have observed when using Ghost, the speed will gradually increase as the process goes on. Again, the process is slower when you're forwarding the image from the server onto a Windows share, and it's also slower when you're using compression.

If you get an error, try the "Alternative Method" below.

If the process finishes without errors, then proceed to the next step, "qtparted." (Only necessary if you need to resize your partition. If not, then you're done! Type "reboot" at the prompt, and remove the CD.)
Alternative Method:

If you get an error here and the restore process fails, it's likely going to be because of a split-up image file that's not being combined properly by the server. There is a way around this. First, if your server is not mapped into a Windows share, then there's no need to split the image file in the first place, because the native Linux filesystem has no problem with large files. If it's not split, then you will not have this problem. If you did decide to use a Windows share to store your image files, then the solution is to "map" into that share in the same way you did with the server, then start partimage. Restore the image as before, only don't connect to the server's IP, and prepend the mount point to the filename, as seen below:

(Replace my Windows username, server IP and share name with your own...)
root@tty1[/]# mkdir /mnt/archive
root@tty1[/]# smbmount //10.20.98.24/archive /mnt/archive smb -o username=dpittman
Password:
root@tty1[/]# partimage
...Press "F5," follow the prompts as before, and the process should go on without failing this time. This occasional bug is expected to be fixed with the next release of partimage. I've only experienced it when dealing with Windows shares, and splitting up the files on version 0.6.4. Remember, if all else fails, this works every time when you use a native Linux filesystem on the server and you don't split the image into 2GB files.

It's also worth mentioning that you could operate entirely without the server for both saving and loading images when using this alternative method, but be aware that it's not as fast or efficient as the server method, and it's always best not to split the image file. ("Automatic split")


qtparted

Now this is a cool piece of software.

It's a lot more like something you'd be used to in Windows, and it's the best thing I've ever used for editing partitions on any operating system. Think something like Partition Magic on steroids.

If you're already in Knoppix, type:
init 5
(enter)

If not, then boot into Knoppix like we've done before, but this time just press enter instead of typing "knoppix 2."

You'll be in full desktop GUI mode now. Remember, this is not an install disc - everything you see here is running straight off the CD!



The first thing you'll see is a browser window that opens up automatically. You can close that.

Click the "K Menu" in the lower left corner, and look under "System" for "QTParted." When you click "QTParted," you'll see a window like this one:



Click on the the appropriate drive: (In this example, /dev/hdc is my CDROM drive. /dev/hda will usually be the drive you want.)



After making the window a bit bigger or maximizing it, I can see that I've got a 10GB partition and I've got 20GB of unused space on the drive. So I'll right-click on that drive, and select "resize":



...Which will bring up this dialog:



I can either key in a new size for the partition, or simply drag one of the black arrows out, to make the partition take up the whole disk:



Click "OK" then commit your changes to the hard disk by clicking "File," and then "Commit."

You're done! You can log out and restart the machine from the "K" menu once the process completes.

There are more things that qtparted is capable of doing, such as shrinking or adding partitions for various operating systems, and I encourage you to explore it. It's a very powerful tool, and in fact so is the entire Knoppix CD. I consider it a "Swiss Army Knife" for system building, disaster recovery, and numerous other things.




I hope you have found this document useful, and I'd greatly appreciate any comments you may have regarding how I can improve it.

Please send any questions or comments to nareshjthv@gmail.com