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

Προβληματισμός, προτάσεις και λύσεις για "αναβάθμιση" του Η/Υ σε εργαλείο παραγωγικότητας!
Λειτουργικά συστήματα, Backup/Recovery, χρήση του hardware I/O.
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 624
Εγγραφή: 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,, έφτιαξα ένα αρχείο .zip που περιέχει ότι χρειαζόμαστε:

Ενημερωμένο 21/06/2021

grubEFI.zip (4,4MB)

Συμπιεσμένο αρχείο με τα περιεχόμενα των /boot και /EFI από Ubuntu Mate 21.04 (64bit).
Επιπλέον υπάρχει ένα κενό directory /ISO για να τοποθετήσετε τα αρχεία .iso των διανομών.
Απλό unzip σε USB drive (fat32 formatted).


(Περιέχει grub version 2.04)

Στο ευρετήριο /boot/grub/ υπάρχει το κατάλληλα ρυθμισμένο αρχείο grub.cfg με την επιλογή "Boot from /ISO/????.iso file":

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

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
Διαχειριστής
Δημοσιεύσεις: 624
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

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

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

Εικόνα (λογότυπο του GNU Grub, Wikipedia)

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

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

1. κατεβάζουμε το έτοιμο συμπιεσμένο αρχείο .zip grubEFI.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
Διαχειριστής
Δημοσιεύσεις: 624
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

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

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

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

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

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

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

Σήμερα δοκίμασα επιτυχώς το πρόσφατο Ubuntu Mate 21.04 με την παραπάνω μέθοδο μου (UEFI BOOT any Ubuntu iso με απλό COPY των αρχείων σε στικάκι FAT32).

Στα πακέτα του Ubuntu 21.04 περιλαμβάνεται το τελευταίο stable version 5.1.9 του KiCad!


Η δοκιμή του KiCad σε live-ISO μπορεί να γίνει μετά την εγκατάστασή του:

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

Από τερματικό (CTRL+ALT+T):

sudo apt update 
sudo apt dist-upgrade 
sudo apt install kicad

Μετά βρίσκουμε το KiCad στο Menu > Other
Σημείωση: η τυπική διάρκεια υποστήριξης του Ubuntu 21.04 είναι για 9 μήνες. Για μακροχρόνια υποστήριξη επιλέγουμε μια έκδοση LTS (τώρα 20.04 και του χρόνου η 22.04).
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 624
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

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

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

Δοκίμασα επιτυχώς EFI boot του ISO Linux Mint Cinnamon 20.2.

Απλά, download iso, copy στο directory /ISO του USB stick, reboot, F9 ...

Τη σημείωση αυτή την γράφω από αυτό το Live περιβάλλον.
pez
Δημοσιεύσεις: 936
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

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

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

GeorgeVita έγραψε: 05 Σεπ 2021, 22:33 Δοκίμασα επιτυχώς EFI boot του ISO Linux Mint Cinnamon 20.2.

Απλά, download iso, copy στο directory /ISO του USB stick, reboot, F9 ...

Τη σημείωση αυτή την γράφω από αυτό το Live περιβάλλον.
.
Χαίρετε!

Στο AMD με w10e64 κατέβασα το:

http://www.acomelectronics.com/hlektronika/HY/grubEFI.zip

Το αποσυμπίεσα στο D:\grubEFI όπου δημιούργησε τα folders:

boot, EFI, και ISO

Από τον Explorer ζήτησα: > D:\grubEFI | Properties και μου είπε:

General
Size:         10.7 MB (11,459,408 bytes)
Size on disk: 10.9 MB (11,325,281 bytes)
Contains:     565 Files, 8 Folders 

Πήρα ένα Kingston 32 GB DataTraveler 100 USB 3.2/3.1/3.0/2.0
και το έβαλα σε μια υποδοχή USB 3.0, οπότε εμφανίστηκε στον
Explorer ως:

KINGSTON (F:)

οπότε ζήτησα: > F:\ | Properties και μου είπε:

General
Type: USB Drive
File system: FAT32
Capacity: 30,927,880,192 (28.8 GB)

