Next Previous Contents

8. Grote disks benaderen wanneer de BIOS dit niet kan

Opmerking: 1GB is "Groot"? Wel, ooit...

Het systeem op kantoor heeft een IDE disk van 1 GB. De BIOS ziet slechts de eerste 504 MB van deze IDE. (MB betekent hier 2**10 bytes, geen 10**6 bytes.) Dus heb ik MS-DOS op een 350 MB partitie /dev/hda1 en de Linux root op een 120 MB partitie /dev/hda2.

Hauke Laging (hauke@laging.de) en Bob Hall (bhall@hallfire.org) merkte hierin een kleine fout op, dus raadde ze aan een MB te stellen op 2**20 bytes in plaats van 2**10 bytes. Bedankt voor de correctie. Bovendien zou Hauke graag meer willen leren over wat hij noemde, "tekencodes bij het opstarten van LILO, wanneer LILO stopt met LI, LI-, LIL- of iets dergelijks". Ik zou een bijdrage gerelateerd aan deze kwestie of een geldige weblink daarnaar zeer waarderen.

Hier is de bijdrage van Zohar Stolar, zohar@numericable.fr):

B. LILO boot foutcodes

http://www.tldp.org/HOWTO/Bootdisk-HOWTO/a1483.html

Met dank voor de link.

MS-DOS kon zichzelf niet correct installeren toen de disk nieuw was. Bij Novell DOS 7 werd hetzelfde probleem ervaren. Gelukkig vergat IBM de "OnTrack" diskette in de doos bij de disk te doen. Er werd verondersteld dat bij de disk een product met de naam "OnTrack Disk Manager" werd geleverd. Als je alleen MSDOS hebt, denk ik dat je het moet gebruiken.

Dus maakte ik een partitietabel aan met Linux' fdisk. MSDOS-6.2 weigerde zichzelf in /dev/hda1 te installeren. Het gaf een foutmelding terug als ``deze release van MS-DOS is voor nieuwe installaties. Op je computer staat reeds MS-DOS, dus je hebt een upgrade release nodig van je dealer.'' In werkelijkheid was de disk gloednieuw.

Wat een puinhoop! Dus draaide ik Linux' fdisk nogmaals op en verwijderde partitie 1 van de tabel. Hiermee was MS-DOS 6.2 tevreden, dat verderging met het aanmaken van exact dezelfde partitie 1 die ik net ahd verwijderd en het installeerde zichzelf. MS-DOS 6.2 schreef zijn Master Boot Record op de disk, maar kon niet booten.

Gelukkig had ik een Slackware kernel op diskette (aangemaakt door het Slackware installatieprogramma "setup"), dus bootte ik Linux en schreef Lilo over MS-DOS defecte MBR. Dit werkt wel. Dit is het /etc/lilo.conf bestand dat ik gebruikte:

boot = /dev/hda
map = /lilo-map
delay = 100
ramdisk = 0             # Zet ramdisk uit in Slackware kernel
timeout = 100
prompt
disk = /dev/hda         # BIOS ziet alleen de eerste 500 MB.
   bios = 0x80          # specificeert de eerste IDE.
   sectors = 63         # haal de getallen uit de docs van je disk.
   heads = 16
   cylinders = 2100
image = /vmlinuz
  append = "hd=2100,16,63"
  root = /dev/hda2
  label = linux
  read-only
  vga = extended
other = /dev/hda1
  label = msdos
  table = /dev/hda
  loader = /boot/chain.b

Nadat ik deze systemen installeerde, verifieerde ik dat de partitie met de zImage, boot.b, map, chain.b en message bestanden gebruik kon maken van een msdos bestandssysteem, zolang het niet is bewerkt met "stacker" of "doublespace". Dus kon ik de DOS-partitie aanmaken op /dev/hda1 met 500 MB.

Ik leerde tevens dat "OnTrack" een partitietabel zou hebben geschreven die een tiental bytes verderop de disk zou zijn begonnen, in plaats van aan het begin, en het is mogelijk om de Linux IDE-driver zo te schrijven dat het dit probleem omzeilt. Maar installeren met de voorgecompileerde Slackware kernel zou onmogelijk zijn geweest. Uiteindelijk zond IBM me een "OnTrack" diskette. Ik belde de technische ondersteuning van OnTrack. Ze vertelden mij dat Linux onbruikbaar is, omdat Linux geen gebruik maakt van de BIOS. Ik gaf hun diskette weg.


Next Previous Contents