Debian μαζί με freebsd

Καλησπέρα. Έχω 2 δίσκους ο ένας έχει Debian και ο άλλος έχει FreeBSD 14.2 . Μπορώ μέσο του Grub να επιλέγω με ποιο σύστημα θα κάνει Boot? Ξέρει κάποιος πώς μπορώ να το κάνω ?
Ευχαριστώ

Καλησπέρα, @George-Gr!

Μπορείς να μας επιβεβαιώσεις αν το σύστημά σου χρησιμοποιεί UEFI ή Legacy BIOS; Είναι σημαντικό να το γνωρίζουμε για να σου δώσουμε τις σωστές οδηγίες σχετικά με τη ρύθμιση του GRUB.

Αν δεν είσαι σίγουρος, μπορείς να το ελέγξεις εύκολα:

  1. Στο Debian:
    Άνοιξε ένα τερματικό και εκτέλεσε:
ls /sys/firmware/efi
  • Αν εμφανιστεί περιεχόμενο, χρησιμοποιείς UEFI.
  • Αν λάβεις μήνυμα ότι ο φάκελος δεν υπάρχει, χρησιμοποιείς Legacy BIOS.
  1. Στο FreeBSD:
    Άνοιξε τερματικό και εκτέλεσε:
sysctl machdep.bootmethod
  • Αν επιστρέψει UEFI, τότε είναι UEFI.
  • Αν επιστρέψει BIOS, είναι Legacy.

βρήκα είναι Legacy BIOS

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

1. Έλεγχος αν ο GRUB είναι εγκατεστημένος

Μπορείς να ελέγξεις αν ο GRUB είναι ήδη εγκατεστημένος εκτελώντας την εντολή:

grub-install --version

Αν ο GRUB είναι εγκατεστημένος, θα επιστρέψει την έκδοση του, π.χ.:

grub-install (GRUB) 2.06

Αν δεν είναι εγκατεστημένος, θα επιστρέψει μήνυμα λάθους όπως:

bash: grub-install: command not found

2. Εγκατάσταση του GRUB αν λείπει

Αν η παραπάνω εντολή επιστρέψει ότι ο GRUB δεν είναι εγκατεστημένος, μπορείς να τον εγκαταστήσεις με:

sudo apt update
sudo apt install grub-pc

3. Εγκατάσταση του GRUB στον δίσκο

Μόλις επιβεβαιωθεί ότι ο GRUB είναι εγκατεστημένος στο σύστημα, μπορείς να εκτελέσεις την εντολή για να τον εγκαταστήσεις στον σωστό δίσκο:

sudo grub-install /dev/sdX

sdX: Είναι ο δίσκος όπου θέλεις να εγκατασταθεί ο GRUB, συνήθως /dev/sda.


Ενημέρωση των ρυθμίσεων του GRUB

Ανεξάρτητα από το αν ο GRUB είναι ήδη εγκατεστημένος ή μόλις τον εγκατέστησες, εκτέλεσε:

sudo update-grub

Αυτό θα ανανεώσει τη λίστα των λειτουργικών συστημάτων και θα προσθέσει ό,τι χρειάζεται.

4. Προσθήκη του FreeBSD στον GRUB

Από προεπιλογή, το update-grub πιθανόν να μην εντοπίσει αυτόματα το FreeBSD. Σε αυτή την περίπτωση, πρόσθεσε το χειροκίνητα.

Άνοιξε το αρχείο ρυθμίσεων του GRUB:

sudo nano /etc/grub.d/40_custom

Πρόσθεσε την εξής καταχώριση:

menuentry "FreeBSD 14.2" {
    insmod ufs2
    set root=(hdX,Y)
    chainloader +1
}
  • hdX,Y: Εδώ βάλε τον δίσκο και το διαμέρισμα του FreeBSD. Για παράδειγμα, αν το FreeBSD είναι στον δεύτερο δίσκο, πρώτο διαμέρισμα, γράψε (hd1,1).
    Μπορείς να δεις τις διαδρομές δίσκων με την εντολή:
sudo fdisk -l

Αποθήκευσε το αρχείο και βγες.

5. Ανανέωση του GRUB

Εκτέλεσε ξανά:

sudo update-grub

Αυτό θα ενσωματώσει την καταχώριση για το FreeBSD στο μενού του GRUB.

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

Τα πράγματα ίσως να είναι πιο εύκολα στην προκειμένη περίπτωση. Πιθανότατα ο grub είναι εγκατεστημένος, αλλά είναι ανενενεργή η επιλογή ανίχνευσης άλλων λειτουργικών, μιας και είναι πλέον η default επιλογή. Οπότε απλώς χρειάζεται να γίνει επεξεργασία του αρχείου ρύθμισης του grub(/etc/default/grub) και αλλάγή της από true σε false:
GRUB_DISABLE_OS_PROBER=false
Αν η γραμμή αυτή υπάρχει και είναι ήδη η τιμή της false, τότε πιθανότατα θα έχει μπροστα το “#” που ουσιαστικά την απενεργοποιεί. Σ’ αυτή την περίπτωση απλά το σβήνουμε.

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

