Oude computers zijn leuk! Bijvoorbeeld voor het spelen van DOS-spelletjes. Of om eens terug te kijken op hoe dingen vroeger gingen. Dit keer stof ik een dertien jaar oude computer af om er FreeDOS op te installeren...

hetlab logo
Henk van de Kamer

 

Eind vorig jaar zag ik in een YouTube-filmpje (https://www.youtube.com/watch?v=b0otkt-POVRc) een oud, doch bekend voorkomend systeem voorbijkomen. Had ik een paar jaar terug niet iets dergelijks van een vriend gekregen? Zoeken in mijn kratten met spullen voor experimenten leverde een HP thin client op met modelnummer t5135 gefabriceerd in november 2007, zoals te zien op de afbeelding hiernaast.

            hetlab 315 t5135
 

HP thin client t5135

DUNNE KLANT
Een thin client wordt gebruikt voor toegang van servers waarop bijvoorbeeld Windows draait.Lokaal is op een IDE-flash-module een minimale Linux geïnstalleerd. De module is 64 MB groot en heeft een 2,5inch 44-pins IDE female connector. De extra vier pinnen verzorgen de spanning die op gewone harddisks via een aparte aansluiting wordt geleverd. Normaal hebben harddisk en moederbord een male aansluiting en bevat de IDE-kabel aan beide kanten een female connector. In feite is de kabel nu gewoon in de module zelf verwerkt.
De thin client-omgeving is nog steeds bij HP te downloaden, maar voor eventueel toekomstige experimenten wilde ik graag de versie op de module zelf back-uppen. Ik heb daarom in China een adapter besteld met twee male connectoren. Hiermee kan de flash-module op een SATA/IDE-naar-usb-adapter worden aangesloten en zo via een andere computer benaderd worden.
Omdat 64 MB erg weinig is voor een meer volledige Linux-omgeving, besloot ik meteen een44-pins IDE-naar-CF (Compact Flash) kaart-adapter, 4 GB CF-kaart en 5 cm 44-pins IDE-kabel mee te laten komen. Tezamen met de bovenstaande adapter iets meer dan tien euro. Zoals duidelijk mag zijn, bekijk ik op YouTube de nodige retro-kanalen en wordt dit vaak als alternatief voor een harddisk in retro-systemen aangeraden. De kast heeft te weinig ruimte voor een 2,5-inch IDE-laptop harddisk, maar dit moet passen.

FREEDOS 
Een maand later was de bestelling in huis en bleek de flash-module niet meer te werken. Dit had ik niet getest in het apparaat zelf, omdat ik, zoals gezegd, eerst een back-up wilde maken. Na controle bleek ook het BIOS van de thin client de module niet te herkennen. Maar goed dat ik gelijktijdig een alternatief had besteld! Na voorzichtig ruim een millimeter te hebben weg gevijld van een van de connectoren, kon ik de korte IDE-kabel op het moederbord prikken. Had ik al gezegd dat het krap was?
Nu heb ik weinig met moderne spelletjes, dus mijn idee is een systeem met een Linux-distributie uit 2007, FreeDOS en Windows 98 SE. Voor een ander experiment besloot ik al eerder te beginnen met FreeDOS. Dit wordt normaal gesproken geïnstalleerd via een cd-rom, nog zo’n stuk techniek dat we tegenwoordig niet meer gebruiken. Gelukkig worden .iso-bestanden tegenwoordig zodanig in elkaar gezet dat ze ook naar een usb-flashdrive zijn weg te schrijven. Let op, dat is iets anders dan ze kopiëren! Voor Windows wordt tegenwoordig vaak balenaEtcher aangeraden à 112 MB aan schijfruimte. De FreeDOS installatie-.iso is met 31 MB een factor vier kleiner! Onder Linux doen we exact hetzelfde met een 77 KB - ruim een factor duizend kleiner - command-line programma als volgt:

root@obelix:~# dd if=FD12LITE.img of=/dev/sdb bs=1M

USB HARDDISK?
Na het booten met de hierboven gemaakte usb-flashdrive kon ik de installatie - gewoon een batchbestand - afbreken. Dit is nodig om als eerste de CF-kaart in te delen met het fdisk-programma. Daarin zag ik dat de usb-flash-drive ook als harddisk wordt gezien. Dat moet ik waarschijnlijk even uitleggen. FreeDOS zelf heeft namelijk geen drivers voor usb-flashdrives. Veel fabrikanten van usb-spullen zeggen dat er geen driver nodig is, maar dat is klinkklare onzin! Wat ze bedoelen, is dat de standaard-driver van het besturingssysteem zelf afdoende is. Sinds de introductie van usb worden deze door de ontwikkelaars van besturingssystemen gemaakt en geïnstalleerd.
In een ver verleden heb ik voor MS-DOS op een Japanse website een driver voor usb-flash-drives gevonden (https://www.hetlab.tk/artikelen/dos-bootdiskette-met-usb). Deze werkt echter niet onder FreeDOS. In principe zou een driver gemaakt kunnen worden, maar niemand heeft dat tot op heden gedaan. Als we een tweede usb-flashdrive plaatsen, wordt deze dus niet gevonden. De hamvraag is nu waarom de eerste dan wel wordt herkend. Het antwoord is simpel: dankzij een driver in het BIOS. Dit is een sterkversimpelde variant, die daarom alleen werkt voor het exemplaar waarvan gestart wordt.

hetlab 315 freedos 2
Het ‘installeren’ van FreeDOS

SLIMMER PLAN
Na bovenstaande ontdekking vroeg ik mij af of FreeDOS op de resterende vrije ruimte van de usb-flashdrive geïnstalleerd kan worden.Het fdisk-programma had geen moeite om de benodigde partitie te maken. Helaas weigerde de installatie om die partitie te gebruiken. Nu is installeren van DOS niets anders dan een speciale optie in het format-programma. Voor het eerdergenoemde plan besloot ik tot een kleine omweg om uiteindelijk een nette indeling te krijgen.
De bovenste balk in de illustratie hierboven geeft de situatie weer na het aanmaken van de usb-flashdrive met de FreeDOS-installatie. In het donkergrijze deel kunnen nieuwe partities gemaakt worden. Dat zijn de rechthoeken met eengekleurde rand. Een lichtgele inhoud betekent dat deze partitie is geformatteerd en dus data kan bevatten. Wit moet nog geformatteerd worden. De b (= bootable) geeft aan dat vanaf deze partitieis gestart. Oftewel: de rode rechthoek is een 31 MB grote partitie met de FreeDOS-installatie en het donkergrijze deel is de overige 16 GB die de gebruikte usb-flashdrive groot is.
Via het fdisk-programma maken we nu een 100 MB- (blauw) en 10 MB- (groen) partitie. Debootsector van DOS start de actieve partitie en fdisk denkt dat je de grootste wilt. De benodigde herstart gaat dus mis als je vergeet om de rode partitie weer actief te maken. Na de herstart ‘installeren’ we FreeDOS op de 10 MB-partitie als volgt:

C:\>format e: /s /u /v:dostemp 
C:\>xcopy c:\fdsetup\bin\ e:\bin\ 
C:\>copy c:\hk\*.* e:\
C:\>fdisk

De eerste opdracht formatteert de groene 10 MB-partitie, die in DOS de driveletter E heeft gekregen. De ‘/s’ is de optie om de systeem-bestanden te ‘installeren’. Het tweede commando kopieert de standaard DOS-commando’s en de derde een fdconfig.sys en autoexec.bat die ik al had voorbereid. Met de laatste opdracht maken we de E-partitie actief. Het resultaat is de tweede balk in de illustratie. Als alles correct is uitgevoerd, kunnen we nu vanaf de groene partitie starten en wordt dit de C-drive. De rode wordt D en de blauwe krijgt nu de letter E.

NOGMAALS ‘INSTALLEREN’’
 Als de eerste ‘installatie’ correct is verlopen, kunnen we met het fdisk-programma de rode en blauwe partitie verwijderen. Vervolgens maken we voor de oranje partitie dezelfde grootte als wevoor de tijdelijke blauwe opvul-partitie hebben gebruikt. Als je meer wilt, moet je in de eerste stap uiteraard de grootte van de blauwe aanpassen.Na een herstart kunnen we bovenstaande met een paar kleine aanpassingen herhalen:

C:\>format d: /s /u /v:assembly 
C:\>xcopy c:\bin\ d:\bin\ 
C:\>copy fdconfig.sys d:\ 
C:\>copy autoexec.bat d:\ 
C:\>fdisk

Met de laatste stap maken we de oranje partitie actief en als het herstarten goed gaat, is de situatie nu zoals de derde balk in de illustratie. Uiteraard kan nu met het fdisk-programma de tijdelijke groene DOS-partitie weer verwijderd worden. Na een laatste herstart is het resultaat de laatste balk in de illustratie.

TOT SLOT
 Bovenstaande procedure is wat omslachtig, maar het werkt. Mogelijk dat de naam van de partitie- de ‘v’-optie in het format-commando - duidelijk maakt waarvoor ik deze ga gebruiken. Zoals gezegd is dat een experiment voor een toekomstige Het Lab-aflevering. Mijn systeem gebruikt niet het moderne LBA (Logical Block Addressing),maar het oudere CHS (Cylinder Head Sector). Het lijkt erop dat deze waarden niet correct worden gecodeerd in moderne usb-flashdrives. Gelukkig weet FreeDOS betere waardes voor de laatstete vinden, maar wel met een waarschuwing. De oplossing hiervoor kun je op mijn website terugvinden: hetlab.tk