Σελίδα 1 από 1

Grub2 προσαρμογή menu, που πήγε το menu.lst;

ΔημοσίευσηΔημοσιεύτηκε: 16 Δεκ 2009, 00:21
από pros
Το ερώτημα του τίτλου απασχολεί πολύ κόσμο απ' ότι φαίνεται...

Με τον Grub2 άλλαξε ο τρόπος με τον οποίο
μπορούμε να προσαρμόσουμε
το menu επιλογής λειτουργικού ή πυρήνα κατά την εκκίνηση.

Κατ' αρχήν, το πλήκτρο που πατάμε για να εμφανιστεί το μενού είναι το Shift.
Το αρχείο που αντικατέστησε το γνωστό μας menu.lst είναι το grub.cfg,
που στην αρχή του, μας προειδοποιεί, φαρδιά-πλατιά
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#


Το μυστικό είναι, ότι το αρχείο αυτό,
δημιουργείται πλέον αυτόματα από το σύστημα, όταν υπάρχει κάποιος λόγος.
Για παράδειγμα κατά την εγκατάσταση ενός νέου πυρήνα.

Τι μπορούμε να κάνουμε λοιπόν, για να συμμαζέψουμε το αρχικό μενού;

Οι οδηγίες με βάση τις οποίες το σύστημα δημιουργεί το grub.cfg
είναι μια σειρά από σενάρια εντολών που βρίσκονται στο /etc/grub.d

Ανάμεσα σ' αυτά βλέπουμε το 40_custom και το 20_memtest86+.

Αυτά τα δύο, είναι τ' αρχεία που θα τροποποιήσουμε,
για να προσαρμόσουμε το μενού του grub που βλέπουμε στην εκκίνηση.


  1. Alt+F2 και πληκτρολογούμε...
    Κώδικας: Επιλογή όλων
    gksu nautilus

  2. Βρίσκουμε το αρχείο /boot/grub/grub.cfg
    και με δεξί κλικ επιλέγουμε «Άνοιγμα με gedit»
    Ctrl+F και αναζήτηση για την γραμμή ### BEGIN /etc/grub.d/10_linux ###

  3. Αντιγράφουμε ότι υπάρχει από αυτή την γραμμή και μετά, μέχρι την ### END /etc/grub.d/10_linux ###
    στο αρχείο /etc/grub.d/40_custom. (αφού το έχουμε ανοίξει με το gedit)

  4. Στο αρχείο 40_custom μπορούμε να κάνουμε τις αλλαγές που θέλουμε στο μενού του grub.
    menuentry "Ubuntu, Linux 2.6.31-17-generic" {
    recordfail=1
    if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set e1bb9bca-33f5-47e6-a4dc-f5e896ecdcd8
    linux /boot/vmlinuz-2.6.31-17-generic root=UUID=e1bb9bca-33f5-47e6-a4dc-f5e896ecdcd8 ro quiet splash
    initrd /boot/initrd.img-2.6.31-17-generic
    }
    menuentry "Ubuntu, Linux 2.6.31-17-generic (recovery mode)" {
    recordfail=1
    if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    insmod ext2
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set e1bb9bca-33f5-47e6-a4dc-f5e896ecdcd8
    linux /boot/vmlinuz-2.6.31-17-generic root=UUID=e1bb9bca-33f5-47e6-a4dc-f5e896ecdcd8 ro single
    initrd /boot/initrd.img-2.6.31-17-generic
    }

    Για παράδειγμα, αλλαγή της εγγραφής που φαίνεται στο μενού "UBUNTU"
    ή πλήρη διαγραφή της εγγραφής για να μην εμφανίζεται στο μενού.

    Η εγγραφή για κάθε λειτουργικό που εμφανίζεται στο μενού έχει την παρακάτω μορφή.
    Αρχίζει με menuentry και τελειώνει με }

    Αυτές οι εγγραφές, πρέπει να μπούνε με την σειρά που θέλετε να εμφανίζονται.

    menuentry "LinuxMint GNU/Linux, with Linux 3.0.0-1-amd64 (on /dev/sdb1)" {
    insmod ext2
    set root='(hd1,1)'
    search --no-floppy --fs-uuid --set 28009929-c900-4771-8010-ac55b22bb8f5
    linux /boot/vmlinuz-3.0.0-1-amd64 root=UUID=28009929-c900-4771-8010-ac55b22bb8f5 ro quiet splash nomodeset video=uvesafb:mode_option=1280x720-24@60,mtrr=3,scroll=ywrap
    initrd /boot/initrd.img-3.0.0-1-amd64
    }


  5. Για να μην εμφανίζεται η επιλογή memtest στο μενού, με δεξί κλικ στο αρχείο 20_memtest86+
    > Ιδιότητες > Δικαιώματα > απενεργοποιούμε την επιλογή «Να επιτρέπεται η εκτέλεση του αρχείου ως πρόγραμμα».

  6. Όπως στο προηγούμενο βήμα, απενεργοποιούμε την επιλογή
    «Να επιτρέπεται η εκτέλεση του αρχείου ως πρόγραμμα», για το αρχείο 10_linux


  7. Κώδικας: Επιλογή όλων
    sudo update-grub


  8. Ενεργοποιούμε εκ νέου την επιλογή «Να επιτρέπεται η εκτέλεση του αρχείου ως πρόγραμμα» για το αρχείο 10_linux


