XCLONE.EXE v1.3 David Weber dbweber@compuserve.com April 22, 1999 <<<< License >>>> The XCLONE program is not public domain. It is copyright (C) 1998 by David Weber. XCLONE can be freely copied by anyone. It cannot be sold for profit. <<<< What >>>> XCLONE is a disk/directory copying tool that easily lets you duplicate entire disks or directory trees. I primarily use it to move operating systems when upgrading to a larger hard drive. It is also useful for backing up to another hard drive or saving programs before installing a new version. XCLONE has been in use for two years during which I copied over a hundred drives without any loss of data. It is simple and robust. I tested XCLONE with MSDOS, DRDOS, Windows 3.1, Windows for Workgroups 3.11, Windows 95, Windows 98, Windows NT 3.51 and Windows NT 4.0 XCLONE preserves long file names when copying under Windows 9x and Windows NT 4.0 XCLONE copies and preserves the attributes on all hidden and system files/directories and maintains time stamps. Thus, the copied drive is an exact clone of the original. Typing XCLONE with no parameters will print a usage screen explaining the command line switches. <<<< Installation >>>> Copy XCLONE.EXE to your hard drive somewhere along the PATH. A good place for DOS / Windows 3.x users is to put it in C:\DOS. A good place for Windows 9x users is in C:\WINDOWS\COMMAND. <<<< How to Copy a Hard Drive >>>> The first part of these instructions assume that you know how to connect a second hard drive to your system, partition it, format it and make it bootable. If not, do not despair, details follow. 1) If you are running Windows 3.x, exit to DOS. -- or -- 1) If you are running Windows 9x or NT close all open programs. Your taskbar should show no running programs. This includes programs in the system tray. You can close these by right clicking on each mini-icon and choosing Close or Exit. Start a DOS box by clicking on Start, Programs, MSDOS Prompt. 2) Assuming the new hard drive is letter D: and the original is letter C:, enter the command: XCLONE C: D: That's it. First XCLONE sizes the drive, then it copies, displaying a progress percentage as it goes. XCLONE verifies each file on the destination drive after copying it, thus ensuring a safe copy. Any file that can't be copied is indicated with an error message. Windows 9x users will notice that one file, WIN386.SWP, isn't copied because Windows locks this swap file for its exclusive use. This is not a problem as this temporary file is recreated on the new drive when it boots. If you get any other copy errors it is usually because you forgot to close all programs before copying. Rarely, there is a hidden background process that keeps exclusive access to some files. From my experience these have always been temporary files. <<<< How to Install a Second Hard Drive >>>> You've run out of room on that dated 1GB drive and it's time to upgrade to a monster drive. Before grabbing your credit card and heading off to Gigabyte City you should know something about limitations. Older machines (286, 386 and early 486) cannot recognize drives greater than 520MB unless they do LBA. If you have one of these ancient beasts see if it does LBA. Reboot and get into CMOS (press DEL, F1, F2, F10, ESC, Ctrl-Alt-S or maybe Ctrl-Alt-ESC depending on the manufacturer). Look through the menus. If you see a reference to LBA, you can go beyond 520MB, at least to the next barrier. If your machine doesn't do LBA, it's time for a motherboard upgrade. Even fairly recent Pentium machines may have an 8GB limit. A larger drive will work in these machines it just won't see anything beyond 8GB. You can sometimes get around this with a BIOS upgrade. Check your motherboard manual (or the manufacturer's web site) for references to large drives greater than 8GB. Finally, DOS, Windows 3x and Windows 95 (except OSR2) will not let you make a partition larger than 2GB. So you will need to cut up a large drive into 2GB partitions. Windows 98 using FAT32 and Windows NT using NTFS can handle very large drives. Last, but not least, buy the same style of drive as you currently have, IDE or SCSI. 1) Attaching the hard drive: Open the computer case. Before changing anything, make notes of where the cables run to the hard drive and the orientation of pin 1 on the cables (red edge). Make a bootable floppy disk (FORMAT A: /S) and copy some basic files to it like FDISK, FORMAT and SCANDISK. You will need this later to activate the partition. IDE supports two channels, each of which can have two drives in a master/slave relationship. Thus up to four drives can co-exist in one system. Usually, the CDROM is on the secondary channel as a master and the hard drive is on the primary channel as a master. Older systems may have only a single channel with the hard drive (master) and CDROM (slave) on it. If you have room in the case, mount the new hard drive next to the old hard drive. If you don't have room lay the drives out within reach of the cable and be careful that the electronics on the bottom aren't shorting out on case metal. Set the jumpers on the drives so the old drive is a master and the new drive is a slave. Plug the data cable into both drives (it doesn't matter which is first or second). The red line on the cable should be towards the power plug. Plug in the 4 wire power. If you don't have enough power plugs, buy a splitter. Single channel IDE systems will require you to temporarily disconnect the CDROM data cable and use it while copying the drive. SCSI supports 8 devices on a channel each of which has a unique address 0 through 7. Either 0 or 7 is usually used for the controller so set the new drive for a device number 1-6 that doesn't conflict with the current drive. SCSI channels must be terminated at each end. If you add the new drive beyond the old drive, remove the terminator packs from the old drive and install ones in the new drive. If you install the new drive between the old drive and the controller make sure you remove its terminator packs. 2) Boot the system and get into CMOS (SCSI people get into the SCSI BIOS). Select Autodetect Hard Drives and make sure the system sees both drives. If it doesn't then you have a cabling or jumper error. Occasionally, I find two drives that won't work together on the same IDE channel no matter what I do. In this case move the new drive to the secondary IDE channel and try it there. If both drives appear in the CMOS, save settings and exit. 3) Boot onto the old drive. Get to a DOS prompt and type FDISK. Select "Change Current Fixed Disk" and choose the new D: drive. "Create a DOS partition." "Create a primary DOS partition." If you are cutting up a large drive into 2GB partitions create an extended DOS partition and fill it with drive letters. Exit the DOS prompt and reboot the system. 4) Get into a DOS prompt and format the new drive. Type FORMAT D: /S Make sure you don't format C: or it will ruin your day. Also the /S switch is needed for the new drive to be bootable. 5) Copy the drive. Type XCLONE C: D: Wait for it to finish. 6) Turn off the computer. Reconnect the drives so the new drive is the master (or single if you aren't using the old drive). Reboot, get into CMOS. Go to Standard Settings and change drive C: and D: to "Not Installed." Go to Auto Detect Hard Drive. If the new drive doesn't appear then you have a jumper or cable error. Save settings and exit. 7) Boot onto the floppy you made in step (1). Start FDISK. Choose Set Active Partition and make the new partition active. Reboot onto the new hard drive. You are done. <<<< Advanced >>>> Copying Directories Rather than Drives - XCLONE can copy directory trees and save a subset of your drive. For example, you might want to save C:\DOWNLOAD (and its subdirectories) to D: before cleaning out old stuff. To do this: XCLONE C:\DOWNLOAD D:\DOWNLOAD Note that source and destination have to be directory names without wildcards. If the destination directory doesn't exist it will be created. Note further that the command XCLONE C:\DOWNLOAD D:\ is probably not what you want since this puts DOWNLOAD into the root directory. MSDOS Mode and DOSLFNBK - XCLONE will not preserve long file names if you are trying to copy Windows 9x while the computer is in MSDOS mode. Always boot to Windows and copy from a DOS box. If you need to copy but cannot get into Windows because your operating system is fried, use DOSLFNBK to preserve the long file names before copying and restore them afterwards. This utility is available online from the usual sources. Make sure you get version 2.2 or later. Network Backups - XCLONE is useful for network backups. I write a small batch file that backs up critical work to another network computer and use System Agent to run it at night. That way if the original computer goes down, the work is duplicated on another machine in the network. An example batch file might contain: XCLONE -f "c:\my documents" "n:\backup\dbw\my documents" Saving Programs Before Updating - Some program updates are really downgrades that don't work. Before installing new software I often copy directories to one side knowing that I can undo the upgrade. Assuming the program directory is BOZOWARE: XCLONE C:\BOZOWARE D:\SAVE\BOZOWARE save old program XCLONE C:\WINDOWS D:\SAVE\WINDOWS if it's a windows program Now if the upgrade dies I can: Uninstall the upgrade. remove new program XCLONE D:\SAVE\BOZOWARE C:\BOZOWARE restore the old program XCLONE D:\SAVE\WINDOWS C:\WINDOWS if it's a windows program Copying Without Verification - If you want to copy fast and live dangerously use the /f command switch. XCLONE /f SOURCE DESTINATION With SMARTDRV running this will only save you 5%. Without SMARTDRV or when copying across networks this can speed things considerably. Listing Without Copying - To see what happens before cloning use the /l command switch. This displays the files without copying. XCLONE /l SOURCE DESTINATION The /p switch will pause each page. Ctrl C or Ctrl Break will stop the program. Verbose - Normally XCLONE just prints out error messages. If you want to see the names of the copied files use the /v switch. XCLONE /v SOURCE DESTINATION Copying From One Computer to Another - Instead of copying across local hard drives you might want to copy to a new computer. For example, you buy a new computer, tie it to the old one with a network cable or a direct cable connect and move stuff across. If you are just moving data or self contained programs you will have no trouble. If you try to move the Root or Windows directory you will have problems as the device drivers in the new computer most likely are different from the device drivers in the old computer. Windows 3x will give you a little grief, easily sorted out by reinstalling the new drivers. But Windows 9x will torment you as it tries to reconcile the hardware with the drivers. You may have to boot the new computer into safe mode and delete everything under device manager. Then reboot and reinstall the new drivers. My suggestion is to avoid this and not clone the Windows guts. <<<< Notes >>>> 1) SMARTDRV and Performance - DOS and Windows 3x users will notice a great increase in XCLONE performance if they use SMARTDRV. SMARTDRV is an integral feature of Windows 9x and Windows NT. 2) The only Windows NT 4.0 computers I had available for testing were running FAT file systems. I'd appreciate feedback from people with NTFS. 3) XCLONE 2.0 Additions - Yes, there is a list of features for version 2.0 The most significant is compressed drive images for distributions and archiving. 4) XCLONE written in C and x86 Assembler using Watcom v10.5 5) Send any ideas, complaints, bugs and comments to me at the email address at the top of this file. -DBW