Next Previous Contents

6. Πρόσβαση σε τεράστιας χωρητικότητας δίσκους όταν δεν μπορεί το BIOS

Το σύστημα στο χώρο εργασίας μου έχει IDE δίσκο χωρητικότητας 1GB. Το BIOS μπορεί να 'δει' μόνο τα πρώτα 504 MB του IDE. (όπου MB σημαίνει 2**10 bytes, και όχι 10**6 bytes). Έτσι έχω ένα MS-DOS partition των 350 MB /dev/hda1 και το Linux root μου σε ένα partition 120 MB /dev/hda2.

Το MS-DOS δεν μπορούσε να εγκατασταθεί μόνο του σωστά όταν ο δίσκος ήταν καινούριος. Το Novell DOS 7 είχε το ίδιο πρόβλημα. Ευτυχώς για μένα, η IBM ξέχασε να βάλει την δισκέτα "OnTrack" στο κουτί μαζί με το δίσκο. Ο δίσκος υποτίθεται ότι θα ερχόταν μαζί με ένα προϊόν με την ονομασία "OnTrack Disk Manager." Αν έχετε μόνο MSDOS, μάλλον θα πρέπει να το χρησιμοποιήσετε.

Γι' αυτό το λόγο έφτιαξα ένα partition table με το fdisk του Linux. Το MSDOS-6.2 αρνιόταν να εγκατασταθεί μόνο του στο /dev/hda1. Έλεγε κάτι σαν ``αυτή η έκδοση του MS-DOS είναι για νέες εγκαταστάσεις. Ο υπολογιστής σας έχει ήδη το MS-DOS για Αυτό χρειάζεται να προμηθευτείτε μια πιο ανανεωμένη έκδοση από τον προμηθευτή σας.'' Στην πραγματικότητα, ο δίσκος ήταν ολοκαίνουργος.

Τι βλακεία! Έτσι έτρεξα το fdisk του Linux και διέγραψα το partition 1 από το table. Αυτό ικανοποίησε το MS-DOS 6.2 το οποίο προχώρησε για να δημιουργήσει ένα ολόιδιο partition 1 σαν Αυτό που είχα μόλις διαγράψει και το οποίο το είχε εγκαταστήσει το ίδιο. Το MS-DOS 6.2 έγραψε το δικό του Master Boot Record στο δίσκο, παρόλαυτά δεν μπορούσε να ξεκινήσει.

Ευτυχώς είχα ένα πυρήνα Slackware σε μια δισκέτα (δημιουργημένο από το πρόγραμμα εγκατάστασης του Slackware "setup") και έτσι ξεκίνησα το Linux και έγραψα το LILO πάνω από το κατεστραμμένο MBR του MS-DOS. Δούλεψε. Αυτό είναι το αρχείο /etc/lilo.conf που χρησιμοποίησα:

boot = /dev/hda
map = /lilo-map
delay = 100
ramdisk = 0             # Turns off ramdisk in Slackware kernel
timeout = 100
prompt
disk = /dev/hda         # BIOS only sees first 500 MB.
   bios = 0x80          # specifies the first IDE.
   sectors = 63         # get the numbers from your drive's docs.
   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

Αφότου εγκατέστησα αυτά τα συστήματα, επαλήθευσα ότι το partition που περιέχει τα zImage, boot.b, map, chain.b και αρχεία μηνυμάτων μπορεί να χρησιμοποιήσει ένα σύστημα αρχείων msdos, με την προϋπόθεση ότι δεν έχει συμπιεστεί ο δίσκος με κάποιο πρόγραμμα "stacker" ή "doublespace". Έτσι θα μπορούσα να έχω το DOS partition στο /dev/hda1 με 500 MB.

Επίσης, έμαθα ότι το "OnTrack" θα μπορούσε να είχε γράψει ένα partition table που να αρχίζει μετά από μερικές δεκάδες bytes από την αρχή του δίσκου, αντί για την αρχή του, και πως είναι δυνατόν να "πειράξεις" τον οδηγό του Linux για IDE ώστε να ξεπεράσει αυτό το πρόβλημα. Αλλά η εγκατάσταση θα ήταν αδύνατη χωρίς τον προμεταγλωττισμένο πυρήνα Slackware. Τελικά, η IBM μου έστειλε μια δισκέτα "OnTrack". Κάλεσα την τεχνική υποστήριξη της OnTrack. Μου είπαν πως το Linux χάλασε γιατί δεν χρησιμοποιεί το BIOS. Τελικά πέταξα την δισκέτα τους!


Next Previous Contents