GRUB τροποποιηση και επαναφορα

alfisti | Κυρ, 01/13/2008 - 23:26 | 6' | 10

Θα δουμε, καποια απο τα προβληματα που αντιμετωπιζουμε με τον grub και καποιες απο τις λυσεις τους (χρησιμοποιωντας στο παραδειγμα μας το ubuntu). Διοτι, σε καθε περιπτωση, μπορουμε να επεμβουμε στον grub, και να τον τροποποιησουμε η ακομα και να τον επαναφερουμε. (Αυτο το προβλημα θα το εχουμε αν για καποιον -ακατανοητο -λογο, θελησουμε να εγκαταστησουμε windows, σε ενα συστημα το οποιο εχει ηδη εγκατεστημενο linux, το οποιο τα windows θα 'κανουν οτι δεν το ειδαν'. Τοτε εχουμε λιγη παραπανω δουλεια, διοτι δεν αρκει η επαναφορα του grub, αλλα και η 'προσαρτηση' σε αυτον, του τμηματος με τα windows).

O grub, αποθηκευει τις οποιες ρυθμισεις, στο αρχειο menu.lst που βρισκεται στον φακελο /boot/grub.
Θα πρεπει να ανοιξουμε το menu.lst με δικαιωματα root.
Ο πιο απλος τροπος για να το κανουμε ειναι να ανοιξουμε ενα τερματικο (Εφαρμογες-Βοηθηματα-Τερματικο) και να δωσουμε την εντολη sudo cp /boot/grub/menu.lst /boot/grub/menu_lst.back για να κρατησουμε αντιγραφο ασφαλειας του menu.lst. Στην συνεχεια το ανοιγουμε με τον επεξεργαστη κειμενου της διανομης μας, π.χ. με την εντολη sudo gedit /boot/grub/menu.lst

Το αρχειο περιεχει διαφορες εγγραφες.
Οι γραμμες που εχουν μπροστα τους το συμβολο #, αγνοουνται απο τον grub.

Η πιο απλη αλλαγη που μπορουμε να κανουμε, ειναι η αλλαγη του λειτουργικου συστηματος που θα εκκινει, η ο χρονος που θα κανει ο grub για να το φορτωσει.
Το προεπιλεγμενο συστημα εχει μπροστα την εντολη default ακολουθουμενη απο ενα νουμερο (το οποιο αν δεν εχουμε πειραξει ειναι το 0.).
Αν θελουμε σαν προεπιλογη καποιο αλλο λειτουργικο, αλλαζουμε το 0, με το νουμερο του λειτουργικου αφου αφαιρεσουμε μια μοναδα.
Αν δηλαδη θελουμε εκκινησιμο το δευτερο λειτουργικο, τοτε βαζουμε

default1 κ.ο.κ.

Ο χρονος, δηλωνεται απο την εγγραφη, timeout 10, την οποια μπορουμε να αλλαξουμε σε οτι θελουμε.

ΕΠΑΝΑΦΟΡΑ ΤΟΥ GRUB

Aυτο μπορει να το χρειαστουμε αν αλλαξουμε την σειρα των σκληρων δισκων, η αν εγκαταστησουμε windows μετα απο linux.
Θα πρεπει να κανουμε εκκινηση με το live cd ubuntu. Εκει. θα ανοιξουμε ενα τερματικο και θα πληκτρολογησουμε sudo grub find /boot/grub/stage1 και θα παρουμε μια λιστα μετο που ειναι εγκατεστημενο το λειτουργικο. Εστω hd0,1.
Στην επομενη εντολη λοιπον, θα δωσουμε root (hd0,1) setup (hd0) quit Στην συνεχεια, μπαινουμε στο ubuntu, και για να δουμε που βρισκονται τα αλλα λειτουργικα, δινουμε σε ενα τερματικο

sudo fdisk -l

Θα μας επιστρεψει κατι της μορφης /dev/sda2
/dev/sda3

Αυτη ομως δεν ειναι η μορφη που θα πρεπει να τα εγγραψουμε στον grub.
Στον οποιο. πρεπει να αλλαξουμε το s με h, να μετατρεψουμε το τριτο (a στην περιπτωση μας) γραμμα σε νουμερο ξεκινωντας απο το 0, και απο τον τελευταιο αριθμο, να αφαιρεσουμε μια μοναδα. Γινεται λοιπον

hd0,1 και hd0,2.

Αν λοιπον προκειται να προσθεσουμε windows,συμπληρωνουμε κατι σαν title Windows root (hd0,1) savedefault makeactive chainloader +1 Στην περιπτωση που θελουμε να προσθεσουμε στον grub του ubuntu, καποια αλλη διανομη linux, τοτε μπορουμε απο τερματικο να ανοιξουμε το menu.lst του ubuntu οπως γραψαμε παραπανω, και το menu.lst της αλλης διανομης δινοντας μια εντολη του τυπου sudo gedit /media/sda3/boot/grub/menu.lst και στη συνεχεια να κανουμε copy-paste στο menu.lst του ubuntu την εγγραφη της αλλης διανομης, αλλαζοντας ομως το γραμμα και το νουμερο με βαση το που τα βλεπει το ubuntu (δινοντας σε τερματικο sudo fdisk -l)

