Off topic:Φτιάξε καφεδάκι, "σπάσε" τα δάκτυλά και ξεκινάμε
Καταρχήν, προτιμώ τον grub του Ubuntu από όποιας άλλης διανομής. Είναι προσωπική προτίμηση αυτή. Οπότε, στη θέση σου θα έκανα τα εξής.
Μπαίνω στο Ubuntu και κάνω εγκατάσταση τον grub του Ubuntu στο MBR του κυρίως δίσκου μου, με τη παρακάτω εντολή.
- Κώδικας: Επιλογή όλων
sudo grub-install --recheck /dev/sda
Αφού τελειώσει η εγκατάσταση χωρίς λάθη, ενημερώνω τον grub για να δει και τα υπόλοιπα λειτουργικά.
- Κώδικας: Επιλογή όλων
sudo update-grub
Έπειτα, μπαίνω σε κάθε μια από τις διανομές (Fedora , Manjaro στη περίπτωσή μας) και κάνω εγκατάσταση τον grub στο διαμέρισμα στο οποίο είναι εγκατεστημένη η διανομή.
Για να βρω το διαμέρισμα εύκολα (το device node δηλαδή), δίνω την εντολή
- Κώδικας: Επιλογή όλων
mount
βλέπω που είναι προσαρτημένο το root , πχ
- Κώδικας: Επιλογή όλων
/dev/sdb1 on / type ext4 (rw,errors=remount-ro)
φαίνεται από τη πλάγια κάθετο (/) η οποία συμβολίζει το ριζικό κατάλογο,
και έπειτα κάνω εκεί εγκατάσταση τον grub με τη παρακάτω εντολή
- Κώδικας: Επιλογή όλων
sudo grub-install --force --recheck /dev/sdb1
Βγάζει κάποια προειδοποίηση, την οποία αγνοώ. Αυτό που με ενδιαφέρει είναι η εγκατάσταση να ολοκληρωθεί επιτυχώς.
Έπειτα απενεργοποιώ το script os_prober, πλέον δε με ενδιαφέρει να υπάρχουν στη λίστα όλες οι άλλες διανομές, σε κάθε grub. Μόνο στον κυρίως grub θέλω.
- Κώδικας: Επιλογή όλων
sudo chmod 644 /etc/grub.d/*os-prober
Τσεκάρω τα δικαιώματα, να δω αν έγινε σωστά η αλλαγή (πρέπει να επιστρέψει 644).
- Κώδικας: Επιλογή όλων
stat -c %a,%n /etc/grub.d/*os-prober
Τρέχω τώρα το script δημιουργίας του grub.cfg
πχ αν είμαι σε Fedora, αν τα παραπάνω δηλαδή τα έχω κάνει στην εγκατάσταση του Fedora,
- Κώδικας: Επιλογή όλων
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Την ίδια διαδικασία κάνω και στις υπόλοιπες διανομές, εκτός της κύριας διανομής(στη περίπτωσή μας το Ubuntu) της οποίας ο grub είναι εγκατεστημένος στο MBR του δίσκου. Εκεί θα ακολουθήσουμε άλλη διαδικασία (περιγράφεται παρακάτω).
Πάμε τώρα στη κύρια διανομή.Εκεί το πρώτο που κάνω είναι να τρέξω την εντολή δημιουργίας του grub.cfg, αλλά όχι με κατεύθυνση το /boot/grub/ , αλλά το προσωπικό μου κατάλογο.
Ο λόγος που το κάνω αυτό είναι διότι θα μου χρειαστούν κάποιες εισαγωγές από εκεί μέσα (θα τις κάνω copy-paste χειροκίνητα), για το custom αρχείο που θα φτιάξω.
- Κώδικας: Επιλογή όλων
sudo grub-mkconfig -o ~/grub.cfg
Έπειτα αφαιρώ κι εδώ τα δικαιώματα εκτέλεσης του os-prober, όπως και προηγουμένως.
- Κώδικας: Επιλογή όλων
sudo chmod 644 /etc/grub.d/*os-prober
Τώρα τρέχω
- Κώδικας: Επιλογή όλων
sudo update-grub
και πλέον έχω ένα "καθαρό" grub.cfg, δηλαδή χωρίς κανένα λειτουργικό στη λίστα.
Τώρα πάω να δημιουργήσω το custom αρχείο. Ως αρχείο υπάρχει έτοιμο, αλλά είναι άδειο.
- Κώδικας: Επιλογή όλων
sudo gedit /etc/grub.d/40_custom
Οι εισαγωγές που θα αντιγράψω εκεί θα είναι του παρακάτω στυλ.
- Κώδικας: Επιλογή όλων
menuentry 'Fedora 24' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-ea7267d7-4fb4-4188-XXX5-fb6bxxx8b9a4' {
insmod part_msdos
insmod ext2
set root='hd3,msdos5'
search --no-floppy --fs-uuid --set=root ea7267d7-4fb4-4188-ΧΧΧ5-fb6bxxx8b9a4
chainloader +1
}
Όλες οι εισαγωγές θα είναι στο ίδιο στυλ. Αυτά που φυσικά
αλλάζουν είναι
τα IDs και το --set root.
Αυτά, θα τα πάρω από το αρχείο grub.cfg που δημιούργησα στο home μου.
- Κώδικας: Επιλογή όλων
gedit ~/grub.cfg
Προσεκτικά κάνω copy-paste αυτά που με ενδιαφέρουν. Αντικαθιστώ δηλαδή το ID (όπου υπάρχει) και το set root.
Παράδειγμα:
Από τη παραπάνω εισαγωγή θα αντικαταστήσω
- Κώδικας: Επιλογή όλων
'osprober-gnulinux-simple-ea7267d7-4fb4-4188-XXX5-fb6bxxx8b9a4'
--set=root ea7267d7-4fb4-4188-ΧΧΧ5-fb6bxxx8b9a4
και
- Κώδικας: Επιλογή όλων
set root='hd3,msdos5'
με αυτά που θα βρω στο αρχείο grub.cfg που έχω δημιουργήσει στο home μου. Αυτά της διανομής που με ενδιαφέρει.
Συμπληρώνω το μενού όσες φορές χρειαστεί (στη δική σου περίπτωση, μάλλον τρεις: Fedora, Manjaro, Manjaro XFCE).
Τα ονόματα που θα φαίνονται στη λίστα του κυρίως grub τα γράφω όπως εγώ θέλω, αρκεί να βρίσκονται μέσα σε εισαγωγικά.
Μπορώ να αλλάξω το
- Κώδικας: Επιλογή όλων
menuentry 'Fedora 24'
σε
- Κώδικας: Επιλογή όλων
menuentry 'Fedora 24 GNOME'
ή ότι άλλο με βολεύει.
Αφού ολοκληρώσω τις εισαγωγές, αποθηκεύω το αρχείο και τρέχω
- Κώδικας: Επιλογή όλων
sudo update-grub
Πριν κάνω επανεκκίνηση, τσεκάρω το νέο δημιουργημένο αρχείο /boot/grub/grub.cfg , ώστε να δω αν οι εισαγωγές που έφτιαξα συμπεριελήφθησαν όπως πρέπει.
- Κώδικας: Επιλογή όλων
gedit /boot/grub/grub.cfg
κάνοντας scroll down και στην ενότητα 40_custom , πρέπει να δω τις εισαγωγές που έφτιαξα.
Τότε, μπορώ να κάνω μια επανεκκίνηση και να δοκιμάσω τη νέα λίστα κατά πως δουλεύει σωστά.