On the virtual get-together today, we tested the new FDISK 1.3.3 with a
large virtual hard disk. I wanted to report a bug from that.

Test setup: QEMU on Linux. "hda" (hard drive .. created with *qemu-img
create 4gb.img 4G*) is set to a blank 4GB virtual disk file. "fda" (floppy)
is set to a virtual floppy image with a copy of FDISK 1.3.3. "cdrom" is set
to FreeDOS 1.3 RC3 (basically, the initial boot environment)

Procedure: Boot QEMU using FreeDOS 1.3 RC3 and go into the installer, but
immediately exit to DOS. This means the FreeDOS installer is on "A:" and
the floppy image with FDISK 1.3.3 is on "B:"

1. Change to "B:" and run FDISK

2. "Create DOS partition or Logical DOS Drive" - "Create Primary DOS
Partition" - set the new partition to "3000" Mbytes

... this creates a "C:" partition that is "3004" Mbytes

3. "Create DOS partition or Logical DOS Drive" - "Create Extended DOS
Partition" - this shows the "Maximum space available for partition is 1098
MBytes" .. use that default value to create the extended partition

4. FDISK asks to "Create Logical DOS Drive in the Extended DOS Partition" -
do that, but set the logical drive to be 500 Mbytes

... this creates a "D:" partition that is "502" Mbytes

5. FDISK asks to "Create a Logical DOS drive in the Extended DOS Partition"
- and shows the "Maximum space available for partition is 596 Mbytes" ..
use that default value to create the next extended partition

... this creates an "E:" partition that is "588" Mbytes

6. FDISK asks to "Create a Logical DOS drive in the Extended DOS Partition"
- and shows the "Maximum space available for partition is 8 Mbytes" .. use
that default value to create the next extended partition

... this doesn't create a new partition, but instead now displays "D:" as
"0" Mbytes, with "FAT12" and "100%" usage

... FDISK also says "All available space in the Extended DOS Partition is
assigned to logical drives" - so I exit


But the virtual disk is now messed up. And it seems FDISK is confused too.
When I try to exit the program with Esc, it displays:

pDrive->log_drive[index].start_cyl (0) != extended_cylinder (383)



And if I exit QEMU, I can use Linux fdisk to display the contents of my
virtual drive image:


$ fdisk -l 4gb.img
> Disk 4gb.img: 4 GiB, 4294967296 bytes, 8388608 sectors
> Units: sectors of 1 * 512 = 512 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> Disklabel type: dos
> Disk identifier: 0x00000000
> Device     Boot   Start        End    Sectors   Size Id Type
> 4gb.img1             63    6152894    6152832   2.9G  b W95 FAT32
> 4gb.img2        6152895    8385929    2233035   1.1G  5 Extended
> 4gb.img5        6152958 4301120190 4294967233     2T  1 FAT12
> 4gb.img6        7181118    8385929    1204812 588.3M  b W95 FAT32




Note the "FAT12" partition is set completely wrong.

Interestingly, things are quite different if I don't try to create that
last 8MB logical drive. I'll send that in a follow-up.
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to