Όπως συνήθως, μετά την εγκατάσταση νέου πυρήνα θα επαναλαμβάνουμε την διαδικασία...

Στην περίπτωση dual boot με windows για να ελέγξουμε την θέση της εγγραφής για τα windows στο μενού,
απενεργοποιούμε και στη συνέχεια ενεργοποιούμε ξανά, την «εκτέλεση του αρχείου ως πρόγραμμα»
και για το αρχείο 30_os-prober (μαζί με το αρχείο 10_linux) στα βήματα 6 και 8.
(Οι αλλαγές που αφορούν την εγγραφή για τα windows στο μενού του Grub, γίνονται και αυτές στο 40_custom

Οι γραμμές στο αρχείο /boot/grub/grub.cfg που αφορούν τα windows, είναι από
### BEGIN /etc/grub.d/30_os-prober ### έως ### END /etc/grub.d/30_os-prober ###)

Πριν το άνοιγμα των αρχείων για επεξεργασία, είναι πάντα καλό, να κρατάμε αντίγραφα ασφαλείας!


Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα

Re: Grub2 προσαρμογή menu, που πήγε το menu.lst;

ΔημοσίευσηΔημοσιεύτηκε: 16 Δεκ 2009, 00:44
από vagrale13
Μπραβο, πολυ καλο! :thumbup:

Νομιζω ομως πως το αρχειο grub.cfg ειναι μονο για αναγνωση, και δεν μπορουμε να το κανουμε Επεξεργασια! :think:
Οποτε δινουμε την εντολη
Κώδικας: Επιλογή όλων
sudo chmod +w /boot/grub/grub.cfg

και μετα για να το κανουμε επεξεργασια δινουμε την εντολη
Κώδικας: Επιλογή όλων
sudo gedit /boot/grub/grub.cfg


κανουμε τι ειναι να κανουμε, και μετα στο τελος με την εντολη
Κώδικας: Επιλογή όλων
sudo update-grub

ξαναγινεται παλι μονο για αναγνωση! :thumbup:

Re: Grub2 προσαρμογή menu, που πήγε το menu.lst;

ΔημοσίευσηΔημοσιεύτηκε: 16 Δεκ 2009, 00:58
από pros
vagrale13 έγραψε:Νομιζω ομως πως το αρχειο grub.cfg ειναι μονο για αναγνωση, και δεν μπορουμε να το κανουμε Επεξεργασια! :think:

Αυτός είναι και ο σκοπός του οδηγού! Να αποφύγουμε, την απευθείας επεξεργασία του grub.cfg...
Να κάνουμε την προσαρμογή του μενού του Grub, σύμφωνα με τις οδηγίες του συστήματος...
Από το αρχείο 40_custom αντιγράφω:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.


Η λύση που προτείνεις, παρακάμπτει τις οδηγίες του συστήματος.

Re: Grub2 προσαρμογή menu, που πήγε το menu.lst;

ΔημοσίευσηΔημοσιεύτηκε: 16 Δεκ 2009, 23:31
από Mitsakos
Μπράβο @pros πολύ καλό!

Θα βοηθήσει αρκετά στη κατανόηση του νέου GRUB...

Ερώτηση/ νήξη:
Το ότι δεν εμφανίζεται το μενού επιλογής του grub2 και φορτώνει απ' ευθείας σε νέα εγκατάσταση χωρίς άλλο λειτουργικό είναι λογικό...
Θα εμφανιστεί η επιλογή μόνο σε ενημέρωση πυρήνα ή εγκατάσταση εξτρά λειτουργικού όπως αναφέρθηκε ποιο πάνω...

Re: Grub2 προσαρμογή menu, που πήγε το menu.lst;

ΔημοσίευσηΔημοσιεύτηκε: 17 Δεκ 2009, 03:07
από pros
Mitsakos έγραψε:Ερώτηση/ νήξη:
Το ότι δεν εμφανίζεται το μενού επιλογής του grub2 και φορτώνει απ' ευθείας σε νέα εγκατάσταση χωρίς άλλο λειτουργικό είναι λογικό...
Θα εμφανιστεί η επιλογή μόνο σε ενημέρωση πυρήνα ή εγκατάσταση εξτρά λειτουργικού όπως αναφέρθηκε ποιο πάνω...

Αυτή ήταν η προεπιλεγμένη ρύθμιση του ubuntu και στον προηγούμενο Grub.

Για να εμφανίζεται το μενού, για αλλαγή του προεπιλεγμένου πυρήνα/λειτουργικού,
όπως επίσης και για την ρύθμιση του χρόνου αναμονής μέχρι την εκκίνηση με τον επιλεγμένο πυρήνα/λειτουργικό,
πρέπει ν' αλλάξουμε τις ρυθμίσεις στο αρχείο /etc/default/grub,
και στην συνέχεια με την εντολή sudo update-grub,
να ενημερώσουμε το αρχείο /boot/grub/grub.cfg,
σύμφωνα με την διαδικασία που υπενθυμίζεται στην εισαγωγή του...
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

Συνοψίζοντας, στον Grub2 δεν επεξεργαζόμαστε το grub.cfg (αντικαταστάτη του menu.lst),
αλλά το αρχείο /etc/default/grub και τα σενάρια εντολών, πρότυπα στο /etc/grub.d, με βάση τα οποία,
το αρχείο grub.cfg δημιουργείται αυτόματα από το σύστημα, ή από εμάς, με την εντολή sudo update-grub.


Πιο αναλυτικά http://ubuntuforums.org/showthread.php?t=1302743 και http://ubuntuforums.org/showthread.php?t=1195275

Re: Grub2 προσαρμογή menu, που πήγε το menu.lst;

ΔημοσίευσηΔημοσιεύτηκε: 26 Μαρ 2011, 21:47
από minios67
Για την διαμόρφωση του Grub 2 υπάρχει και ο grub customizer δείτε εδώ

Re: Grub2 προσαρμογή menu, που πήγε το menu.lst;

ΔημοσίευσηΔημοσιεύτηκε: 28 Μαρ 2011, 19:34
από minios67
Προσωπικά χρησιμοποιώ τις επιλογές του Ubuntu tweak για την εκκαθάριση παλιών πυρήνων και των ρυθμίσεών τους

Υπάρχει και ο Startup Manager από το κέντρο λογισμικού