Πώς να εγκαταστήσετε Linux (UEFI) σε εξωτερικό σκληρό/SSD χωρίς ο Grub να τα κάνει άνω-κάτω όλα …

Πριν λίγα 24ωρα κυκλοφόρησε το ανανεωμένο Ubuntu 22.04 LTS, με πολλές σημαντικές βελτιώσεις, εκ των οποίων 3 με ενδιαφέρουν άμεσα:

  1. linux Kernel 5.15
  2. wayland display server αντί για X11
  3. pipewire audio server αντί για pulse/alsa

Αυτές οι αλλαγές θα έρθουν και στο Linux Mint 21 (που θα βασίζεται σε Ubuntu 22.04), αλλά μέχρι τότε ήμουν ανυπόμονος και ήθελα να τα δοκιμάσω, για να δω τη συμπεριφορά στο δικό μου σύστημα.

Η λύση ήταν να εγκαταστήσω το Ubuntu 22.04 σε έναν εξωτερικό δίσκο και να boot-άρω από εκεί όποτε ήθελα να κάνω τις δοκιμές μου, χωρίς να επηρεαστεί το σύστημά μου. Θα ρωτήσει κανείς γιατί χρειαζόταν η εγκατάσταση. Λογικό, αλλά το Ubuntu 22.04 σε live παίζει σε X11 για μέγιστη συμβατότητα, ενώ η λύση δοκιμής σε VM δεν θα μου επέτρεπε να δω την πραγματική συμπεριφορά του Wayland με το hardware που έχω (ούτε και του pipewire), μια που η εικονική μηχανή εμφανίζει άλλες συσκευές.

Πάω λοιπόν να ξεκινήσω τη διαδικασία, έχω έτοιμο ένα boot-able στικάκι και τον δίσκο που θα γίνει η εγκατάσταση. Εδώ να σημειώσω ότι ξέρω ότι ο πιο ασφαλής τρόπος να γίνουν τέτοια πράγματα είναι να αποσυνδέσεις όλους του υφιστάμενους δίσκους, για να είσαι σίγουρος ότι δεν θα υπάρξουν απρόβλεπτες εξελίξεις. Άβολο. Άντε και αποσυνδέεις τους SATA δίσκους τραβώντας τα καλώδια, αλλά να αποσυνδέσεις τον NVME για να κάνεις τις δοκιμές σου είναι μανούρα μεγάλη. Επίσης δεν μπορούσα να απενεργοποιήσω τον Nvme από το BIOS, δεν υπήρχε επιλογή. Οπότε προχώρησα με τα πάντα όλα συνδεδεμένα, έχοντας κατά νου να είμαι εξαιρετικά προσεκτικός μη στραβώσει κάτι.

Έχω πολλούς δίσκους στο σύστημα, αλλά αυτοί που μας ενδιαφέρουν είναι οι εξής:

Untitled 1

Εκκινώ λοιπόν με το στικάκι, μπαίνω σε live περιβάλλον, όλα καλά, πάμε για install. Με εξαιρετική προσοχή διαμόρφωσα τον sda για να εγκατασταθεί το Ubuntu και διπλοτσέκαρα ότι επέλεξα να εγκατασταθεί ο grub στο sda και όχι κάπου αλλού.

Ολοκληρώνεται η εγκατάσταση σε λίγα λεπτά και boot-άρω από τον sda. Ωραιότατα. Μου έδινε και επιλογές αν ήθελα να μπω στο mint ή στα Win (που είναι θυμίζω στον nvme). Περιεργάζομαι λίγο το περιβάλλον του Ubuntu και αποφασίζω να μπω στο κανονικό μου σύστημα. Επιλέγω restart, το σύστημα κάνει post, αποσυνδέω τον sda και περιμένω να εμφανιστεί το γνώριμο σε εμένα grub από τον nvme (του έχω βάλει και ένα ωραίο theme). Μάταια…. Το σύστημα μπαίνει σε grub cmd περιβάλλον… Έλεος…

