Λοιπόν, ώρα να ξεκινήσω κι εγώ. Πρώτο post, οπότε ας πάει καλά — με κάτι από τα δικά μου βιώματα.
Για αρκετά χρόνια είχα το Manjaro ως βασικό λειτουργικό. Κάποια στιγμή αποφάσισα να βάλω δίπλα και Ubuntu, κυρίως για δοκιμές. Τίποτα ιδιαίτερο, σκέφτηκα. Λίγος χώρος στον δίσκο, μια δεύτερη εγκατάσταση και έτοιμο το dual-boot.
Μέχρι που ήρθε η ώρα να ξαναμπώ στο Manjaro.
Μαύρη οθόνη, μηνύματα να τρέχουν και στο τέλος ένα ωραιότατο kernel panic.
Εκείνη τη στιγμή σκέφτηκα:
«Ωραία... πάει το Manjaro.»
Τελικά, ευτυχώς, δεν είχε πάει πουθενά.
Τι είχε συμβεί
Με την εγκατάσταση του Ubuntu, το GRUB — δηλαδή ο bootloader που εμφανίζει το μενού εκκίνησης και αποφασίζει ποιο λειτουργικό θα ξεκινήσει — ρυθμίστηκε από την πλευρά του Ubuntu.
Το πρόβλημα ήταν ότι το entry που δημιουργήθηκε για το Manjaro δεν εκκινούσε σωστά την εγκατάστασή μου.
Δεν είχε χαθεί το Manjaro. Το partition ήταν εκεί, τα αρχεία ήταν εκεί και ο kernel ήταν εκεί. Απλώς η καταχώρηση του GRUB που χρησιμοποιούσα για να το ξεκινήσω δεν οδηγούσε σε σωστή εκκίνηση.
Στη δική μου περίπτωση, η αποτυχημένη εκκίνηση κατέληγε τελικά σε kernel panic.
Πώς το έλυσα προσωρινά
Αρχικά άνοιξα από το Ubuntu το αρχείο:
sudo nano /boot/grub/grub.cfg
Το grub.cfg είναι το αρχείο που περιέχει τις καταχωρήσεις και τις παραμέτρους που χρησιμοποιεί το GRUB για την εκκίνηση.
Στη συνέχεια άνοιξα από τον Nautilus το partition του Manjaro. Το Ubuntu το έκανε mount αυτόματα όταν το επέλεξα από τον file manager.
Μέσα στο partition του Manjaro πήγα στο:
boot/grub/grub.cfg
και εντόπισα τη σωστή γραμμή linux του Manjaro, δηλαδή τη γραμμή που καθορίζει ποιο kernel θα φορτωθεί και με ποιες παραμέτρους. Περιείχε το kernel image, το root=UUID=... του root partition και τις υπόλοιπες παραμέτρους εκκίνησης.
Αντέγραψα τη συγκεκριμένη γραμμή και επέστρεψα στο grub.cfg που χρησιμοποιούσε το Ubuntu.
Εκεί βρήκα το αντίστοιχο entry για το Manjaro και αντικατέστησα τη λανθασμένη γραμμή linux με τη σωστή που είχα αντιγράψει.
Αποθήκευσα το αρχείο (CTRL+O, ENTER, CTRL+X) και έκανα:
sudo reboot
Στο επόμενο boot επέλεξα το Manjaro. Αργεί λιγάκι. Υπομονή!
Και αυτή τη φορά...
Μπήκε κανονικά.
Χωρίς kernel panic, χωρίς μαύρη οθόνη και χωρίς να έχει χαθεί τίποτα.
Γιατί αυτό ήταν μόνο προσωρινή λύση
Εδώ υπάρχει μια σημαντική λεπτομέρεια.
Το:
/boot/grub/grub.cfg
δεν είναι το αρχείο που πρέπει κανονικά να τροποποιούμε χειροκίνητα για μόνιμες αλλαγές. Είναι αρχείο που δημιουργείται από το configuration του GRUB και μπορεί να ξαναγραφτεί όταν εκτελεστεί το update-grub.
Οπότε αυτό που έκανα ήταν ουσιαστικά μια προσωρινή λύση για να μπορέσω να μπω ξανά στο Manjaro.
Μόλις μπήκα στο Manjaro, φρόντισα να αποκαταστήσω σωστά το GRUB από την πλευρά του Manjaro.
Η μόνιμη λύση
Αφού μπήκα ξανά στο Manjaro, επανεγκατέστησα το GRUB σύμφωνα με το boot mode του συστήματός μου και στη συνέχεια έτρεξα:
sudo update-grub
Σε σύστημα BIOS/Legacy, η επανεγκατάσταση του GRUB γίνεται στον ίδιο τον δίσκο, όχι σε partition, για παράδειγμα:
sudo grub-install /dev/sda
sudo update-grub
Εδώ χρειάζεται προσοχή: το /dev/sda είναι απλώς παράδειγμα. Σε άλλο σύστημα μπορεί να είναι διαφορετικός δίσκος, όπως /dev/nvme0n1.
Πριν χρησιμοποιήσει κάποιος την εντολή, καλό είναι να ελέγξει με:
lsblk
ποιος είναι ο σωστός δίσκος.
Σε σύστημα UEFI η διαδικασία είναι διαφορετική, επειδή εμπλέκεται το EFI System Partition. Εκεί δεν πρέπει να αντιγράψουμε τυφλά μια εντολή grub-install /dev/sda από κάποιο άλλο σύστημα. Πρέπει πρώτα να ελεγχθεί πώς είναι στημένο το συγκεκριμένο boot.
Από το Manjaro, αφού αποκαταστάθηκε σωστά το GRUB, το update-grub ξαναδημιούργησε το μενού εκκίνησης. Με το os-prober διαθέσιμο και ενεργοποιημένο, εντοπίστηκε και το Ubuntu και προστέθηκε ξανά στο boot menu.
Τι έμαθα από όλο αυτό
Το βασικό μάθημα για μένα ήταν ό,τι αν ένα λειτουργικό δεν ξεκινάει μετά από αλλαγές στο dual-boot, δεν σημαίνει απαραίτητα ότι χάθηκε το λειτουργικό.
Μπορεί να έχει αλλάξει ή χαλάσει η καταχώρηση του GRUB που το ξεκινάει.
Επίσης, όταν εγκαθιστάς ένα δεύτερο λειτουργικό, πρέπει να έχεις στο μυαλό σου ότι μπορεί να αλλάξει το ποια εγκατάσταση διαχειρίζεται το GRUB.
Και κάτι ακόμα: UEFI και BIOS/Legacy δεν είναι το ίδιο πράγμα. Οι εντολές για το GRUB εξαρτώνται από το πώς είναι στημένο το συγκεκριμένο μηχάνημα. Οπότε καλό είναι να μη δίνουμε εντολές τύπου grub-install στην τύχη.
Σε μια μελλοντική μεγάλη αναβάθμιση, επανεγκατάσταση ή αλλαγή που επηρεάζει το bootloader, είναι πιθανό να αλλάξει ξανά ποια εγκατάσταση διαχειρίζεται το GRUB. Δεν σημαίνει ότι χάθηκαν τα λειτουργικά· απλώς μπορεί να χρειαστεί να ξαναρυθμιστεί το boot menu.
Συμπέρασμα
Αν κάποια στιγμή βάλεις Ubuntu δίπλα σε Manjaro, EndeavourOS ή άλλη Arch-based διανομή και μετά το Manjaro δεν ξεκινάει, μην αρχίσεις αμέσως τα format και τις επανεγκαταστάσεις.
Πρώτα έλεγξε το GRUB.
Στη δική μου περίπτωση, το Manjaro ήταν εκεί όλη την ώρα.
Απλώς το GRUB δεν το ξεκινούσε σωστά.
Έπαθα, έμαθα. Και τελικά το dual-boot έμεινε.