Δημιουργία Multiboot USB ως Hybrid UEFI GPT + BIOS GPT/MBR
Έχουμε δει στο παρελθόν πως μπορείτε να φτιάξετε ένα multiboot usb. Συμπληρωματικά υπάρχει τρόπος και για το γνωστό hirens.
Εδώ θα δούμε πως μπορούμε να δημιουργήσουμε ένα multiboot usb με GPT διαμόρφωση, κατάλληλη για UEFI και MBR υπολογιστές.
Καταρχήν, πρέπει να γίνετε root.
sudo su
Στην συνέχεια, πρέπει να δούμε σε ποιο σημείο έχει γίνει προσάρτηση. Υπάρχουν πολλοί τρόποι, αλλά εδώ θα χρησιμοποιήσετε τον παρακάτω:
fdisk -l
Έστω ότι θα σας δώσει ως αποτέλεσμα ότι το USB σας είναι προσαρτημένο στο /dev/sdb.
Αρχικά θα ξεκινήσουμε την δημιουργία των κατατμήσεων. Χρησιμοποιήστε την εντολή gdisk.
gdisk /dev/sdb
Θα ξεκινήσει ένας "διάλογος".
Θεωρητικά πρέπει να γίνουν 3 κατατμήσεις.
1. Η BIOS boot με μέγεθος 1 MB
2. Η EFI System με τουλάχιστον 50 MB και σύστημα αρχείων FAT32
3. Η data (εκεί που θα είναι τα ISO) το υπόλοιπο μέγεθος και σύστημα αρχείων ότι υποστηρίζει ο GRUB (εδώ NTFS)
Στον διάλογο, απαντάτε τα έντονα πλάγια γράμματα τι πρέπει να απαντήσετε.
GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present Found valid GPT with hybrid MBR; using GPT. Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y Command (? for help): n Partition number (1-128, default 1): First sector (34-15669214, default = 2048) or {+-}size{KMGTP}: Last sector (2048-15669214, default = 15669214) or {+-}size{KMGTP}: +1M Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): EF02 Changed type of partition to 'BIOS boot partition' Command (? for help): n Partition number (2-128, default 2): First sector (34-15669214, default = 4096) or {+-}size{KMGTP}: Last sector (4096-15669214, default = 15669214) or {+-}size{KMGTP}: +50M Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): EF00 Changed type of partition to 'EFI System' Command (? for help): n Partition number (3-128, default 3): First sector (34-15669214, default = 106496) or {+-}size{KMGTP}: Last sector (106496-15669214, default = 15669214) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): 0700 Changed type of partition to 'Microsoft basic data' Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdb. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully.
Τώρα πρέπει να διαμορφώσουμε τις κατατμήσεις. Πάλι με την χρήση της gdisk.
gdisk /dev/sdb
Πάλι απαντάτε αυτά με έντονα πλάγια γράμματα.
GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): r Recovery/transformation command (? for help): h WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one, just hit the Enter key at the below prompt and your MBR partition table will be untouched. Type from one to three GPT partition numbers, separated by spaces, to be added to the hybrid MBR, in sequence: 1 2 3 Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): n Creating entry for GPT partition #1 (MBR partition #1) Enter an MBR hex code (default EF): EF02 Set the bootable flag? (Y/N): n Creating entry for GPT partition #2 (MBR partition #2) Enter an MBR hex code (default EF): EF00 Set the bootable flag? (Y/N): n Creating entry for GPT partition #3 (MBR partition #3) Enter an MBR hex code (default 07): 0700 Set the bootable flag? (Y/N): y Recovery/transformation command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdb. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully.
Ωραία. Τώρα βεβαιωθείτε ότι δεν είναι προσαρτημένες οι κατατμήσεις.
umount /dev/sdb1
umount /dev/sdb2
umount /dev/sdb3
umount /dev/sdb2
umount /dev/sdb3
Εάν δεν βλέπει το sdb2, τότε βγάλτε το USB και ξαναβάλετε το στην θέση του.
Ακολουθεί η διαμόρφωση (FAT32 και NTFS όπως προαναφέρθηκε)
mkfs.fat -F32 -n GRUB2EFI /dev/sdb2
mkfs.ntfs -L ISO /dev/sdb3
ή
mkfs.ext4 -L ISO /dev/sdb3
mkfs.ntfs -L ISO /dev/sdb3
ή
mkfs.ext4 -L ISO /dev/sdb3
Στην συνέχεια, φτιάξτε 2 φακέλους μέσα στον mnt, για να προσαρτήσετε τις κατατμήσεις.
mkdir /mnt/efi
mkdir /mnt/data
mount /dev/sdb2 /mnt/efi/
mount /dev/sdb3 /mnt/data/
mkdir /mnt/data/boot
mkdir /mnt/data
mount /dev/sdb2 /mnt/efi/
mount /dev/sdb3 /mnt/data/
mkdir /mnt/data/boot
Η δοκιμή έγινε σε 32bit σύστημα με βάση το Ubuntu. Οπότε έπρεπε να εγκαταστήσω και το παρακάτω πακέτο.
apt-get install grub-efi-amd64
Εσείς εάν έχετε 64bit λειτουργικό σύστημα, ίσως διαφέρει το πακέτο, ίσως να μην σας χρειάζεται.
Τώρα είναι το "μανίκι". Πρέπει να εγκαταστήσετε το grub.
Πρώτα για το efi (μια γραμμή).
grub-install --target=x86_64-efi --removable --recheck --efi-directory=/mnt/efi --boot-directory=/mnt/data/boot
Και στην συνέχεια το GRUB (μια γραμμή).
grub-install --target=i386-pc --recheck --boot-directory=/mnt/data/boot /dev/sdb
Τέλος θα πρέπει να φτιάξετε ένα grub.cfg.
Μπορείτε να πάρετε ένα έτοιμο από το github μου.
Μερικές λύσεις είναι:
* Multiboot USB
* Glim
Πηγές:
1. Arch Linux wiki
2. How to create an Hybrid UEFI GPT + BIOS GPT/MBR boot USB disk
Leave a Comment