GRUB & menu.lst

luckyb | Τετ, 06/04/2008 - 22:19 | 9' | 2

Τα κατωτέρω είναι για να πάρετε μια πολύ μικρή γεύση από τον πολύ δυνατό GRUB και το αρχείο ρυθμίσεων του, το menu.lst.
Το όλο κείμενο είναι ελεύθερη (μα πολύ ελεύθερη μιλάμε) μετάφραση από το http://www.gnu.org/software/grub/manual/html_node/

1. Εισαγωγικά
Εν συντομία, ένας boot loader είναι το πρώτο λογισμικό που βλέπει ένας ΗΥ όταν ξεκινάει. Είναι υπεύθυνος για τη φόρτωση και την μεταφορά ελέγχου στον kernel ενός λειτουργικού συστήματος. Με τη σειρά του ο kernel, αρχικοποιεί το υπόλοιπο του λειτουργικού συστήματος.
Ο GNU GRUB είναι ένας πολύ ισχυρός boot loader και μπορεί να φορτώσει τόσο λειτουργικά συστήματα ελεύθερου λογισμικού, όσο και κλειστού (με τη χρήση της λειτουργίας chain loading).
Όταν κάνουμε boot με τον GRUB, μπορούμε να χρησιμοποιήσουμε είτε γραμμή εντολών, είτε μενού. Με την γραμμή εντολών εισάγουμε χειροκίνητα τον σκληρό δίσκο και το όνομα του αρχείου του kernel. Με το μενού, απλά επιλέγουμε ένα λειτουργικό σύστημα χρησιμοποιώντας τα βελάκια. Το μενού βασίζεται σε ένα αρχείο ρυθμίσεων, το menu.lst

2. Χρήσιμη ονοματολογία
Το πως ονομάζει ο GRUB τα μέσα αποθήκευσης είναι λίγο διαφορετικό απ' ότι έχουμε συνηθίσει μέχρι τώρα. Δείτε τα ακόλουθα παραδείγματα:

α. (fd0)
Καταρχήν, ο GRUB απαιτεί το όνομα της συσκευής να εσωκλείεται σε παρενθέσεις. Το "fd" σημαίνει ότι πρόκειται για έναν οδηγό δισκέτας (floppy disk). Ο αριθμός "0" δηλώνει την αρίθμηση της συσκευής και ξεκινάει πάντα από το μηδέν. Αυτή η έκφραση σημαίνει ότι ο GRUB θα χρησιμοποιήσει ολόκληρη τη δισκέτα.

β. (hd0,1)
Εδώ το "hd" μας λέει ότι έχουμε να κάνουμε με σκληρό δίσκο (hard disk). Ο πρώτος ακέραιος "0" δηλώνει την αρίθμηση του δίσκου (στην προκειμένη περίπτωση ο πρώτος δίσκος) και ο δεύτερος αριθμός "1" δηλώνει την αρίθμηση της κατάτμησης στον συγκεκριμένο σκληρό (στην προκειμένη περίπτωση η δεύτερη κατάτμηση). Επαναλαμβάνω ότι η αρίθμηση ξεκινάει από το μηδέν και όχι από το ένα. Συμπερασματικά, η ανωτέρω έκφραση σημαίνει ότι ο GRUB θα χρησιμοποιήσει μια μόνο κατάτμηση και όχι ολόκληρο τον σκληρό δίσκο.

γ. (hd1,4)
Αυτό μας λέει ότι θα χρησιμοποιηθεί το πρώτο "extended partition" του δεύτερου σκληρού δίσκου. Προσέξτε ότι η αρίθμηση των extended partitions ξεκινάει από το τέσσερα, ανεξάρτητα με τον αριθμό των primary partitions που έχει ο σκληρός δίσκος.

Σημείωση :
Ο GRUB δεν διαχωρίζει τους IDE από τους SATA σκληρούς δίσκους. Απλά μετράει από το μηδέν, ανεξαρτήτως από τον τύπο τους. Συνήθως, οι IDE σκληροί έχουν χαμηλότερη αρίθμηση από τους SATA, αλλά αυτό δεν είναι κανόνας (πχ μπορεί να αλλάξετε την boot sequence από το bios)

