Next Previous Contents

7. Accedere a grossi dischi che il BIOS non vede

Avviso: 1 GB è "grosso"? Forse una volta...

Il sistema che ho in ufficio ha un disco IDE da 1 GB. Il BIOS può accedere solo ai primi 504 MB del disco (con MB intendo 2**10 byte, non 10**6 byte), perciò ho installato il sistema MS-DOS in una partizione da 350 MB su /dev/hda1 e la root di Linux in una partizione da 120MB su /dev/hda2.

Hauke Laging (hauke@laging.de) e Bob Hall (bhall@hallfire.org) hanno notato un piccolo errore, suggerendomi che un MB è formato da 2**20 byte, non 2**10 byte. Grazie per la correzione. Inoltre, Hauke vorrebbe saperne di più su quelli che chiama "codici a caratteri all'avvio di LILO, quando LILO si interrompe con scritte come LI, LI-, LIL- o simili". Sarebbe gradito un contributo relativo a questo problema o un valido collegamento sul web a riguardo.

Eccolo qua (il contributo è di Zohar Stolar, zohar@numericable.fr):

B. codici di errore all'avvio di LILO

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

Grazie per il collegamento.

MS-DOS non è stato in grado di installarsi correttamente quando il disco era nuovo. La versione 7 del DOS Novell aveva lo stesso problema. Fortunatamente il servizio "opzioni di IBM" aveva dimenticato di mettere il dischetto "OnTrack" nella scatola del disco, che sarebbe dovuto arrivare con un prodotto chiamato "OnTrack Disk Manager". Chi ha installato solo MS-DOS immagino lo debba usare.

A questo punto è stata creata una tabella delle partizioni con il programma fdisk di Linux. MS-DOS 6.2 si è rifiutato di installarsi su /dev/hda1 dicendo qualcosa come ``questa versione di MS-DOS è per nuove installazioni. Il vostro computer ha già MS-DOS installato, quindi vi serve un rilascio di aggiornamento.'' In effetti, il disco era nuovo di zecca.

Quindi è stato usato nuovamente il programma fdisk di Linux per cancellare la partizione 1 dalla tabella. Questo ha accontentato MS-DOS 6.2, che ha creato esattamente la stessa partizione 1 appena rimossa per installarsi. MS-DOS 6.2 ha scritto il suo Master Boot Record sul disco, ma non è riuscito ad avviarsi.

Fortunatamente avevo un kernel Slackware su un floppy (creato dal programma di installazione della Slackware "setup"), per cui ho potuto avviare Linux e installare Lilo sull'MRB difettoso del DOS. Così ha funzionato. Ecco il file /etc/lilo.conf usato:

boot = /dev/hda
map = /lilo-map
delay = 100
ramdisk = 0             # Disattiva il ramdisk del kernel Slackware
timeout = 100
prompt
disk = /dev/hda         # Il BIOS vede solo i primi 500 MB.
   bios = 0x80          # Specifica il primo disco IDE.
   sectors = 63         # Si può ottenere questo numero leggendo la documentazione del proprio disco.
   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

Dopo l'installazione di questi sistemi si potrà verificare che la partizione contenente i file zImage, boot.b, map, chain.b e message è in grado di usare un file system MSDOS, purché questo non sia compresso con stacker o doublespace. In questo caso avrei potuto creare una partizione DOS di 500 MB su /dev/hda1.

Ho anche imparato che "OnTrack" avrebbe scritto una tabella delle partizioni partendo da alcune dozzine di byte all'interno del disco invece che all'inizio, e quindi sarebbe stato possibile modificare il driver IDE di Linux per risolvere questo problema. L'installazione però sarebbe stata impossibile con il kernel Slackware precompilato. Alla fine, IMB mi ha mandato il dischetto "onTrack". Ho chiamato il loro supporto tecnico che mi ha detto che Linux non funziona perché non usa il BIOS: ho regalato il loro dischetto.


Next Previous Contents