Η παρατήρηση του @dancaer69 είναι πολύ σωστή. Αν ο GRUB είναι ήδη εγκατεστημένος αλλά δεν εμφανίζει επιλογή για το FreeBSD, πιθανότατα η ανίχνευση άλλων λειτουργικών συστημάτων (OS Prober) είναι απενεργοποιημένη.

Ακολούθησε @George-Gr τα βήματα που περιγράφει ο dancaer69.

Στη συνέχεια, εκτέλεσε την εντολή:

sudo update-grub

Μετά από αυτά, κάνε επανεκκίνηση και έλεγξε αν το FreeBSD εμφανίζεται στο μενού του GRUB.
Αν το FreeBSD δεν εμφανίζεται ακόμα, σε αυτή την περίπτωση, ίσως χρειαστεί να προσθέσεις χειροκίνητα μια καταχώριση στον GRUB.

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

Τα έκανα όλα αλλά δυστυχώς δεν δούλεψε.
Eχω αυτό το σφάλμα.

error invalid signature

Ο δίσκος που έχω το FreeBSD είναι

Disk /dev/sdb:

fdisk -l αποτέλεσμα

Disk /dev/sda: 223,57 GiB, 240057409536 bytes, 468862128 sectors
Disk model: AMD R5SL240G    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8be0b10f

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 446454476 446452429 212,9G 83 Linux
/dev/sda2       446454477 468857024  22402548  10,7G 82 Linux swap / Solaris


Disk /dev/sdb: 111,79 GiB, 120034123776 bytes, 234441648 sectors
Disk model: SATA SSD        
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A1510954-D654-11EF-8C97-BC5FF4679BFB

Device       Start       End   Sectors   Size Type
/dev/sdb1       40      1063      1024   512K FreeBSD boot
/dev/sdb2     2048   4196351   4194304     2G FreeBSD swap
/dev/sdb3  4196352 234440703 230244352 109,8G FreeBSD ZFS


Disk /dev/sdc: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000AAKX-0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes



αυτό προσθεσα μεσα στο Grub

menuentry "FreeBSD 14.2" {
    insmod ufs2
    set root=(hd0,1)
    chainloader +1
}

Αφού το bsd είναι στον 2ο δίσκο(sdb) πρέπει ν’ αλλάξεις το hd0 σε hd1.

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

δες αυτό

Disk /dev/sdb: 111,79 GiB, 120034123776 bytes, 234441648 sectors
Disk model: SATA SSD        
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A1510954-D654-11EF-8C97-BC5FF4679BFB

Device       Start       End   Sectors   Size Type
/dev/sdb1       40      1063      1024   512K FreeBSD boot
/dev/sdb2     2048   4196351   4194304     2G FreeBSD swap
/dev/sdb3  4196352 234440703 230244352 109,8G FreeBSD ZFS


Disk /dev/sda: 223,57 GiB, 240057409536 bytes, 468862128 sectors
Disk model: AMD R5SL240G    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8be0b10f

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 446454476 446452429 212,9G 83 Linux
/dev/sda2       446454477 468857024  22402548  10,7G 82 Linux swap / Solaris