3. menu.lst
Όπως αναφέρθηκε πριν, για να χρησιμοποιήσουμε το μενού του GRUB, χρειαζόμαστε ένα αρχείο ρυθμίσεων: το menu.lst. Αυτό βρίσκεται στον υποκατάλογο /boot/grub και μπορούμε να το επεξεργαστούμε μόνο ως root
Προσοχή: εάν έχουμε εγκαταστήσει παραπάνω από μια διανομές και η καθεμία έκανε εγκατάσταση του GRUB από την αρχή, το menu.lst θα βρίσκεται στο αντίστοιχο partition που ορίσαμε κατά την εγκατάσταση της τελευταίας διανομής. Δηλαδή, αν έχουμε βάλει πρώτα μια Fedora στο πρώτο partition και μετά ένα Sidux στο δεύτερο partition (και δεν ορίσαμε τίποτα άλλο περίεργο), Το menu.lst μπορούμε να το βρούμε:
α. Αν κάνουμε boot με Sidux, στον υποκατάλογο /boot/grub
β. Αν κάνουμε boot με Fedora, στον υποκατάλογο "Εκεί που κάνει η Fedora mount το δεύτερο partition"/boot/grub (πχ /media/sda2/boot/grub)

Εντολές γενικού ενδιαφέροντος (?)
Στην αρχή του, το menu.lst περιλαμβάνει κάποιες εντολές ρυθμίσεων. Όταν λέμε στην αρχή του, εννοούμε πριν αρχίσουν τα "title".
Οι γραμμές που ξεκινούν με τον χαρακτήρα "#" είναι απλά σχόλια και δεν λαμβάνονται υπ' όψη.

default 0
Εδώ δηλώνουμε την πρώτη εισαγωγή (δηλαδή ποιο λειτουργικό σύστημα - βλέπε παρακάτω στα "title") ως προεπιλογή για boot. Μπορείτε να το αλλάξετε σε 1,2,...

timeout 10
Το GRUB θα κάνει boot αυτόματα σε 10 δευτερόλεπτα, εκτός κι αν πατήσετε κάποιο πλήκτρο.

fallback 1
Αν για κάποιο λόγο η προεπιλεγμένη εισαγωγή δεν δουλέψει, κάνε boot από την δεύτερη

Εντολές κάτω από τα title
Εδώ είναι που βάζουμε όσες εισαγωγές θέλουμε για τις διανομές μας.

title Debian GNU/Linux, kernel 2.6.25-3.slh.3-sidux-686
Αυτή η εντολή θα δημιουργήσει μια καταχώριση (απ' αυτές που διαλέγουμε με τα βελάκια) με τον τίτλο "Debian GNU/Linux, kernel 2.6.25-3.slh.3-sidux-686". Από κάτω της θα οδηγήσουμε τον GRUB να βρει τον επιθυμητό kernel με άλλες εντολές.

root hd(0,0)
kernel /vmlinuz-2.6.25-3.slh.3-sidux-686

Με τις ανωτέρω εντολές, ο GRUB θα χρησιμοποιήσει τον kernel ονόματι "vmlinuz-2.6.25-3.slh.3-sidux-686" ο οποίος βρίσκεται στο πρώτο partition του πρώτου σκληρού δίσκου.

title OS/2
root (hd0,1)
makeactive
# chainload OS/2 bootloader from the first sector
chainloader +1

Με τις ανωτέρω εντολές θα κάνει boot σε κάποιο δεύτερο λειτουργικό (ή διανομή αν προτιμάτε) χρησιμοποιώντας chain-loading. (Με το chain loading στην ουσία παραπέμπουμε τον GRUB σε έναν διαφορετικό GRUB ο οποίος είναι εγκατεστημένος στον boot (πρώτο) sector του συγκεκριμένου partition στο οποίο υπάρχει το δεύτερο λειτουργικό. Ο "κανονικός" GRUB τον οποίο βλέπει το bios όταν ξεκινάει ο υπολογιστής είναι πάντα εγκατεστημένος στον mbr - master boor record του σκληρού δίσκου).

title Palio_Windowz
root (hd0,0)
makeactive
chainloader +1

Όμοια με το ανωτέρω, αλλά για windows.

Δώσε αστέρια!
Σχόλια

Ωραιος οδηγος αυτος αγαπητέ lyckyb , δεν ξερω εαν η μεταφραση ειναι ελευθερη η οχι παντως εμενα με βοηθησε αρκετα στο να καταλαβω μερικα πραγματα για το grub και τι ειναι ολα αυτα στο menu.lst!

==============================
Use The Source!

ευχαριστουμε πολυ για το χρονο σου,χρησιμοτατο το αρθρο σου!
νομιζω ειναι καλο να τα ξερουμε αυτα ,οπως και τι ειναι bios και βασικα τι κανουν και γιατι.
καλο εργαλειακι ειναι το super grub disk(που απο οτι βλεπω εχει γραφτει γιαυτο ενα πολυ κατατοπιστικο αφιερωμα στο φορουμ) για διορθωσεις και ρυθμισεις οπως και το qgrubeditor αν δε κανω λαθος.