Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!ncar!boulder!sunybcs!rutgers!topaz.rutgers.edu!kinks.rutgers.edu!kaldis
From: kaldis@kinks.rutgers.edu (Theodore A. Kaldis)
Newsgroups: comp.sys.ibm.pc
Subject: Re: DOS 3.21 --> 3.3 problems
Summary: DOS 3.21 --> 3.3 problems
Keywords: DOS 3.21, 3.3 , SYS command, doesn't work
Message-ID: 
Date: 6 Jun 88 20:43:20 GMT
References: <1286@ark.cs.vu.nl>
Organization: Rutgers Univ., New Brunswick, N.J.
Lines: 52

In article <1286@ark.cs.vu.nl>, bagron@cs.vu.nl (Rene Baart) writes:

-} I want to upgrade my MS-DOS from version 3.21 to version 3.3.  However, when
-} I give the command "SYS C:", I get an error-message saying "not enough room
-} for system on drive C:"

-} One obvious solution would be to reformat the hard disk using 3.3, but I
-} feel that there must be a SMARTER way to replace those system files (i.e.
-} without reformatting or losing data).  Does anyone know a SAFE way to get
-} the SYS command to work?  If so, I'd be happy to hear about it.

-} Could it be that the "unfragment" program I ran on the hard disk has
-} squeezed the files so tight that there's simply no room left for 3.3?


You are going to have to clear enough contiguous space at the beginning of your
hard disk to accommodate both system files.  I was faced with exactly the same
problem.  The approach that I took is certainly not a simple one, and does
carry a bit of risk, like if you make a mistake and don't catch it.  But it
worked for me, and I think it beats reformatting the whole hard disk.  I'm not
suggesting you try it unless you have a fairly good understanding of disk
structures (cluster sizes, file allocation table entries, directory entries,
and the like).

What I did was use Norton Speed Disk, which does the same thing as your
'unfragment' program, to create contiguous files.  I then used Norton Utilities
to change the file attributes on the system files to normal, and then erased
them.  Then I changed the attributes for the first few subdirectories to normal
files, and gave them a size of 2048, copied them to floppies, and then erased
them from the hard disk.  (Norton Speed Disk puts subdirectories immediately
after the system files.  Note also the cluster size, mine are 2048 bytes long,
but this isn't true for all hard disks.  Also, if a subdirectory takes up more
than one cluster, i.e., has a lot of files, the size entry you put in should
reflect the size of the total number of clusters occupied by the subdirectory.)

This created enough space for me to load the system.  (Note also that the first
two directory entries on the root directory must be empty in order to install
the system.)  After doing so, I then recopied the directory files back to the
hard disk.  The very NEXT thing I had to do was change the cluster entries in
the subdirectories themselves (the single dot entries) to reflect the current
clusters they were now occupying.  Also, for all subdirectories of any of these
directories, I had to change the cluster entry of the parent directory (the
double dot entry) to reflect the new cluster number of the parent.  In my case,
I think one subdirectory went three levels deep.  After this was done, I went
back to the root and changed the subdirectory attributes back to directory,
removed the file sizes, and ran Speed Disk again, and that was that.  If anyone
knows of a simpler method yet, feel free to advise.
-- 
----------------------------------------------------------------------------
    Theodore A. Kaldis       |    kaldis@remus.rutgers.edu
    P.O. Box #1212           |    {...}!rutgers!remus.rutgers.edu!kaldis
    Woodbridge, NJ  07095    |    (201) 283-4855  (voice)
----------------------------------------------------------------------------