και με Copy/Paste αντέγραψα όλα τα περιεχόμενα του
D:\grubEFI\ στο F:\

Πήγα στο μηχάνημα intel με i5-3rdGen και με Power Off έβαλα το
εν λόγω KINGSTON σε μια υποδοχή USB 3.0, έκανα Power On, για να
μου ανοίξει το SetUp menu πάτησα [Εsc], είδα πως το [F9] είναι το
Boot Menu, δεν το πάτησα αλλά για να βεβαιωθώ ότι το KINGSTON
είναι επιλέξιμο για boot, πάτησα [F10] για Computer Setup, που έτσι
άνοιξε το menu του, όπου διάλεξα: [Storage] | [Device Configuration]
κι εκεί ναι, πράγματι, ήταν κι αυτό στην κατηγορία:

Hard Disk 
 SATA0 WD500 κλπ 
-όπου είναι το ubuntu και ο Windows Manager για το w10p64-
 USB 30.9 GB KingstonDataTraveller 3.0 

οπότε με [Esc] βγήκα από αυτήν την κατηγορία και για να
βεβαιωθώ πως το USB Hard Drive ήταν επιλέξιμο πήγα στην
κατηγορία:

Boot Order 
EFI Boot Sources
  ...
  USB Hard Drive 

και το είδα. Μετά από αυτά έκανα reboot και με [F9] πήρα

Please select boot device:
EFI boot sources  
  ubuntu
 >KingstonDataTraveller 3.0

διάλεξα και ναι, πράγματι, ξεκίνησε!

- ΑΜΕΣΩΣ και ΠΑΝΕΥΚΟΛΑ! -

το grub μέσα από το Kingston.

Μετά έγινε ένας επαναλαμβανόμενος πανικός ώσπου βρήκα πως έπρεπε
να δώσω [c], να δω το [ls] ότι το [msdos1] "σε εμένα" ΔΕΝ ήταν στο [hd0]
αλλά στο [hd2], να πατήσω [e], να αλλάξω το [hd0] σε [hd2], να πατήσω
[F10], να μου εμφανίσει ΓΙΑ ΠΡΩΤΗ ΦΟΡΑ τα δύο ονόματα των 2 isοs, που
είχα εν τω μεταξύ βάλει μέσα "μη τυχόν κι έφταιγε αυτό" -που δεν έφταιγε,
φυσικά, αλλά είπαμε: "πανικός μπροστά στο άγνωστο" : ) - και τα είχα
αλλάξει και όνομα από τα μακρινάρια σε [xfce.iso] και [mint.iso] -μετά
κατάλαβα "το γιατί", διότι θα έπρεπε ΝΑ ΓΡΑΨΩ το πλήρες όνομα αυτού που
θέλω κι όχι να περιμένω πως θα το διάλεγα με τα βελάκια =ΔΙΑΒΑΣΕ
ΕΠΙΤΕΛΟΥΣ ΜΙΑ ΦΟΡΑ ΟΛΕΣ ΤΙΣ ΟΔΗΓΙΕΣ ΑΠΟ ΤΗΝ ΑΡΧΗ= οπότε το έγραψα:
"xfce.iso", άρχισε να λέει "error-εδώ-κι-error-εκεί", η yin μού θύμισε: "linux
είναι", ήδη όμως πατούσα το [Enter] εκεί που είχε σταματήσει, και μετά από
τα ακατανόητα κατεβατά που γεμίζουν την οθόνη αλλά και την αλλαγή
ανάλυσης, κάποια στιγμή: Ε Π Α Ι Ξ Ε !

ΤΟΣΟ ΕΝΤΥΠΩΣΙΑΚΑ: ΚΑΙ ΑΠΛΑ! ΚΑΙ ΓΡΗΓΟΡΑ!

Πω! Πω! Είμαστε πια σε άλλη Εποχή...

Θ Ε Ρ Μ Α  Σ Υ Γ Χ Α Ρ Η Τ Η Ρ Ι Α !

Πολύ Καλή Εργασία!


Ευχαριστώ θερμώς!

Με Θερμούς Χαιρετισμούς,

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

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

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