Disk /dev/sdc: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000AAKX-0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes```

Η παρατήρηση του dancaer69 είναι σωστή: αφού το FreeBSD βρίσκεται στον δεύτερο δίσκο (/dev/sdb), πρέπει να αλλάξεις τη γραμμή:

set root=(hd0,1)

σε:

set root=(hd1,1)

Ενημέρωσε την εγγραφή σου στον GRUB στο αρχείο /etc/grub.d/40_custom ώστε να είναι η εξής:

menuentry "FreeBSD 14.2" {
    insmod ufs2
    set root=(hd1,1)
    chainloader +1
}

Μετά από αυτή την αλλαγή, εκτέλεσε:

sudo update-grub

και επανεκκίνησε το σύστημά σου. Δες αν αυτή η διόρθωση επιλύει το πρόβλημα.


Αν συνεχίσεις να βλέπεις το σφάλμα error: invalid signature:

Πρόσθεσε την παρακάτω εγγραφή στο ίδιο αρχείο (/etc/grub.d/40_custom) αντί για την προηγούμενη:

menuentry "FreeBSD 14.2" {
    insmod ufs2
    set root=(hd1,gpt1)
    kfreebsd /boot/kernel/kernel
    kfreebsd_loadenv /boot/device.hints
    set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1a
    set kFreeBSD.vfs.root.mountfrom.options=rw
}

Η εγγραφή αυτή εξασφαλίζει ότι ο GRUB θα φορτώσει απευθείας τον πυρήνα του FreeBSD.

Η παραπάνω λύση προϋποθέτει ότι το root filesystem του FreeBSD βρίσκεται στο /dev/ada0s1a (όπως υποδεικνύεται στη γραμμή set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1a). Αν δεν ισχύει αυτό, θα χρειαστεί να προσαρμόσεις τη γραμμή για το δικό σου σύστημα.

Και πάλι, εκτέλεσε:

sudo update-grub

Μετά την επανεκκίνηση, θα πρέπει να μπορείς να επιλέξεις το FreeBSD από τον GRUB.

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

Δεν μπορώ να βγάλω άκρη , ότι και να έχω κάνει τίποτα το Grub δεν μπορεί καν να βρει το δίσκο που έχω το FreeBSD , και αυτό που είδα είναι ότι με κάθε επανεκκίνηση αλλάζει το /sda του δίσκου οπότε δεν μπορεί να βρω ποιο είναι το σωστό hd0 .
Έκανα και αυτό.

menuentry "FreeBSD 14.2" {
    insmod ufs2
    search --no-floppy --fs-uuid --set=root a1574f76-d654-11ef-8c97-bc5ff4679bfb
    chainloader +1
}

και πάλι τίποτα !

Μήπως είναι κάτι στο bios τότε, κάποια ρύθμιση να μπορεί να εκκινήσει από εξωτερικό δίσκο usb κλπ;

Για να επιβεβαιώσουμε αν το UUID που χρησιμοποιείς είναι σωστό, εκτέλεσε την παρακάτω εντολή από τη Debian:

sudo blkid

Αυτή η εντολή θα εμφανίσει τα UUIDs όλων των partitions που αναγνωρίζει το σύστημα. Βρες το αποτέλεσμα που αντιστοιχεί στον δίσκο /dev/sdb και συγκεκριμένα στο partition /dev/sdb1 (FreeBSD boot) και στείλε μας το UUID που εμφανίζει.

Με αυτόν τον τρόπο θα μπορέσουμε να βεβαιωθούμε ότι η εγγραφή στο GRUB χρησιμοποιεί το σωστό UUID.

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

Μπουρλότο !!! Δεν έμεινε τίποτα … Αν δεν πάθεις δεν θα μάθεις … Πάμε από την αρχή όλα εγκατάσταση . Πάλι καλά που είχα πάρει Backup πρίν αρχίσω τα πειράματα ! Πάντως δεν μπορώ να βρω την άκρη .

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

Από περιέργεια, αν το μηχάνημα μείνει μόνο με το δίσκο με το FreeBSD, ξεκινάει; Στο ίδιο μηχάνημα εγκαταστάθηκε το FreeBSD;
Ρωτάω γιατί ενώ το μηχάνημα έχει BIOS, ο δίσκος με το FreeBSD είναι gpt αντί MBR (dos), και διαβάζω (§ 3) ότι αυτό μπορεί να προκαλέσει προβλήματα.
Δες και όλο το άρθρο εδώ, είναι χρήσιμο.
Σ.Σ.: Αναζήτηση για “error invalid signature”, με οδηγεί κατευθείαν σε αδυναμία εκκίνησης λόγω ενεργοποιημένου Secure Boot.

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

Τι προβλήματα δηλαδή; Μια χαρά δουλεύει το legacy με gpt. Όλοι οι παλαιοί servers που έχω στήσει, έτσι δουλεύουν. Απρόσκοπτα.
Το μόνο που θέλουν είναι ένα τζιρτζιλόνι partition στην αρχή για να “ακουμπίσει” ο grub.
Εδώ όμως ο grub είναι εγκατεστημένος σε άλλο δίσκο με debian και mbr.

Μα λέει ότι είναι legacy BIOS.
Μήπως δεν είναι;

Σωστή ερώτηση. Για να δούμε τι θα απαντήσει ο OP.

Καλησπέρα! Στην παρέα. Θέλω να σας ενημερώσω ότι βρήκα λύση και δουλεύει μια χαρά…

Όταν κάνεις εγκατάσταση το Freebsd σε ένα σημείο σε ρωτάει της επιλογής ufs η zfs εγώ επέλεγα συνέχεια zfs το πρόβλημα ηταν στην επιλογή του partitions. Έκανα καθαρή εγκατάσταση του Freebsd και επέλεξα ufs μετά επέλεξα MBR αντί του GPT. Ακολούθησα της οδηγίες πως να ρυθμύσω το Grub και τώρα όλα μια χαρά !

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