Δημοσιεύτηκε: 17 Οκτ 2014, 19:38
Πολλές φορές θα μας είναι χρήσιμο αν είχαμε ένα στικάκι που να είχε την δυνατότητα να μπορεί να εκκινεί από παραπάνω από μια διανομές linux. Εξάλλου την σήμερον ημέρα τα στικάκια ξεπερνάνε άνετα τα 2GB κρίμα να έχετε ένα τόσο μεγάλο στικάκι και να έχει ανεκμετάλλευτο χώρο .
Αυτό άνετα το πετυχαίνεται με διάφορες λύσεις αλλά εμείς θα σας δείξουμε την λύση που δεν θα θέλετε τίποτα εξτρά (πέραν ότι προσφέρει το σύστημα από τα προεπιλεγμένα αποθετήριά του).
Λοιπόν τα υλικά μας είναι:
Εκτέλεση:
Ανοίγουμε το τερματικό και γινόμαστε root:
Μετά βλέπουμε όλους τους δίσκους και εντοπίζουμε το στικάκι μας:
θα είναι της μορφής /dev/sdx1 όπου x ένα λατινικό γράμμα αναλόγως το σύστημα.
Στην συνέχεια θα κάνουμε 2 υποθέσεις:
Και το κάνουμε Unmount το partition:
Τώρα έχουμε να επιλέξουε μεταξύ 2 οδών:
Ο παλιός τρόπος:
Μετά διαμορφώνουμε το partition σαν fat32:
Και μετά κάνουμε το partition bootable:
Στo μενού που μας βγάζει πατάμε a και enter μετά πατάμε 1 και enter και μετά w και enter
Και προσαρτίζουμε το usb stick ξανά.
Όπου όνομα_χρήστη το username που κάνεται login (είσοδο) στο σύστημα. Μπορείτε να το δείτε σε ένα διαφορετικό παράθυρο τερματικού δίνοντας την εντολή:
Εφόσον το προσαρτήσαμε εγκαθιστούμε τον grub2 στο στικάκι:
Ο νέος τρόπος:
Κατ αρχάς εκτελούμε τις εξής εντολές ΜΙΑ ΠΡΟΣ ΜΙΑ:
Η τελευταία, εάν σας βγάλει κάποια μυνήματα, χαλαρουίτα μην ανυσυχείτε.
Είστε ok εάν η εντολή:
Σας βγάλει ότι το στικάκι έχει 2 partitions.
Μετά διαμορφώνουμε το ΔΕΥΤΕΡΟ partition για το στικάκι μας (οι εντολές ΜΙΑ ΠΡΟΣ ΜΙΑ παρακαλώ):
Για να υποστηρίξει ο grub2 εγκατάσταση για EFI πρέπει να εγκατασταθούν κάποια πακετάκια:
(Και απολαύστε τα χρωματάκια στο τερματικό)
Και μετά εγκαθιστούμε τον grub στο στικάκι μας (οι εντολές ΜΙΑ ΠΡΟΣ ΜΙΑ παρακαλώ):
Και τώρα βάζουμε τα .iso αρχεία των διανομών στο στικάκι μας.
Εφόσον το κάνουμε δημιουργούμε στον φάκελο grub το έγγραφο grub.cfg με τον αγαπημένο μας text editor. Εκεί σε επιλογές menuentry βάζουμε τις επιλογές εκκίνησης για να ξεκινά ο grub από το iso της εκάστοτε διανομής που θέλουμε.
Σημείωση:Το αρχείο grub.cfg το δημιουργούμε σαν root.
Για Ubuntu, Lubuntu, Kubuntu, Xubuntu θα έχει μια καταχώρηση του στύλ:
Αν θέλετε να σας "πετάει" Απ' ευθείας σε περιβάλλον εγκατάστασης μετά από το noeject βάλτε only-ubiquity έτσι οι επιλογές θα γίνουν
Για Debian 8.6 64 bit έβαλα το εξής menuentry:
Για άλλες διανομές μπορείτε να δείτε εδώ το πως θα βάλετε ένα menuentry στο grub2 που είναι εγκατεστημένο στο στικάκι:
https://help.ubuntu.com/community/Grub2 ... t/Examples
Καθώς και να πείτε στο θέμα αυτό τις δικιές σας προτάσεις για menuentry.
Τέλος μπορείτε μέσω qemu να δοκιμάσετε χωρίς restart τα menuentry:
όπου στην θέση του /dev/sdx αντικαθιστούμε με το καταλλήλως προκειμένου να κάμνει (σσ. άτσα και το Κυπριακό) boot από την κατάλληλη συσκευή που αντιστοιχεί το στικάκι σας.
Αλλά μέτα από κάθε αλλαγή θα πρέπει να κάνετε unmount to στικάκι να το "ξεκαρφώνετε" και να το "ξανακαρφώνετε" στην θύρα USB ή μπορείτε να δίνετε την εντολή:
Για να μην κάψετε ούτε μια πικοθερμίδα (piko είναι μια υποδιαίρεση μικρότερη και από το nano).
Αυτό άνετα το πετυχαίνεται με διάφορες λύσεις αλλά εμείς θα σας δείξουμε την λύση που δεν θα θέλετε τίποτα εξτρά (πέραν ότι προσφέρει το σύστημα από τα προεπιλεγμένα αποθετήριά του).
Λοιπόν τα υλικά μας είναι:
- Το καλό μας τερματικό
- Ένα στικάκι μεγάλης χωρητικότητας (κρίμα να έχετε τόσες διανομές και να μην μπορείτε να τις χωρέσετε )
- Και βεβαίως βεβαίως διανομές Linux
Εκτέλεση:
Ανοίγουμε το τερματικό και γινόμαστε root:
- Κώδικας: Επιλογή όλων
sudo su
Μετά βλέπουμε όλους τους δίσκους και εντοπίζουμε το στικάκι μας:
- Κώδικας: Επιλογή όλων
fdisk -l
Καλό είναι να έχετε "καρφωμένο" μόνο το στικάκι που θέλετε να κάνετε multiboot για να μπορείτε να το βρείτε εύκολα
θα είναι της μορφής /dev/sdx1 όπου x ένα λατινικό γράμμα αναλόγως το σύστημα.
Στην συνέχεια θα κάνουμε 2 υποθέσεις:
- Ότι το στικάκι μας είναι το αρχείο συσκευής /dev/sdb
- Και αναλόγως ότι περιέχει ένα partition /dev/sdb1
Και το κάνουμε Unmount το partition:
- Κώδικας: Επιλογή όλων
umount /dev/sdb1
Τώρα έχουμε να επιλέξουε μεταξύ 2 οδών:
- Το στικάκι να μπορεί να κάνει boot μόνο σε legacy mode (ο παλιός τρόπος) ή και σε bios μηχανήματα
- Το στικάκι να μπορεί να κάνει boot παντού (ο νέος τρόπος), αλλά μην περιμένετε να κάνει boot σε secure mode εάν κάνει πείτε το από κάτω .
Όποιες εντολές εκτελούμε και στους 2 τρόπους τα εκτελούμαι σαν root (υπό καθεστώς sudo su).
Ο παλιός τρόπος:
Μετά διαμορφώνουμε το partition σαν fat32:
- Κώδικας: Επιλογή όλων
mkfs.vfat -F 32 -n MULTIBOOT /dev/sdb1
Και μετά κάνουμε το partition bootable:
- Κώδικας: Επιλογή όλων
fdisk /dev/sdb
Στo μενού που μας βγάζει πατάμε a και enter μετά πατάμε 1 και enter και μετά w και enter
Και προσαρτίζουμε το usb stick ξανά.
- Κώδικας: Επιλογή όλων
mkdir /media/όνομα_χρήστη/MULTIBOOT && mount /dev/sdb1 /media/όνομα_χρήστη/MULTIBOOT
Όπου όνομα_χρήστη το username που κάνεται login (είσοδο) στο σύστημα. Μπορείτε να το δείτε σε ένα διαφορετικό παράθυρο τερματικού δίνοντας την εντολή:
- Κώδικας: Επιλογή όλων
whoami
Εφόσον το προσαρτήσαμε εγκαθιστούμε τον grub2 στο στικάκι:
- Κώδικας: Επιλογή όλων
grub-install --force --no-floppy --target=i386-pc --recheck --boot-directory=/media/όνομα_χρήστη/MULTIBOOT/boot /dev/sdb
Ο νέος τρόπος:
Κατ αρχάς εκτελούμε τις εξής εντολές ΜΙΑ ΠΡΟΣ ΜΙΑ:
- Κώδικας: Επιλογή όλων
parted /dev/sdb -- mktable gpt
parted /dev/sdb -- mkpart biosgrub fat32 1MiB 4MiB
parted /dev/sdb -- mkpart efi fat32 4MiB -1
parted /dev/sdb -- set 1 bios_grub on
parted /dev/sdb -- set 2 esp on
Η τελευταία, εάν σας βγάλει κάποια μυνήματα, χαλαρουίτα μην ανυσυχείτε.
Είστε ok εάν η εντολή:
- Κώδικας: Επιλογή όλων
parted /dev/sdb -- print
Σας βγάλει ότι το στικάκι έχει 2 partitions.
Μετά διαμορφώνουμε το ΔΕΥΤΕΡΟ partition για το στικάκι μας (οι εντολές ΜΙΑ ΠΡΟΣ ΜΙΑ παρακαλώ):
- Κώδικας: Επιλογή όλων
mkfs -t vfat -n GRUB /dev/sdb2
mount /dev/sdb2 /mnt
Για να υποστηρίξει ο grub2 εγκατάσταση για EFI πρέπει να εγκατασταθούν κάποια πακετάκια:
- Κώδικας: Επιλογή όλων
apt install grub-efi-ia32-bin grub-efi-amd64-bin grub-pc-bin grub2-common
(Και απολαύστε τα χρωματάκια στο τερματικό)
Και μετά εγκαθιστούμε τον grub στο στικάκι μας (οι εντολές ΜΙΑ ΠΡΟΣ ΜΙΑ παρακαλώ):
- Κώδικας: Επιλογή όλων
grub-install --removable --no-nvram --no-uefi-secure-boot \
--efi-directory=/mnt --boot-directory=/mnt \
--target=i386-efi
grub-install --removable --no-nvram --no-uefi-secure-boot \
--efi-directory=/mnt --boot-directory=/mnt \
--target=x86_64-efi
grub-install --removable --boot-directory=/mnt \
--target=i386-pc /dev/sdb
Και τώρα βάζουμε τα .iso αρχεία των διανομών στο στικάκι μας.
Εφόσον το κάνουμε δημιουργούμε στον φάκελο grub το έγγραφο grub.cfg με τον αγαπημένο μας text editor. Εκεί σε επιλογές menuentry βάζουμε τις επιλογές εκκίνησης για να ξεκινά ο grub από το iso της εκάστοτε διανομής που θέλουμε.
Σημείωση:Το αρχείο grub.cfg το δημιουργούμε σαν root.
- Για τον παλιό τρόπο δίνουμε:
- Κώδικας: Επιλογή όλων
sudo touch /media/όνομα_χρήστη/MULTIBOOT/boot/grub/grub.cfg
- Για τον νέον τρόπο δίνουμε:
- Κώδικας: Επιλογή όλων
sudo touch /mnt/grub/grub.cfg
Για Ubuntu, Lubuntu, Kubuntu, Xubuntu θα έχει μια καταχώρηση του στύλ:
- Για 32 bit:
- Κώδικας: Επιλογή όλων
menuentry "Try Lubuntu 14.04 32 bit Desktop ISO" {
loopback loop /<ονομα iso>
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/<ονομα iso> noeject quiet splash locale=el_GR.UTF-8 --
initrd (loop)/casper/initrd.lz
}
- Για 64bit
- Κώδικας: Επιλογή όλων
menuentry "Try Ubuntu 14.04 64 bit Desktop ISO" {
loopback loop /<όνομα iso>
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/<όνομα iso> noeject quiet splash locale=el_GR.UTF-8 --
initrd (loop)/casper/initrd.lz
}
Αν θέλετε να σας "πετάει" Απ' ευθείας σε περιβάλλον εγκατάστασης μετά από το noeject βάλτε only-ubiquity έτσι οι επιλογές θα γίνουν
- Για 32 bit:
- Κώδικας: Επιλογή όλων
menuentry "Try Lubuntu 14.04 32 bit Desktop ISO" {
loopback loop /<ονομα iso>
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/<ονομα iso> noeject only-ubiquity quiet splash locale=el_GR.UTF-8 --
initrd (loop)/casper/initrd.lz
}
- Για 64bit
- Κώδικας: Επιλογή όλων
menuentry "Try Ubuntu 14.04 64 bit Desktop ISO" {
loopback loop /<όνομα iso>
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/<όνομα iso> noeject only-ubiquity quiet splash locale=el_GR.UTF-8 --
initrd (loop)/casper/initrd.lz
}
Για Debian 8.6 64 bit έβαλα το εξής menuentry:
- Κώδικας: Επιλογή όλων
menuentry "Debian 8.6" {
loopback loop /debian-8.6.0-amd64-CD-1.iso
set background_color=black
linux (loop)/install.amd/vmlinuz iso-scan/filename=/debian-8.6.0-amd64-CD-1.iso vga=788 --- quiet
initrd (loop)/install.amd/initrd.gz
}
Για άλλες διανομές μπορείτε να δείτε εδώ το πως θα βάλετε ένα menuentry στο grub2 που είναι εγκατεστημένο στο στικάκι:
https://help.ubuntu.com/community/Grub2 ... t/Examples
Καθώς και να πείτε στο θέμα αυτό τις δικιές σας προτάσεις για menuentry.
Τέλος μπορείτε μέσω qemu να δοκιμάσετε χωρίς restart τα menuentry:
- Κώδικας: Επιλογή όλων
qemu-system-x86_64 -hdb /dev/sdχ
όπου στην θέση του /dev/sdx αντικαθιστούμε με το καταλλήλως προκειμένου να κάμνει (σσ. άτσα και το Κυπριακό) boot από την κατάλληλη συσκευή που αντιστοιχεί το στικάκι σας.
Αλλά μέτα από κάθε αλλαγή θα πρέπει να κάνετε unmount to στικάκι να το "ξεκαρφώνετε" και να το "ξανακαρφώνετε" στην θύρα USB ή μπορείτε να δίνετε την εντολή:
- Κώδικας: Επιλογή όλων
cd ; sudo eject /dev/sdχ; sleep 1; sudo eject -t /dev/sdχ
Για να μην κάψετε ούτε μια πικοθερμίδα (piko είναι μια υποδιαίρεση μικρότερη και από το nano).