pez έγραψε: 06 Σεπ 2021, 02:16...διότι θα έπρεπε ΝΑ ΓΡΑΨΩ το πλήρες όνομα αυτού που
θέλω κι όχι να περιμένω πως θα το διάλεγα με τα βελάκια...
Αυτά τα "καλούδια" είναι στην ύλη του θέματος "Μάθε grub!" το οποίο και αυτο-λογόκρινα το 2014!
Ήθελε γονική συναίνεση λόγω επικινδυνότητας "No Boot".

Εικόνα

Το τρέχον αρχείο grub.cfg έχει τα βασικά.
Αυτό το κατεβατό στο boot είναι χρήσιμο αν κολλήσει κάπου, βλέπεις αμέσως τι φταίει και απομακρύνει την πιθανότητα να χάσεις την οθόνη από κακή ρύθμιση/ασυμβατότητα κάρτας γραφικών.

Η χρησιμότητα της μεθόδου είναι στη σύντομη αξιολόγηση διάφορων παραλλαγών Ubuntu (και συναφών).

Καλή συνέχεια στις δοκιμές σας!
pez
Δημοσιεύσεις: 936
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

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

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

GeorgeVita έγραψε: 06 Σεπ 2021, 08:35
Αυτά τα "καλούδια" είναι στην ύλη του θέματος "Μάθε grub!" το οποίο και αυτο-λογόκρινα το 2014!
Ήθελε γονική συναίνεση λόγω επικινδυνότητας "No Boot".

Εικόνα
.
Πολύ ενδιαφέρον! Το αναζήτησα, και όπως αναφέρετε και αλλού: ναι,
πράγματι, όλα δείχνουν πως δεν υπάρχει πια. Όμως εμένα δεν με πειράζει
το "no boot", οπότε θα ήθελα να σας παρακαλέσω αν έχετε κρατήσει
κάποιο αντίγραφο να μου το στείλετε.
.
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 624
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

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

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

Από το ημιτελές θέμα "Μάθε grub! (απαραίτητη η γονική συναίνεση)"
Ημερομηνία σχολίου: 23/4/2014


Εικόνα


Μάθε grub! (απαραίτητη η γονική συναίνεση) Εικόνα

Σημείωση: οι αλλαγές παραμέτρων στον boot manager μπορεί να θέσουν τον υπολογιστή σας σε κατάσταση "μη εκκίνησης"! Δοκιμάστε με δική σας ευθύνη μόνο εφόσον κατανοήσατε τη λειτουργία του! Αν έχετε απορίες ρωτήστε πριν τις δοκιμές σας.

Αναρωτηθήκατε ποτέ για το ποιό είναι το πρώτο "πρόγραμμα" που τρέχει στον υπολογιστή σας;
Κάποτε, προσπαθώντας να απαντήσω στην παιδική ερώτηση:
"Πως λειτουργεί ο ηλεκτρονικός υπολογιστής;"
έκανα πολύ αναλυτικές σκέψεις, μέχρι που μπερδεύτηκα!

Ας τα πάρουμε από την αρχή:
Ο υπολογιστής αποτελείται από ηλεκτρονικά κυκλώματα (hardware), προγράμματα ρύθμισης υλικού που βρίσκονται μέσα στα κυκλώματα (firmware), προγράμματα διαχείρισης του υπολογιστή ("λειτουργικό σύστημα", "operating system software") και προγράμματα εφαρμογών χρήστη ("applications software").

Διαδικαστικά, μπορούμε να το δούμε και έτσι:
- βάζουμε τον υπολογιστή "στην πρίζα" (power on)
- τα κυκλώματα τροφοδοσίας δίνουν τάση στα υπόλοιπα κυκλώματα/υποσυστήματα
- κάθε υποσύστημα αρχικοποιείται από το δικό του firmware
- το firmware της κεντρικής πλακέτας (BIOS) ανιχνεύει και ρυθμίζει τα περιφερειακά υποσυστήματα
- το BIOS σύμφωνα με τις ρυθμίσεις του αναζητά περιφερειακά με δυνατότητα εκκίνησης ("boot")
- το BIOS δείχνει στον επεξεργαστή τον κώδικας εκκίνησης (συνήθως σε ένα "boot sector")
- τρέχει το πρόγραμμα διαχείρησης εκκίνησης ("boot manager") που βρίσκεται στο σύστημα αρχείων
- φορτώνεται το λειτουργικό σύστημα
- ...


