I'm awfully sorry for not focusing on this topic for days now, but I found a solution to the problem. Unfortunately, the solution is not 100% perfect...
I used a smaller hard disk image of 64 MB and I even found a way to fix the CHS problem creating the hard disk image. I had to use DOSBox 0.74 Megabuild 6 to create a 64 MB hard disk image IMGMAKE. The input to create a 64 MB hard disk image will use 936 cylinders, 4 heads and 35 sectors per track for a total of 131,040 sectors and this works out to almost 64 MB (at 512 bytes per sector):
Quote
Z:\IMGMAKE D:\MSDOS.IMG -t hd -chs 936,4,35
Creating an image file with 936 cylinders, 4 heads and 35 sectors
D:\MSDOS.IMG
However, when I attempted to access the hard disk image, I got this warning:
Quote
Unrecognized Partition Table for Drive 80. Please rebuild it using a Microsoft-compatible FDISK tool.
To fix this, I had to use the FDISK utility to delete the partition and recreate it only to find that I was greeted with the Missing Operating System error, so what I did was to mount the BOOT.IMG disk image as drive A via DOSBox and reformat the hard disk image.
I copied the hard disk image to the root directory on the hard disk of the Tecra 720CDT via a network and this is the result when I booted from the 64 MB hard disk image:
Quote
(hd0,0)
Filesystem type is ntfs, partition type 0x7
floppies_orig, harddrives_orig=1, floppies_curr=1, harddrives_curr=2
Autodetect number-of-heads failed. Use default value 255
Autodetect sectors-per-track failed. Use default value 1
probed C/H/S = 936/4/35, probed total sectors = 131048
Gate A20 is turned off successfully.
Now that the size of the hard disk image has been reduced, WinImage is reporting that the size of the drive is 65,502 KB with 33,072 KB available.
In the menu.lst file on the root directory of drive C, I added the following lines...
Quote
title Microsoft MS-DOS 6.22 (64 MB RAM disk)
find --set-root /msdos.img
map --ram-drive=0x9f
map --rd-base=0x5000000
map --rd-size=0x100000
map (hd0) (hd1) (rd)
map (rd) (hd1) (hd0)
map --mem --disable-lba-mode --heads=4 --sectors-per-track=35 /msdos.img (hd0)
map --floppies=1
map --a20-keep-on=0
map --hook
chainloader --disable-a20 (hd0)+1
rootnoverify (hd0)
boot
title Microsoft MS-DOS 6.22 (Maintenance)
find --set-root /msdos.img
map --ram-drive=0x9f
map --rd-base=0x400000
map --rd-size=0x100000
map (hd0) (hd1) (rd)
map (rd) (hd1) (hd0)
map --disable-lba-mode --heads=4 --sectors-per-track=35 /msdos.img (hd0)
map --floppies=1
map --a20-keep-on=0
map --hook
chainloader --disable-a20 (hd0)+1
rootnoverify (hd0)
boot
In the first menu, I had to added the ability to boot MS-DOS 6.22 on a 64 MB hard disk image with LBA mode disabled with 4 heads and 35 sectors per track. The hard disk image is mapped in memory effectively occupying 64 MB of system memory. I also used the --ram-drive=0x9 map parameter to map a hidden RAM disk, set the --rd-base=0x5000000 parameter below it to reduce the total memory to 80 MB. With 80 MB allocated for a RAM disk and 64 MB occupied for a hard disk mapped in memory, this reduced the size of the system memory to 16 MB.
In maintenance mode, the parameter --rd-base=0x400000 is used to reduce the system memory all the way down to just 4 MB of system memory. If I select "Microsoft MS-DOS 6.22 (Maintenance)" to work on the hard disk image, I had to press F8 and not load EMM386 or I will end up with a "Bad or Missing Command Interpreter" error.
I can still boot from the drive without problems, but if the hard disk image is mapped as a RAM disk, then all of the contents inside the emulated drive will be lost once the system reboots. So, in order to get around this, I had to get a parallel port Iomega ZIP disk, install Windows 3.1 inside the ZIP drive (on drive D:) along with all of the software, install the Iomega ZIP utilities to lock the ZIP drive and treat it as a hard disk. And then after I exit Windows, the ZIP drive gets treated as a floppy disk again.
In order to maintain the health of the ZIP disk, I had to disable the swap file. The end result is that with a lot of software installed on the ZIP disk along with Norton Desktop and the 1024x768 wallpaper, the total amount of memory was reduced to 11.6 MB. If I don't feel comfortable about that, I may have to increase the base of the RAM disk to 96 MB and leave 32 MB available.
Booting MS-DOS from a hard disk image via GRUB4DOS should be done only for testing purposes. Because GRUB4DOS has problems with loading expanded memory managers in the CONFIG.SYS upon booting from the hard disk image, it's just too hard to get it to work properly. I had to either do the following:
1. Use the --mem parameter to map the hard disk image into memory which effectively reduces the total amount of system memory.
2. Don't use expanded memory managers at all.
(I tested the 64 MB hard disk image when I booting successfully from the MSDOS.IMG hard disk image in a Windows for Workgroups 3.11 Virtual PC VM.)
If this information is still overwhelmingly irrelevant, I don't know what else to tell you. I tried my best to get it to work as planned, but it's not 100% perfect, ya know. I'll look into other solutions to get MS-DOS working more perfectly inside GRUB4DOS in the foreseeable future.