[ Back to Table of Contents ] [ << ] [ >> ]


From:    Kan Yabumoto           tech@xxcopy.com
To:      XXCOPY user
Subject: Cloning the Win9x system disk using XXCOPY.
Date:    2003-11-07  (revised)

The disk clone operation has become one of the most popular usages of
the XXCOPY utility.  Therefore, I decided to have this dedicated
page just for the subject.  But, if you just arrived at this page
for the first time and have not really learned much about XXCOPY,
I would like to remind you that this Disk Clone capability is rather
a small portion of what XXCOPY can do for you.  If you are in a hurry,
go ahead and finish your disk clone job by following the instructions
below.  But, I suggest you come back and explore the rest of XXCOPY.

In this article, I would like to discuss the most common case of
disk cloning operation.  Some related topics which were once part
of this article are moved to another page, XXTB #20.

Note:  The technique discussed in this article applies primarily
       for Windows 9x and ME cases.  If your C: drive is loaded
       with Win NT4/2000/XP, you will not get a bootable disk.  If you
       have a dual-boot system (Win 9X and NT/2000/XP), then it is best
       you perform the operation from Win 9x.  But even in that case,
       the newly cloned drive will not be dual-bootable because XXCOPY
       does not touch the Master Boot Record (MBR) of a hard disk
       (we believe it should be handled by FDISK or other tools).

       As of this writing, we do not have a simple solution to reliably
       produce a bootable system disk for an NT4/2000/XP system using
       the XXCOPY utility.

System Disk Cloning:

    Say, you bought a hard disk with an astronomical number of bytes
    (at least, it seems that way for now), and you want to install
    your new drive as your system disk (Drive C:).

    Typically, you would connect the brand new drive to the EIDE
    port (either as the primary port's slave or the secondary port's
    master or slave --- whichever is available on your computer).
    Most new disk drives have the jumper setting printed on the top
    cover of the drive (the selection involves only master/slave).

    The overall procedure goes like this:  first, you connect the
    new drive and assign a temporary drive letter to it.  Then, copy
    the contents of the current Drive C: to the new drive's volume.
    Usually, the new drive has more capacity than the old one.
    Therefore, you can copy the entire C: drive to the new drive
    and still you will have much free space.  After the files are
    copied from the old drive to the new one, you will remove the
    old drive and place the new one as Drive C:.  It is quite
    straightforward.  Here, I assume your new drive will be
    temporarily assigned as Drive D:.

    Summarizing this, the sequence is as follows:

       . connect the new drive as D:
       . FDISK                         (initialize a partition)
       . FORMAT D:                     (init volume for file access)
       . XXCOPY C:\ D:\  /CLONE        (copy all the files)
       . connect the new drive as C:
       . FDISK                         (set active partition)