Ας το δούμε από άλλη γωνία:
Επί τη ευκαιρία κυκλοφορίας του Ubuntu 14.04 ... (http://www.ubuntu.com/download/desktop)
... αρκετοί θα θελήσουν να δοκιμάσουν το νέο Ubuntu, μια παραλλαγή του (Xubuntu, Lubuntu, Ubuntu-Gnome) ή ένα παράγωγο (Linux Mint, LXLE, ...). Η δοκιμή γίνεται τρέχοντας μια έκδοση "Live" χωρίς να πειράξουμε κάτι στον υπολογιστή μας αφού το λειτουργικό θα τρέξει μόνο στη μνήμη RAM.

Παλαιότερα καίγαμε δισκάκι για δημιουργία ενός Live-CD, μετά προγραμματίζαμε στικάκι ως Live-USB ενώ τώρα χρησιμοποιούμε Live-ISO αφού απλά boot-άρουμε απ' ευθείας το .iso μέσω του boot manager GNU/GRUB v.2 ("grub2")! Αυτό γίνεται εντελώς χειροκίνητα μέσα από τερματικό του grub2 ή τοποθετώντας μιά νέα επιλογή στο μενού του:

Εικόνα

Σχεδόν όλα τα ?-Ubuntu και τα παράγωγά τους που φτιάχτηκαν από το 2009 και μετά μπορούν να εκκινήσουν απ' ευθείας μέσω grub2 με τις παρακάτω εντολές, αλλάζοντας μόνο το όνομα του αρχείου .iso στον ορισμό της μεταβλητής "isoname":

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

set isoname="trusty-desktop-i386.iso"
loopback loop $isoname
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/$isoname quiet splash --
initrd (loop)/casper/initrd.lz
boot
Η αντίστοιχη καταχώρηση στο μενού του grub2 θα είναι:

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

menuentry 'Boot from .iso' {
set isoname="trusty-desktop-i386.iso"
loopback loop $isoname
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/$isoname quiet splash --
initrd (loop)/casper/initrd.lz
}
Σε περίπτωση που δεν έχετε τοποθετήσει το αρχείο .iso στο "/" αλλά σε άλλο φάκελο, λ.χ. "/ISO/", συμπληρώστε το:

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

set isoname="/ISO/trusty-desktop-i386.iso"
Για να δημιουργήσετε την επιπλέον επιλογή στο μενού του grub2, θα αλλάξετε το αρχείο /etc/grub.d/40_custom με τον απλό επεξεργαστή κειμένου:

για Ubuntu, Gnome-Ubuntu και αρκετά παράγωγα:

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

gksudo gedit /etc/grub.d/40_custom 
για Lubuntu:

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

sudo leafpad /etc/grub.d/40_custom 
για Xubuntu

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

gksudo mousepad /etc/grub.d/40_custom 

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

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

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
Στο τέλος των υπαρχόντων στοιχείων θα προσθέσουμε τη νέα εντολή menuentry.
Αποθηκεύουμε το αρχείο, ενημερώνουμε το grub:

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

sudo update-grub
και επανεκκινούμε το σύστημα:

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

sudo reboot

Σας προτείνω τη δημιουργία του φακέλου /ISO/ όπου θα βάζετε όλα τα αρχεία .iso και με την παρακάτω επιλογή μενού "γενικής χρήσης" θα πληκτρολογήσετε το όνομα του αρχείου αφού πρώτα δείτε όλα το ευρετήριο στην οθόνη σας. Μπορείτε να αλλάξετε τα ονόματα των αρχείων σε μικρότερα για την ευκολία σας (λ.χ. από mint-16-cinnamon-i386.iso σε mint16cin.iso και από trusty-desktop-i386.iso σε U1404.iso).

Η εγγραφή της επιλογής "γενικής χρήσης" στο μενού του grub είναι:

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

menuentry 'Boot from /ISO/xyz.iso file' {
set pager=1
echo
ls /ISO/
echo
echo -n 'Which /ISO/.iso file? '
read isofile
echo
loopback loop /ISO/$isofile
echo 'Loading Linux kernel ...'
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ISO/$isofile quiet splash --
echo 'Loading initial ramdisk ...'
initrd (loop)/casper/initrd.lz
echo 'Booting ...'
echo
}
Θα την τοποθετήσετε στο τέλος εντός του αρχείου /etc/grub.d/40_custom

Οι εντολές εκκίνησης του .iso όπως φαίνονται στο menu του grub2 πατώντας "e" (Edit):
Εικόνα

Ετσι εμφανίζονται όλα τα αρχεία .iso που είναι στον φάκελο /ISO/:

Εικόνα

Πληκτρολογούμε το όνομα αρχείου και πατάμε το <enter>. Το Live-ISO ξεκινά ...

Αν αργότερα θέλετε να επαναφέρετε το σύστημα στην προηγούμενη κατάσταση, χωρίς την επιπλέον επιλογή στο μενού του grub2, θα ανοίξετε το ίδιο αρχείο για διόρθωση (λ.χ. gksudo gedit /etc/grub.d/40_custom) και θα αφαιρέσετε τις γραμμές που προσθέσατε από "menuentry" μέχρι και το "}" στο κάτω μέρος. Μετά εκτελείτε "sudo update-grub".


Λίγα λόγια για το GNU/GRUB v.2 ("grub2")
O boot manager grub2 αποτελείται από δύο τμήματα, αυτό που τοποθετείται στο MBR (περίπου 500 bytes) και από το βασικό του μέρος που τυπικά αποθηκεύεται στο φάκελο /boot/grub/ του τμήματος δίσκου που γίνεται η εκκίνηση. Η τοποθέτηση του grub2 στο MBR και το /boot/grub/ γίνεται κατά την εγκατάσταση ενός λειτουργικού linux ή χειροκίνητα με την εντολή grub-install. Η ρύθμιση του grub2 (εμφάνιση, μενού, συμπεριφορά) γίνεται με αλλαγή προσδιοριστικών αρχείων στο φάκελο /etc/grub.d/ και εκτέλεση της εντολής update-grub. Το αποτέλεσμα των ρυθμίσεων υπάρχει στο αρχείο /boot/grub/grub.cfg το οποίο μπορούμε να "πειράξουμε" προσωρινά έως να γίνει το επόμενο update-grub.

Τι γίνεται κατά την εκκίνηση του υπολογιστή
Με την τροφοδότηση του υπολογιστή, τα επιμέρους υποσυστήματα αρχικοποιούνται από το δικό τους firmware, μετά αναλαμβάνει το BIOS που κάνει τις βασικές ρυθμίσεις και ανάλογα με τις αποθηκευμένες επιλογές, ψάχνει για περιφερειακά με δυνατότητα εκκίνησης (αποθηκευτικά μέσα ή δίκτυο) και τις περισσότερες περιπτώσεις δείχνει στην CPU τον αρχικό κώδικα εκκίνησης που βρίσκεται στο MBR κάποιου αποθηκευτικού μέσου. Ο λίγος κώδικας του MBR, δείχνει την συνέχεια του κώδικα εκκίνησης που βρίσκεται στο σύστημα αρχείων και αποτελεί το μεγαλύτερο μέρος του boot manager. Ακολουθεί η εκκίνηση του λειτουργικού συστήματος.

Πιθανά σφάλματα κατά την εκκίνηση
Αν δεν βρεθεί σωστός κώδικας στο MBR, θα εμφανιστεί κάποιο μήνυμα του τύπου "No system disk".
Μετά την εκτέλεση του κώδικα στο MBR αν δεν βρεθεί η συνέχεια του κώδικα (συνήθως στο φάκελο /boot/grub/) ο grub2 δημιουργεί ένα ελάχιστο περιβάλλον εργασίας και μας δίνει το τερματικό για να συνεχίσουμε χειροκίνητα. Εμφανίζεται το prompt: "grub rescue>".
Αν φορτωθεί ο grub2 και δημιουργηθεί μετά κάποιο πρόβλημα (λ.χ. λάθος στο /boot/grub/grub.cfg), θα έχουμε εκτεταμμένο περιβάλλον εργασίας σε τερματικό με prompt: "grub>". Το ίδιο περιβάλλον εργασίας έχουμε αν πατήσουμε "c" στο μενού του grub2.

Προσπάθεια εκκίνησης από "grub rescue>"
Εδώ υπάρχουν λιγοστές εντολές:
ls
set
unset
normal

Σκοπός μας είναι να δείξουμε το "κύριο μέρος" του grub2 και να συνεχίσουμε τη ροή εκτέλεσής του.

Προσπάθεια εκκίνησης από "grub>"
...

Γενική προσέγγιση επιτυχούς boot linux με τις ελάχιστες εντολές από το περιβλάλλον του grub
Αν υποθέσουμε ότι όλοι οι υπολογιστές είναι σχετικά συμβατοί, για την εκκίνηση κάθε linux αρκούν οι εντολές:

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

linux /kernel
initrd /initrd.img
Σημείωση: το "/kernel" στην εντολή "linux /kernel" μπορεί να είναι απλά το "/vmlinuz" ή ένα συγκεκριμένο αρχείο kernel όπως "/linux-image-4.4.0-24-generic"


Σε περίπτωση προβλήματος εκκίνησης λόγω ασυμβατότητας της κάρτας γραφικών, συμπληρώνουμε δίπλα στο kernel την παράμετρο "nomodeset":

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

linux /kernel nomodeset
initrd /initrd.img
Για πιο "ειδικό hardware", προσθέτουμε αντίστοιχες "ειδικές" και δυσεύρετες ρυθμίσεις! Βοηθός μας πάλι το internet ...

συνεχίζεται ...


____ ____ ____ ____ ____ ____ ____ ____


Επιπλέον παραθέτω μερικές χρήσιμες εντολές bash για να βρούμε τις ονομασίες των partitions (UUID) ώστε να είναι επιτυχημένη η προσπάθεια boot σε συστήματα με πολλούς δίσκους ή με προσθήκες/αλλαγές στα αφαιρούμενα αποθηκευτικά μέσα:


Ποιό partition τρέχω και έχει το root?

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

df -h / --output=source | tail -1
Το ίδιο σε μεταβλητή:

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

MySystemPartition=$(df -h / --output=source | tail -1)
echo $MySystemPartition
Ποιο UUID έχει ένα συγκεκριμένο partition;

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

sudo blkid /dev/sda5 -o value -s UUID
Το ίδιο σε μεταβλητή:

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

MySystemPartitionUUID=$(sudo blkid /dev/sda5 -o value -s UUID)
echo $MySystemPartitionUUID
Συνδυάζοντας τα παραπάνω για να πάρω σε μεταβλητή το UUID του τρέχοντος συστήματος:

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

MySystemPartitionUUID=$(sudo blkid $(df -h / --output=source | tail -1) -o value -s UUID)
echo $MySystemPartitionUUID
Για να δώσουμε και το password στην ίδια εντολή (...μειωμένη ασφάλεια συστήματος λόγω προβολής του στο bash history)

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

MySystemPartitionUUID=$(echo password | sudo -S blkid $(df -h / --output=source | tail -1) -o value -s UUID)
echo $MySystemPartitionUUID
Σημείωση: αντί UUID (filesystem) μπορούμε να ζητήσουμε το PARTUUID (partition σε GPT) που δεν αλλάζει μετά από format.
pez
Δημοσιεύσεις: 936
Εγγραφή: 03 Ιούλ 2016, 01:51
Ονομα: pez
Τοποθεσία: eu
Επικοινωνία:

Re: "Μάθε grub! (απαραίτητη η γονική συναίνεση)"

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

.
Μάλιστα!
+1!
Αμέσως Αναπαραγωγή σε clear text προς μια Οικονομική Εκτύπωση για Άνετη Μελέτη...
Ευχαριστώ πολύ!
: )
.
Απάντηση

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