UEFI Boot κάθε Ubuntu .iso απ' το τίποτα!

Προβληματισμός, προτάσεις και λύσεις για "αναβάθμιση" του Η/Υ σε εργαλείο παραγωγικότητας!
Λειτουργικά συστήματα, Backup/Recovery, χρήση του hardware I/O.
Απάντηση
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 508
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

UEFI Boot κάθε Ubuntu .iso απ' το τίποτα!

Δημοσίευση από GeorgeVita »

Προχώρησα ένα βήμα πιο πέρα την βασική ιδέα του θέματος "LiveISO", boot όλα τα ubuntu.iso με το grub2 δοκιμάζοντας δημιουργία "Live-USB" με απλό COPY. Συγκεκριμένα αντέγραψα τα περιεχόμενα των ευρετηρίων "boot" και "EFI" από μια διανομή Ubuntu (όπως υπάρχουν στο σχετικό αρχείο .iso) και ρύθμισα το grub menu για να εκκινήσει από το αρχείο .iso.

Η διαδικασία είναι απλή:
- Σε άδειο USB memory stick (FAT32) αντέγραψα τα directories "boot" και "EFI" από το τρέχον Ubuntu .iso
- δημιούργησα στο στικάκι ένα directory /ISO
- αντέγραψα μέσα στο /ISO το/τα αρχείο/α Ubuntu .iso (θα βρείτε πολλά στο http://cdimage.ubuntu.com/)
- μετονόμασα το .iso σε κάτι απλούστερο (λ.χ. U170464.iso) για να το πληκτρολογώ εύκολα και σωστά...
- άλλαξα τα περιεχόμενα του /boot/grub/grub.cfg σύμφωνα με τις "ιδέες" του θέματος "LiveISO"
- έκανα reboot, έλεγξα ότι ο Η/Υ μου κάνει εκκίνηση από "removable media" και έφτασα στο μενού "Which /ISO/.iso file?"
- πληκτρολόγησα το όνομα του .iso και enter, enter
... ΟΛΑ ΚΑΛΑ!

Επειδή μπορεί να μη είναι εύκολο να "ανοίξουμε" το .iso για να αντιγράψουμε τα ευρετήρια "boot" και "EFI", έφτιαξα ένα αρχείο .zip που περιέχει αυτά που υπάρχουν στο τρέχον Ubuntu Mate 17.10 iso. Με κάθε επιφύλαξη, απλό unzip στο USB drive θα έχει τα σωστά αποτελέσματα.

Συμπιεσμένο αρχείο .zip με τα περιεχόμενα των /boot και /EFI από Ubuntu Mate 17.10 (64bit): grubEFI.zip (2,3MB)

Στο ευρετήριο /boot/grub/ υπάρχει το αρχείο grub.cfg με τις επιλογές εκκίνησης του grub.
Αυτό το αρχείο πρέπει να ρυθμιστεί για να κάνει εκκίνηση από το .iso.

Τα τελικά περιεχόμενα του grub.cfg των δοκιμών μου ήταν:

Κώδικας: Επιλογή όλων

if loadfont /boot/grub/font.pf2 ; then
   set gfxmode=auto
   insmod efi_gop
   insmod efi_uga
   insmod gfxterm
   terminal_output gfxterm
fi

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

menuentry 'Boot from /ISO/????.iso file' {
set pager=1
echo
set root=hd0,msdos1
ls /ISO/
echo
echo -n 'Which /ISO/.iso file? '
read isofile
echo
loopback loop /ISO/$isofile
echo 'Loading Linux kernel vmlinuz.efi (if any)...'
linux (loop)/casper/vmlinuz.efi boot=casper fsck.mode=skip iso-scan/filename=/ISO/$isofile nomodeset --
echo 'Loading Linux kernel vmlinuz (if any)...'
linux (loop)/casper/vmlinuz boot=casper fsck.mode=skip iso-scan/filename=/ISO/$isofile nomodeset --
echo 'Loading initrd.lz (if any)...'
initrd (loop)/casper/initrd.lz
echo 'Loading initrd.gz (if any)...'
initrd (loop)/casper/initrd.gz
echo 'Loading initrd (if any)...'
initrd (loop)/casper/initrd
echo
}
Μπορείτε να ξεκινήσετε τον Η/Υ σας ακόμη και χωρίς σκληρό δίσκο!

Σημειώσεις:
- το .iso της δοκιμής ήταν το Ubuntu Mate 17.04 64 bit το οποίο έχει ονομασία kernel "vmlinuz.efi" και αρχική RAM στο "initrd.lz". Αλλες εκδόσεις μπορεί να χρησιμοποιούν διαφορετικές ονομασίες, λ.χ. "vmlinuz" και "initrd" ή "initrd.gz".
- η παράμετρος "root" έχει ρυθμιστεί με το "set root=hd0,msdos1" που σημαίνει ότι ο δίσκος που περιέχει τα παραπάνω είναι ο πρώτος ("hd0") και λειτουργούμε το πρώτο partition ("msdos1").

Επιπλέον για αλλαγές "on fly" στο grub:
- όταν εμφανίζεται το grub boot menu μπορούμε να πατήσουμε "e" (edit) των εντολών της επιλεγμένης γραμμής, να κάνουμε αλλαγές και μετά να τρέξουμε τις διορθωμένες εντολές με F10 ή ctrl-x.
- αν έχουμε περισσότερους δίσκους ίσως να πρέπει να ρυθμίσουμε κατάλληλα την παράμετρο "set root=hd0,msdos1".
- από το grub menu, με "c" (command line) μπορούμε να βρούμε πληροφορίες για τους δίσκους στο σύστημά μας. Στο grub shell υπάρχουν αρκετές βοηθητικές εντολές, όπως ls για λίστα αρχείων ή δίσκων, set για να δούμε ή να ρυθμίσουμε κάποια παράμετρο, cd για αλλαγή directory, κλπ.

Περισσότερα για το grub στην τυπική πηγή: https://www.gnu.org/software/grub/grub- ... ation.html

Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 508
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

Re: UEFI Boot κάθε Ubuntu .iso απ' το τίποτα!

Δημοσίευση από GeorgeVita »

Τα παραπάνω ... στα γρήγορα:

Δημιουργία "Ubuntu Live-USB" με απλό COPY και εκκίνηση H/Y UEFI 64bit.

1.
κατεβάζουμε το έτοιμο συμπιεσμένο αρχείο .zip grubEFIok.zip που περιέχει τα directories και το μενού εκκίνησης, το αποσυμπιέζουμε και μεταφέρουμε σε στικάκι φορμαρισμένο FAT32 τα directories /boot /EFI και /ISO στο root

2. κατεβάζουμε ένα iso Ubuntu από το http://releases.ubuntu.com/ (64bit), αλλάζουμε το όνομά του σε κάτι απλούστερο (λ.χ. U1710.iso) και το τοποθετούμε στο στικάκι εντός του directory /ISO

3.
bootάρουμε με UEFI από το στικάκι, πληκτρολογούμε το όνομα του iso και γίνεται εκκίνηση Ubuntu σε Live mode

Σημείωση: μπορούμε να τοποθετήσουμε πολλά αρχεία .iso εντός του directory /ISO και έτσι να δοκιμάσουμε διαφορετικές διανομές ή εκδόσεις του Ubuntu και των συναφών λειτουργικών.

Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 508
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

Re: UEFI Boot κάθε Ubuntu .iso απ' το τίποτα!

Δημοσίευση από GeorgeVita »

Στις παραμέτρους εκκίνησης πρόσθεσα nomodeset και αφαίρεσα το quiet και splash.
Τώρα η εκκίνηση γίνεται σε περισσότερους Η/Υ με διαφορετικές κάρτες γραφικών και φαίνεται όλη η πρόοδος του boot (παληομοδίτικο αλλά πιο κοντά στην τεχνολογία...).

Δοκίμασα επιτυχώς το νέο Ubuntu 20.04 (Focal Fossa).

Απάντηση

Επιστροφή στο “Ο Η/Υ ως εργαλείο παραγωγικότητας!”