Step-by-Step Instructions:

    Now, let me go over the sequence, step-by-step with more details.
    If you have a printer, you may make a hard copy which will be
    handy for a beginner.

    In this article, the main drive is assumed to be C: and the
    Windows directory is located at C:\Windows.  If your settings
    are different, make necessary adjustments in the commands shown
    in this article.

           How to create a DOS Box

              XXCOPY is a console application which is most
              conveniently launched from a DOS Box in Win9x.

              If you don't have an icon handy for DOS Box on desktop,
              you may create one by Right-click at an empty point in
              the desktop and click New > Shortcut.  Then, type in
              the box labeld Command line [ command.com ] and
              click [ Next ] and then click [ Finish ].
              Now, you will find an icon labeld "MS-DOS Prompt".

              Or, you may create a DOS Box directly by starting
              at the taskbar, click [ Start ] and click [ Run...].
              Then type in the box labeld Open [ command.com ] and
              click [ OK ].

    0. Clean up the system disk

       Before you start the disk cloning operation, it is best if
       you clean up the original disk.  It is highly recommended
       that you run the SCANDISK utility.  Since some long-named
       files/directories are not reachable in DOS, you should run
       SCANDISK in the Win32 environment (the regular Windows 9X/NT/2K).

       Perform any additional cleaning up on the drive to remove
       garbage files which include the files generated by SCANDISK
       for retrieved data (check the root directory for names like
       FILE0000.CHK).  This is an ideal time to throw away other
       junk.  Don't forget to empty the Recycle Bin at the end.

    1. Making the system diskette

       The next hard disk preparation steps (FDISK and FORMAT) may
       be carried out either in a DOS box of Windows or in the
       real-mode DOS.  Since you need to boot the system from a
       diskette at least once (to run FDISK), it is usually faster
       if you perform the initial FDISK and FORMAT operations in
       the real-mode (DOS) environment created by the system diskette.

       If you have a Win9x boot diskette, you may skip this step.
       But, the boot diskette which you create using this method
       will take considerably less time to initialize the DOS
       environment (without the access to the CD-ROM but you don't
       need CD-ROM for this) than with the Win9x boot diskette.

       In a DOS Box, run the following commands to prepare a system
       diskette for the bootup, FDISK and FORMAT operations.

           FORMAT A: /S

       Note:  In Windows ME, you have to run the "FORMAT" command
              without the /S switch which is no longer supported.
              Therefore, you need to run the following commands by
              hand from a DOS Box to achieve the same result.

                  FORMAT A:
                  COPY    C:\WINDOWS\COMMAND\EBD\IO.SYS      A:\
                  COPY    C:\WINDOWS\COMMAND\FDISK.EXE       A:\ 
                  COPY    C:\WINDOWS\COMMAND\FORMAT.COM      A:\ 
                  COPY    C:\WINDOWS\COMMAND\SYS.COM         A:\ 

       Since you have plenty of room in the diskette, you may
       copy a few basic tools (we do not use any of them in this
       procedure).  If you don't know how to use them, skip this.

            EDIT.COM        (or your favorite text editor)

    2. Attach the new disk as Drive D:

       Once you have a system diskette which can boot up the
       system, you can shut down the system now.

       If you have  not attached the new disk drive, now is
       the time to connect it as a non-boot disk by leaving
       the current system disk (Drive C:) as it is.  We assume
       your new drive is the 2nd drive (referred to as
       Drive 2 by FDISK).

       There is an well-written site which shows this step with
       good illustrations at Adding a 2nd Hard Drive.

    3. Initialize the new disk partition (FDISK)

       Power up the system and boot up using the system diskette.
       From the command prompt of DOS, run FDISK.EXE by typing:


       After confirming that you go along with the "Large Disk Support",
       Select choice 5 (Change current fixed disk drive), and enter
       the correct "Disk Drive Number".  After making the new drive
       the current disk drive, select choice 1 (Create DOS partition
       or Logical DOS Drive).  You now specify the space you allocate
       for the new partition (most people select 100%).  Exit FDISK.

    4. Initialize the new volume (FORMAT)

       After the new drive's partition is intialized by FDISK,
       reboot the system using the system diskette which you made in
       Step 1.  The next step is to format the new partition which
       can be done either in Windows' DOS Box or in the real DOS.  But,
       here we choose to boot up the system using the newly created
       diskette since it verifies that the diskette really works
       before we remove the current bootable hard disk.  Also, it
       is a bit faster.

       The diskette-reboot will lead you to a DOS prompt at A:\>.

       Before formatting the disk, you should check if the drive
       letter is right (you don't want to format the other drive).

           DIR D:

       The system should complain by saying:

           Invalid media type reading drive D
           Abort, Retry, Fail?

       This is exactly what you want with the partition which was
       just initialized by FDISK, but has not been formatted.  If you
       see any other message, you should run FDISK, select 5
       (Change current fixed disk drive) in the main menu, and
       examine the overview of the disk partitions.  The listing
       conveniently displays both the disk number (1, 2, etc.)
       and the drive letter assigned to the various partitions.
       Type ESC a few times to exit the FDISK utility.

       Once you are sure of the drive letter, run the next command.

           FORMAT D:

       This time, it may take some time (depending on the capacity
       of the drive) while the sectors are verified for read/write
       operations.  Before the FORMAT command finishes its job,
       it will prompt you to enter the volume name.  You may enter
       any name (up to 11 characters).  I urge you to name it
       something rather than leaving it blank.

       Once the volume is formatted, you may access the drive now.
       Just type the following command in a DOS Box.

           DIR D:

        If you see lines like this, then it is good.

              Volume in drive D is XXXXXXXXX
              Volume Serial Number is 1234-5678
              Directory of D:\

    5. Reboot after format (back to Windows 9x)

       Although it is possible to enter Windows from this
       environment (provided that you installed HIMEM.SYS),
       we do not recommend doing so at this point.  Remove
       the system diskette from the floppy drive and reboot
       the system and enter the regular Windows environment.

           If you were preparing the new partition inside a
           DOS Box, rather than in real-mode DOS, you could
           access the volume and proceed to the next step
           (XXCOPY /CLONE), but you should still reboot now.
           Because after a volume is formatted, it remains
           in the so-called "MS-DOS compatibility mode" where
           the disk I/O cache is disabled.  Without a reboot
           after a format, file access to the volume will be
           extremely slow --- the XXCOPY action would take
           literally hours rather than minutes without reboot!

    6. Duplicate the volume (XXCOPY /CLONE)

       Once you have prepared the new disk with FDISK and FORMAT,
       you are ready to run the centerpiece of this procedure.
       This step is the most important operation in the entire
       procedure.  You must be in the Win32 environment, that is
       you must enter the Windows' GUI world (not booting into
       the "Command Prompt Only" (real mode, DOS) environment.
       Then, open up a DOS Box.  When you have followed the standard
       XXCOPY installation procedure, XXCOPY.EXE should be present at
       the \Windows\command directory so that XXCOPY is the "path".

       Run the following command from a DOS Box.

           XXCOPY  C:\  D:\  /CLONE

           The /CLONE switch looks deceptively simple. But,
           it is actually a combination of eight distinct
           switches.  Much of XXCOPY's flexibility comes from
           combining a variety of switches.  This particular
           case is equivalent to the following command.

             XXCOPY  C:\  D:\  /ks/h/e/r/q/y/bi/zy/ze


               /ks ; keeps source files' attributes exactly
               /h  ; copies hidden and system files
               /e  ; copies subdirectories (including empty ones)
               /r  ; overwrites read-only files if such files exist
               /q  ; suppresses display of skipped file in backup
               /y  ; overwrites existing files without prompt
               /bi ; backs up incrementally (skips identical files)
               /zy ; deletes extra files in destination if present
               /ze ; disables XXCOPY's use of Envrionment variables

       The XXCOPY operation takes anywhere from 10 minutes to
       over several hours, depending on the amount of data you
       transfer (typically 2-15 GB/hr)..

    7. While XXCOPY /CLONE is in progress...

       When XXCOPY is carrying out the clone operation, you don't
       have to sit idle.  You may actively use the computer as
       usual, browsing the Web, operate a word processor, or use
       spreadsheet --- whatever.  Just consider the on-going
       XXCOPY operation a background task.  There may be a few
       files which may not be copied the first time due to
       file-access contention.  That is expected and not a serious
       problem at all.

       Once the first round of XXCOPY /CLONE operation is over,
       finish your foreground work, close all active programs
       at this point.  Then, run the exactly same command again.

           XXCOPY  C:\  D:\  /CLONE

       The key here is that the /CLONE operation behaves as an
       incremental backup (by the virtue of the /BI component).
       It compares the source volume and the destination volume
       and skips files which already exist in the destination
       with the same size and time.  The second /CLONE step
       should take only a few minutes at most.

       You may still observe a few failed copies.  The most
       notable one in the Win9x system is the virtual memory
       swap file (WIN386.SWP).  In the case of Win NT4 and
       Win 2000, the equivalent file is named PAGEFILE.SYS.
       It is safe to ignore these swap files.

       You may run the /CLONE command as many times as you like:

           XXCOPY  C:\  D:\  /CLONE

    8. After XXCOPY /CLONE is complete.

       When the entire volume has been copied by XXCOPY, you are
       ready to remove the old Drive C: and connect the new drive
       as your new Drive C:.  Shut down your Win9x system now,
       and reconfigure your hard disks. You may need to remove
       the jumper plug which made it a slave drive.  You may also
       need to adjust the BIOS setting (Primary/Secondary IDE,
       Master/Slave drive parameters).  All recent models of
       motherboard come with a BIOS which has the AUTO sense mode
       which is trouble-free.  If you select a manual setting,
       you may need to adjust the hard disk paramters.

    9. Make the new partition "Active" (FDISK).

       Since the new drive is still not bootable, but it has to
       be connected as Drive C: since FDISK can activate only the
       first disk drive's (Drive C) Primary DOS Partition.  So,
       we need the system diskette once more to boot the system.

       Now, the remaining thing is to make the new drive bootable.
       The Master Boot Record (MBR) must contain the partition table
       where the Primary DOS partition is set "Active".


       Select choice 2 in the first FDISK menu (Set active partition).
       When you display Partition Information by choice 4, the main
       partition should show Status 'A' (for Active partition).
       Pressing the ESC key will terminate the FDISK utility.

   10. Make the new drive bootable (FDISK).

       The normal FDISK operation you have just performed modifies
       the contents of the partition table in the first logical
       sector of the drive (MBR).  But, the operation does not
       change the section of the MBR which contains the bootstrap
       program (a very small machine-language program which will
       receive control of the system at the very beginning of the
       system bootup process).  FDISK has a "well known" undocumented
       feature which initializes the bootstrap program inside the MBR.
       Run the following command line.

           FDISK /MBR 

       Unlike the regular interactive FDISK operation, with the
       /MBR switch, it quietly carries out the MBR-initialization
       operation.  As a matter of fact, it does not say anything.
       If you are a bit nervous, visit the following Microsoft site:

         Q69013: FISK /MBR Rewrites the Master Boot Record.

       Microsoft documents this feature in the article and yet it
       calls this feature "undocumented" in the article itself!!!
       So, I guess it remains undocumented...  

   11. Boot to the Windows (DONE)

       Remove the system diskette from the floppy drive and
       let the system boot from the new Drive C: to windows.
       You may just leave the original system disk (now as D:)
       for daily backup storage.  If you set up a well written
       backup batch file script (using XXCOPY of course), you
       may use a much smaller disk drive for system drive

   12. If the new disk has a difficulty in booting up by itself,
       consider running the SYS command.  If you follow all of the
       steps described above, you need not run the SYS command.
       However, if you skipped the format step, the boot sector
       may not have proper boot code.  Or, if your procedure
       is slightly deviated from the above steps in any way, the
       boot sector may not have been properly initialized.  At any
       event, it does not hurt to run this step.  From the DOS
       prompt using the system disktte, run the following command:

           SYS  A:  C:

       This procedure copies IO.SYS, MSDOS.SYS, and COMMAND.COM
       from the diskette to the root directory of the C: drive
       (which is not necessary) and also re-initializes the
       boot sector of the C: drive.  (The boot sector is usually
       initialized when the volume is formatted.)  Now, you can
       try rebooting from the hard disk.


Q and A about Disk Cloning:

  Q:  Can I stay in DOS (real mode) to duplicate the disk using

  A:  We strongly recommend the use of XXCOPY.EXE (the 32-bit
      version which must run under the Win32 environment), as
      described in this page.  When you stay in the DOS (real mode)
      environment, you may not be able to access all the files and
      directories in your disk drive.  This is due to the fact that
      the DOS environment cannot handle a pathname which exceeds
      the 80 character limit.  Although each long name comes with
      its short name (8.3 format) alias, there could still be a
      heavily nested, very long path which exceeds the 80-character
      limit after converting all of the long directory names into
      their short name alias (for the same reason, SCANDISK fails
      on certain volume in 16-bit mode).

      If all of the files in your drive have a full pathname less
      than 80 characters, you can use XXCOPY16 with the /CLONE switch
      to create an interim copy of the source disk which can be made
      bootable.  After you boot into the Win9x environment, you
      should convert all of the shortnames in your system disk
      into the corresponding longname using the following command
      (assuming the D: drive is the original source drive)

         XXCOPY D:\  C:\  /S  /NL

      This procedure lets you restore most of the long filenames.
      However, there will be a small number of files and directories
      which are made prior to this XXCOPY run (immediately after the
      first Win9x initialization).  That is, you need to perform
      additional procedures by hand to make necessary adjustments.
      In short, this procedure is troublesome at best and we don't
      recommend it to anyone who asks this question in the first place.

  Q:  I thought you need to use the /S option when you format the
      new hard disk in disk in order to make the drive bootable.

  A:  It is true that you should take advantage of the /S switch
      when you make the boot diskette as

          FORMAT A: /S

      The bare FORMAT command formats the media (which tests the
      sectors and initializes the FAT and the root directory).
      With the /S switch, it performs additional file copy
      operation. (COMMAND.COM, IO.SYS, MSDOS.SYS, and DRVSPACE.BIN).
      Since the XXCOPY /CLONE procedure copies these system files
      anyway (provided that the source volume contains these files),
      it is redundant to run "FORMAT D:"  with the /S switch when
      you initialize the new hard disk (it does not hurt though).

  Q:  I did not find the "SYS" command in the sequence you showed.
      Why can you skip this step?

  A:  The SYS command performs the equivalent of the "/S" switch
      in the FORMAT command.  For the same reason mentioned above,
      you can skip the SYS command when you run XXCOPY /CLONE.
      Some people believe that the SYS command initializes the
      MBR (see below) to make the drive bootable.  This is not
      correct.  The MBR is usually managed by FDISK. Not by
      FORMAT or SYS utilities.  (Also, see Step 12.)

  Q:  In which steps does the Master Boot Record (MBR) of the new
      drive initialized?

  A:  If you follow the step-by-step instructions described in
      this page, you should notice that you use the FDISK utility
      three times.  The first time, you will initialize the primary
      partition of the new drive.  At that time, the drive is
      tentatively assigned as a non-bootable drive (e.g., D:).
      Unfortunately, FDISK does not allow you to make the primary
      DOS partition of the new disk "Active".  For some reason,
      FDISK sets only the first drive's (C:) primary partition
      "active".  That is why in the above procedure, you need to
      boot up the system using the boot diskette.  In your second
      invocation of FDISK, you make the primary DOS partition
      "Active".  Then, the the third time with the FDISK /MBR
      switch, the bootstrap section of the MBR is initalized.

  Q:  Can you write (or read)  the MBR using XXCOPY?

  A:  No.  XXCOPY does *NOT* touch the MBR block which is the
      very first logical sector of the volume.  It contains both
      the partition information and the system initialization
      code (a very tightly written machine language program).
      We strongly believe that a "well-behaving" program such
      as XXCOPY must not touch the area of the disk which is
      handled by specialized tools.  In this case, FDISk is the
      official utility whose only job is to manage the contents
      of MBR.  Microsoft's utilities FDISK and FORMAT have never
      been combined to be just one simple utility for this very
      reason.  In the future we may make add a MBR backup
      feature.  But, it is a dangerous operation at best.
      Of course, we all know how bad Microsoft's FDISK design is.
      But, it gets the job done..

  For more on cloning, see XXTB #20.

  Click the download file (the line below) when you are ready.


© Copyright 2016 Pixelab All rights reserved.

[ XXCOPY Home ] [ Table of Contents ] [ << ] [ >> ]

Join the XXCOPY group