Με αυτον τον τροπο, και σε περιπτωση που το δευτερο λειτουργικο κανεο καποια αναβαθμιση kernel, θα πρεπει σαν root η απο ενα live cd, να ανοιξουμε τον φακελο boot του δευτερου λειτουργικου, και να αλαξουμε στον grub (στο menu.lst) τις εγγραφες που αφορουν τις αλλαγες που εχουν γινει στημ εκδοση του αρχειου initrd και του vmlinuz.

Δώσε αστέρια!

MO: 5 (ψήφοι: 1)

Σχόλια

εδω θα βρειτε βοηθεια για την εγκατασταση διανομης σε εξωτερικο σκληρο

http://www.linuxinsider.gr/forum/linux-%CF%83%CE%B5-%CE%B5%CE%BE%CF%89%CF%84%CE%B5%CF%81%CE%B9%CE%BA%CE%BF-%CF%83%CE%BA%CE%BB%CE%B7%CF%81%CE%BF-%CE%B4%CE%B9%CE%BF%CF%81%CE%B8%CF%89%CE%BC%CE%B5%CE%BD%CE%BF

  Παιδιά δεν θυμάμαι αλλά κάπου το είχα δει αρχές που ήμουνα μέλος ότι αν έχεις x διανομές λινουξ μαζί με τα win και βάλεις τελευταίο το ubuntu ο grub δεν θα αναγνωρίζει μερικές διανομές,ισχύει αυτό ή λάθος είχα καταλάβει;;;

δεν το δοκιμασα με το ubuntu ομως μου εχει τυχει με το mint και το gos (αρα μαλλον και το ubuntu).ομως δεν ειχα εγκατεστημενα windows παρα μονο 5 διανομες linux.
απο τη δικη μου εμπειρια μαλλον ισχυει.

  Τεσπα σιγά θα το δοκιμάσω και οτι γίνει.(που δεν νομίζω να έχω πρόβλημα).

ισχυει εν μερει - καπως ετσι.

εχω βαλει και οκτω λειτουργικα.
(2 win - 6 linux)

η επομενη ειτε δεν γινοταν εγκατασταση ειτε δεν φορτωνε απο τον grub, ενω ομως αυτος την ειχε κανει εγγραφη.

αποψη μου χωρις να το ψαξω, οτι εχει να κανει με το πως εχει χωριστει ο σκληρος. προσοχη στα εκτεταμενα και στα λογικα διαμερισματα.
δεν μπορουν να ειναι ολα boot.

να καλο θεμα για post

στο /dev/hda3 εχω debian στο /dev/sda1 εβαλα windows αλλα ο grub αρνειτε να κανει boot στα windwos,
δωκιμασα τα εξης: root (hd1,1),(hd1,0)(hd2,0)(hd2,1),(sd0,0),(sd0,1),(sd1,0),(sd1,1)στο (hd2,0) bgazei
root (hd2,0)
Filesystem type unknown,partition type 0x42
makeactive
chainloader +1

και κολαει εκει!
καμια ιδεα?
o /dev/sda1 ειναι σατα(sata)δισκος
ευχαριστω για τον χρονο σας!

έβαλες υποθετω τα win μετα το debian?
γιατι αναφερεις το ενα partition σαν hd και το αλλο sd?

αν εισαι σιγουρος για το sda1, τοτε η εγγραφη στον grub πρεπει να ειναι hd0,0.

απο κονσολα δωσε σαν root την εντολη fdisk -l

και κανε εδω copy paste οτι σου απαντησει, για να δουμε με ποια σειρα βλεπει το deb τους δισκους.

αν θες κανε copy paste και το αρχειο /boot/grub/menu.lst

====

the hamster's is out there

http://hamster.tuxhost.gr/

Παιδιά έχω τα ubuntu 9.10 και δεν υπαρχει κάποιο αρχείο menu.lst στο /boot/grub ένα grub.cfg βρήκα αλλά είναι read-only. Μπορώ να το αλλάξω;;;

 

ευχαριστώ.

 Μπορείς να προσθέσεις ή να αφαιρέσεις πράγματα στο grub μέσω των αρχείων στο κατάλογο /etc/grub.d/ και στο αρχείο /etc/default/grub. Για αρχή σου προτείνω να πειράξεις μόνο το δεύτερο. Στο πρώτο υπάρχουν σκριπτάκια, για τα οποία πρέπει να γνωρίζεις λίγη bash (εγώ δεν τα πειράζω γιατί δεν γνωρίζω..). Αφού πειράξεις το /etc/default/grub ως root τότε δώσε και την εντολή 

sudo update-grub

Αλλιώτικα, ότι αλλαγές έκανες δεν θα εφαρμοστούν. Για περισσότερα κοίτα και εδώ

Υ.Σ Εννοείται ότι έχεις πάρει backup πριν πειράξεις οτιδήποτε. Και λίγο προσοχή...

Γεια σας παιδιά.

Να σας ρωτήσω κάτι και εγώ για τροποποίηση του Grub αλλά για θέμα εμφάνισης.
Εδώ στη φωτογραφία έχω ανοιίξει το menu.lst του grub  και παρατήρησα στη τρίτη γραμμή χωρίς  τα #
splashimage=(hd0,4)/boot/grub/splash.xpm.gz
ότι την εικόμα του του grub τη παίρνει από αυτή τη διαδρομή. 

Μπορώ εγώ να αλλάξω αυτή τη διαδρομή?  Δηλ. να συμπιέσω μια εικονα σε .gz να την αποθηκεύσω μέσα στο φάκελο grub και να δώσω τη διαδρομή της σε αυτή τη γραμμή?

Ή θα πάθω καμιά ζημιά? Smile