[comp.sys.ibm.pc] DOS 3.21 --> 3.3 problems

bagron@cs.vu.nl (Rene Baart) (06/03/88)

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:" (the hard disk has 7 Meg free).
I checked the sizes for the system files and the new 3.3 files are
indeed larger :
                     3.21         3.3   (*  these are proprietary TULIP
                     ----      ------       MS-DOS versions (Tulip has trans-
IO.SYS.............16,249......22,488       lated the IO.SYS system messages in
                                            Dutch).
MSDOS.SYS..........28,496......30,128      

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.

P.S. I tried SYSing a version 3.21 DOS disk and it worked without any trouble. 
     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 ? 

+------------------------------+   @@    @@  @@  @@   +-------------------+
|         Rene' Baart          |   @@   @@  @@   @@   |      EMAIL :      |
|   Department of Economics    |   @@  @@  @@    @@   +-------------------+
| Free University of Amsterdam |   @@ @@  @@     @@   |  bagron@cs.vu.nl  |
|  Amsterdam, The Netherlands  |   @@@@  @@      @@   | groedr@econ.vu.nl |
+------------------------------+   @@@  @@@@@@@@@@@   +-------------------+

kaldis@kinks.rutgers.edu (Theodore A. Kaldis) (06/07/88)

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)
----------------------------------------------------------------------------

diwarner@sdrc.UUCP (Mark_Warner) (06/08/88)

Is everyone forgetting that DOS 3.3 does not have to have its hidden system
files contiguous.

The easiest way to upgrade from DOS 3.x to 3.3 is to do the following:

1 - Boot with 3.3 (on floppy)
2 - If upgrading from MSDOS to MSDOS then SYS C: 
    If upgrading from PCDOS to MSDOS or MSDOS to PCDOS then remove the 2
       hidden system files using Norton or PCTOOLS then SYS C:
3 - Copy various DOS programs over to the hard drive.
4 - Remove the floppy and re-boot.

Although a complete format is really the "BEST" way this does work and I have
done it on 3 different machines.  

Mark Warner                              UUCP: uunet!sdrc!diwarner
SDRC 
Milford Ohio

feg@clyde.ATT.COM (Forrest Gehrke) (06/14/88)

> Is everyone forgetting that DOS 3.3 does not have to have its hidden system
> files contiguous.

If you mean these files may be fragmented, this is only half right.
Starting with the v3.2 version, limited fragmentation is allowed.
The first hidden file (usually the bios file) MUST NOT be fragmented
and MUST be laid into the first data sectors of the bootable partition 
on the HD. In a single partition disk this starts at relative sector
number 2. This file must be the first listed file in the root directory.

The second hidden file (usually the dos file) MUST be the second 
listed file in the root directory and its inital data must follow
upon the first hidden file's data.  It may be fragmented however.

> The easiest way to upgrade from DOS 3.x to 3.3 is to do the following:
> 
> 1 - Boot with 3.3 (on floppy)
> 2 - If upgrading from MSDOS to MSDOS then SYS C: 
>     If upgrading from PCDOS to MSDOS or MSDOS to PCDOS then remove the 2
>        hidden system files using Norton or PCTOOLS then SYS C:
> 3 - Copy various DOS programs over to the hard drive.
> 4 - Remove the floppy and re-boot.
> 
> Although a complete format is really the "BEST" way this does work and I have
> done it on 3 different machines.  

You have been lucky.  A number of posters have said they followed this
very procedure only to have displayed a message "Not enough room...."
The problem is that the hidden files have grown and additional space 
must be found for them because SYS needs to load them following the
above rules I have outlined.

Assuming no change from 12 bit FAT to 16 bit is desired, the two hidden 
files and some of the following files in the root directory must be deleted.  
Using chmod, change the attributes of the two hidden files so that they 
may be deleted.  Using DIR without any switches, list the files in the 
HD root directory.  Delete the first few at the beginning of the list. 
Note how much space is needed from the size of the two new hidden files,
(again, using chmod to be able to see them, if sizes are not known).  
Just to be sure, delete a few extra files. (If these are user files, 
be sure they're saved on a floppy).

From the system floppy now use SYS C:  (be sure that the system files 
on the system floppy are hidden).  Copy in the rest of the new dos files 
to the HD.  If the files that were deleted to make room were user 
files, they may be copied back in. The original autoexec.bat and
config.sys, if used, should be in the root directory. The new
command.com must be in the root directory unless other special
arrangements have been made via shell or set comspec.

This procedure will lay in the two hidden files contiguously.  I have
done this purposely to be absolutely sure that second system file is 
listed as the second file in the root directory.

All this is necessary because the boot program/loader is a very 
simple heads-down affair.  It knows only that those two system
files are at the beginning of the HD.  If not, you will get that 
dreaded "DISK BOOT ERROR",  "NON-SYSTEM DISK...", or worse yet
"FATAL ERROR: SYSTEM HALTED",  when you try to start the system.

If despite your best efforts this happens, then go back to square
one; follow Mark's advice and do the complete HD backup and
format.

    Forrest Gehrke