Πλέον η διανομή που χρησιμοποιώ ξεκινά με το systemd-boot
. Είναι ταχύτατο αλλά χρόνια συνηθισμένος στο grub
δίσταζα να το πειράξω. Αλλά αποδείχθηκε πολύ εύκολο, και πολύ πιο βολικό από το grub. Ας το γνωρίσουμε λίγο καλύτερα λοιπόν.
Για πιο λόγο; Μια χαρά δεν είναι το grub;
Κατ αρχήν να ξεκαθαρίσω πως αν η διανομή που χρησιμοποιείς χρησιμοποιεί το grub δεν βλέπω κανένα λόγο γιατί να θέλεις να τον αλλάξεις. Αλλά αν έχεις εγκατεστημένες πολλές διανομές ίσως να υπάρχει ένας καλός λόγος. Κάθε διανομή σε κάθε αναβάθμιση του πυρήνα θα τρέξει τυπικά το grub και θα επικαλύψει τις ρυθμίσεις της προηγούμενης διανομής. Υπάρχουν λύσεις για αυτό αλλά είναι πολύπλοκες. Και το grub έχει μια πολύπλοκη σύνταξη. Ευτυχώς δεν γράφουμε τα αρχεία με το χέρι, αλλά τροποποιούμε ένα αρχείο ρυθμίσεων, τυπικά το /etc/default/grub
και αυτόματα θα φτιαχτούν οι ρυθμίσεις κάθε φορά που θα χρειαστεί. Αλλά οι διάφορες διανομές και λειτουργικά δεν επικοινωνούν μεταξύ τους.
Το grub είναι πολύπλοκο, γιατί φτιάχτηκε μια εποχή που το BIOS δεν ήταν τόσο ισχυρό, αλλά πλέον έχουμε καλύτερους τρόπους. Ένα απλό παράδειγμα είναι το παρακάτω κόλπο που όμως σταμάτησε να λειτουργεί όταν πέρασα σε btrfs
. Αντί να προσπαθεί να γράψει μέσα στο filesystem την πληροφορία (και να μην τα καταφέρνει) και να έχει υποστήριξη για κάθε σύστημα αρχείων, δεν θα ήταν καλύτερα να χρησιμοποιήσει μια μεταβλητή efi;
Τεχνικά στοιχεία
Η καρδιά του systemd-boot
είναι η προδιαγραφή BOOT_LOADER_SPECIFICATION μια απλή προδιαγραφή που επιτρέπει σε μια διανομή να βάλει σε ένα μέρος ένα αρχείο που την περιγράφει και αυτό ήταν. Οποιοδήποτε κατανοεί αυτή την προδιαγραφή (ίσως μια μέρα και το ίδιο το BIOS) μπορεί να ξεκινήσει το λειτουργικό. Το systemd-boot
είναι εξαιρετικά απλό και μόνη δουλειά του είναι να δείξει ένα απλό menu. Και τεχνικά ίσως αυτό δεν θα ήταν καν απαραίτητο, αν τα διάφορα BIOS υλοποιούσαν με τον ίδιο τρόπο το μενού επιλογής εκκίνησης που τυπικά το βλέπεις όταν πατήσεις κάποιο μη τυποποιημένο πλήκτρο κατά την εκκίνηση.
Σε χρήση
Παρά την γρήγορη απόκριση η πρώτη εμπειρία ήταν ολίγον απογοητευτική. Που είναι το menu; Τι πρέπει να πατήσω για να το δω; Φόρτωσε το λειτουργικό; Τότε γιατί βλέπω ακόμα την εικόνα του BIOS; Για το δεύτερο, αλλά μια αλλαγή για Flicker Free Boot όπου αποφεύγουμε την χρονοβόρα αλλαγή της κατάστασης την κάρτας γραφικών που συχνά οδηγεί σε αναβόσβημα της οθόνης. Το παρακάτω βίντεο δείχνει τον νέο τρόπο
Ωραίο, αλλά αυτό κάνει το πρώτο πρόβλημα ακόμα πιο ορατό. Ας ενεργοποιήσουμε κάποιο μενού επιτέλους.
sudo -i
cd /boot/efi/loader
nano loader.conf
και θα φτιάξουμε το αρχείο να μοιάζει κάπως έτσι
default Pop_OS-current
timeout 4
και αυτό ήταν! Καμία ανάγκη να τρέξουμε κάποια εντολή για να ενημερωθεί. Στην επόμενη εκκίνηση θα δούμε ένα απλό μενού. Ας το κάνουμε τώρα λίγο πιο όμορφο; Να βάλουμε κάποια εικόνα στο φόντο, να βάλουμε κάποιο theme και γιατί όχι εικονίδια στις διάφορες επιλογές; Λυπάμαι αλλά χάσατε. Αυτό είναι και σε όποιον αρέσει
Αλλά τουλάχιστον μπορούμε να προσθέσουμε επιλογές στο μενού! Κάθε επιλογή είναι ένα drop-in αρχείο στον κατάλογο /boot/efi/loader/entries
και μοιάζει κάπως έτσι
title Pop!_OS
linux /EFI/Pop_OS-173df903-f9b0-414b-a482-f6aad82fafe2/vmlinuz.efi
initrd /EFI/Pop_OS-173df903-f9b0-414b-a482-f6aad82fafe2/initrd.img
options root=UUID=173df903-f9b0-414b-a482-f6aad82fafe2 ro quiet loglevel=0 systemd.show_status=false splash
απλό και κατανοητό νομίζω Στον υπολογιστή μου έχω μόνο ένα λειτουργικό και μια recovery έκδοση του, οπότε δεν το δοκίμασα με άλλα λειτουργικά ή Windows, αλλά θα τα ανακαλύψει και δεν θα έχει κάποιο πρόβλημα (ή τουλάχιστον έτσι ελπίζω). Αλλά έφτιαξα μια παραλλαγή που δείχνει πληροφορίες κατά την εκκίνηση. Απλά έκανα αντιγραφή το αρχείο και αφαίρεσα τα περιττά options.
Εκκίνηση σε BIOS ή σε άλλο λειτουργικό
Θέλεις να κάνεις reboot να μπεις στο BIOS να αλλάξεις μια ρύθμιση, την ώρα που υπάρχει σωματική ανάγκη – δεν παίρνει αναβολή; Γράψε τα παρακάτω και πήγαινε να κάνεις την δουλειά σου
sudo systemctl reboot --firmware-setup
αν θέλεις να μπεις σε άλλο λειτουργικό ή εντολή είναι
systemctl reboot --boot-loader-entry=HannaMondanaLinux.conf
και για να δεις τις διαθέσιμες επιλογές
systemctl reboot --boot-loader-entry=help
Για να γίνει η αλλαγή μόνιμη υπάρχει η εντολή
sudo bootctl set-default HannaMondanaLinux.conf
Περισσότερες πληροφορίες
Αν ισχυριστώ ότι ο μέσος χρήστης γνωρίζει για το (U)EFI Boot θα πω ένα φρικτό ψέμα. Υπάρχει πολύ σύγχυση σχετικά με το τι ακριβώς είναι και πως λειτουργεί. Σε αυτήν την διεύθυνση Managing EFI Boot Loaders for Linux υπάρχει πολύ υλικό για αυτό και τους διάφορους boot loaders και boot managers που υπάρχουν, χρήσιμο για κατανόηση, ή αν θέλεις να δοκιμάσεις κάτι άλλο. Μετά από αυτό για να ξεκαθαρίσεις τις βασικές έννοιες θα παραπέμψω, που αλλού; στο Arch Wiki ειδικά αν θέλεις να περάσεις το (δεύτερο) σύστημα σου σε αυτό.
Αν ξεκαθαρίσεις 2-3 πραγματάκια, το systemd-boot
είναι πολύ πιο κατανοητό και πολύ πιο εύκολο από το grub. Γενικά μου αρέσει η λογική των αρχείων drop-in για τις ρυθμίσεις, και επιτέλους έχουμε μια προδιαγραφή, να ακολουθήσουν οι κατασκευαστές μητρικών και άλλων boot managers. Δεν γυρνάω πίσω στο grub, αν και μου λείπουν λίγο τα φρου φρου του. Αν θέλω κάτι τέτοιο θα δοκίμαζα το rEFInd.
Το grub
είναι πλέον obsolete όπως και οι μητρικές που χρησιμοποιούν BIOS και κάποια στιγμή θα το αποχαιρετίσουμε πιστεύω. Αλλά τι τα θες; Επιτέλους η νέα έκδοση του devuan 3.1 μας πάει ακόμα πιο μπροστά. Επιτέλους μπορούμε ξανά να εγκαταστήσουμε μια διανομή που να χρησιμοποιεί το πολυαγαπημένο μας lilo
Διαβάστε: Arch boot process - ArchWiki