Jump back to the top page Jump back to the top page

 What is XXCOPY ?
 F A Q 
 About Us (Pixelab) 
On-Line Manual 
XXTB #001 
XXTB #002 
XXTB #003 
XXTB #004 
XXTB #005 
             . . .  


©2016 Copyright

 All rights reserved  
    [ Table of Contents ] [ Show as Detached ] [ >> ]


    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
               COPY  C:\WINDOWS\COMMAND\SYS.COM     A:\
           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\EBD\COMMAND.COM 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.
    [ Table of Contents ] [ Show as Detached ] [ >> ]