Αποδείχτηκε ότι ο grub που εγκαταστάθηκε στον sda είχε αποφασίσει να “διαγράψει” ??? τον grub που ήταν εγκατεστημένος στον nvme. Το σύστημα πλέον μπορούσε να μπουτάρει μόνο έχοντας τον sda συνδεδεμένο…

Εντάξει δεν ήταν κάτι που δεν μπόρεσα να φτιάξω σε 5 λεπτά… Μπούταρα στο mint και ένα

sudo grub-install /dev/nvme0n1

έλυσε το πρόβλημα.

Τώρα όμως ο grub εγκατάστηθε στον nvme και δεν μπορούσα να μπουτάρω από τον sda…

Για κάποιον λόγο ο grub θέλει να είναι σε ένα μόνο μέρος ή εγώ δεν ξέρω τον τρόπο να το φτιάξω.

Ψάχτηκα αρκετά στο διαδίκτυο για αυτό το εξεζητημένο σενάριο χρήσης και τελικά ανακάλυψα τον σωστό τρόπο για να πετύχετε εγκατάσταση ενός Linux OS σε εξωτερικό σκληρό (λογικά δουλεύει και σε εσωτερικό) χωρίς ο grub να κάνει τα δικά του.

ΠΡΟΣΟΧΗ ΠΑΝΤΑ ΕΧΟΥΜΕ ΠΛΗΡΕΣ BACKUP ΠΡΙΝ ΕΠΙΧΕΙΡΗΣΟΥΜΕ ΤΕΤΟΙΕΣ ΔΙΑΔΙΚΑΣΙΕΣ.

  1. Boot με το live media

  2. Από live περιβάλλον τρέχουμε gparted, ΠΡΙΝ ΠΡΟΧΩΡΗΣΟΥΜΕ σε εγκατάσταση και πάμε και βρίσκουμε τον boot δίσκο μας και συγκεκριμένα το EFI (fat32) partition στον δίσκο μας.

  1. Δεξί κλικ στο efi partition-→manage flags

  1. Θα δούμε τσεκαρισμένο το flag ESP (και πιθανόν κάποια άλλα). Τα σημειώνουμε.

  1. Καταργούμε το flag ESP και close.

  2. Τώρα πάμε και τρέχουμε τον installer και όταν θα μας ρωτήσει πού θέλουμε να εγκαταστήμουμε το λειτουργικό επιλέγουμε “do something else”.

  3. Στον δίσκο που θα εγκαταστήσουμε το λειτουργικό, φτιάγνουμε δύο partitions, ένα EFI 300 MB (για σιγουριά) και ένα ext4 partition ως “/”. (Όταν έπαιρνα τα screenshots σε μένα είχε δει τον δίσκο σαν sdb). ΠΡΟΣΟΧΗ ΝΑ ΕΠΙΛΕΞΟΥΜΕ ΣΤΟ ΚΑΤΩ ΜΕΡΟΣ ΝΑ ΕΓΚΑΣΤΑΣΤΗΘΕΙ Ο GRUB ΣΤΟΝ ΕΞΩΤΕΡΙΚΟ ΔΙΣΚΟ και όχι κάπου αλλού

  1. Προχωράμε με “install now” και όταν ολοκληρωθεί η εγκατάσταση ΔΕΝ ΚΑΝΟΥΜΕ restart

  2. Ανοίγουμε gparted πάλι και πάμε και επαναφέρουμε τα flags στο partition EFI του εσωτερικού boot δίσκου μας.

Αυτό ήταν! Τώρα θα μπορείτε να μπουτάρετε από τον εξωτερικό δίσκο όποτε είναι συνδεδεμένος, ή από τον εσωτερικό boot δίσκο σας όταν είναι αποσυνδεδεμένος ο εξωτερικός. Σε μένα χρειάστηκε ένα ακόμα βήμα γιατί είχε αλλαχθεί το boot order στο UEFI bios της μητρικής μου, πήγα και το έφτιαξα, δεν είναι τίποτα. Δεν ξέρω αν θα συμβεί σε κάθε περίπτωση.

12 «Μου αρέσει»