SvarDOS / edrdos

Enhanced DR-DOS kernel and command interpreter ported to JWasm and OpenWatcom C
http://svardos.org/
Other
25 stars 2 forks source link

Drive letter assignment disagree between FreeDOS and EDR kernel #59

Open boeckmann opened 3 months ago

boeckmann commented 3 months ago

EDR kernel assigns drive letters for multiple primary partitions on a drive solely by the order in the partition table. It takes not into account which of them is actve. FreeDOS (and MS-DOS) assigns the active partition first.

Workaround: Use FDISK to swap the partition entries, so that the active partition is in the first partition entry. For example:

FDISK 1 /SWAP:1,3

would swap partition table entries one and three

mateuszviste commented 3 months ago

Does that mean that with EDR the system (boot) drive could appear as "E:" if the system booted from the third partition ? That would be indeed a compatibility nuisance, and would make SvarDOS installation fail because the SvarDOS installer assumes in a couple of places that post-installation the system drive is necessarily "C:".

That being said, I never liked how MSDOS reorders the letters depending on which partition booted. It is sometimes confusing, plus it can break some applications or batch scripts. EDR's approach seems saner. Maybe the SvarDOS installer should be more flexible about the system drive's letter...

boeckmann commented 3 months ago

Does that mean that with EDR the system (boot) drive could appear as "E:" if the system booted from the third partition ? That would be indeed a compatibility nuisance, and would make SvarDOS installation fail because the SvarDOS installer assumes in a couple of places that post-installation the system drive is necessarily "C:".

Yes, that is exactly what happened to me this afternoon. I installed SvarDOS with the FreeDOS kernel on C:, and after switching to the EDR kernel the drive was suddenly D:.

That being said, I never liked how MSDOS reorders the letters depending on which partition booted. It is sometimes confusing, plus it can break some applications or batch scripts. EDR's approach seems saner. Maybe the SvarDOS installer should be more flexible about the system drive's letter...

It also caused me some headache, especially regarding FDISK. The behaviour of the FreeDOS kernel can actually be altered via configuration variables, so it supports multiple DLA algorithms. FDISK supports only the Microsoft algorithm, and there is currently no (easy) way to query which DLA the FreeDOS kernel used once booted. Worst (despite not in FreeDOS default config) case is that the drive letters between kernel and FDISK disagree, and the user deletes a wrong partition. There could be some heuristics implemented to verify the drive letters, but this would be out of sync as soon as the user modifies the partition layout. From that point on, FDISK has to calculate the drive letter by itself.

boeckmann commented 1 month ago

Leaving this open for documentation purposes, as this probably will not be changed in the next time.