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

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

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

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

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

Δοκίμασα επιτυχώς το νέο Ubuntu 20.04 (Focal Fossa).
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 269
Εγγραφή: 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
Διαχειριστής
Δημοσιεύσεις: 269
Εγγραφή: 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 περιβάλλον.
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 269
Εγγραφή: 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.
Απάντηση