Δημοσιεύτηκε: 24 Μάιος 2012, 23:32
από Learner
Σε αυτόν τον οδηγό θα δούμε πως μπορούμε να κάνουμε εκκίνηση (boot) μέσω του grub2 , μιας iso εικόνας που έχουμε κατεβάσει.
Αυτό προϋποθέτει βέβαια να έχουμε εγκαταστήσει μια διανομή που χρησιμοποιεί τον grub2 , όπως π.χ το Ubuntu.

Να πω εδώ πως δεν υποστηρίζουν όλες οι εικόνες iso αυτή την λειτουργία. Πρέπει να είναι η κατασκευή της εικόνας τέτοια , ώστε να υποστηρίζει εκκίνηση.
Σε αυτόν τον οδηγό θα δούμε εκκίνηση με εικόνες iso , διανομών Ubuntu-based .
Άλλες διανομές πιθανών να χρειαστούν διαφορετικές παραμέτρους στο αρχείο grub.cfg για να εκκινήσουν σωστά.

Ας υποθέσουμε πως έχω κατεβάσει το iso της 12.04 και ονομάζεται : precise-desktop-i386.iso
Αυτό που θα κάνω θα είναι να προσθέσω κάποιες γραμμές στο αρχείο grub.cfg

Ανοίγω ένα τερματικό (τερματικό μπορούμε να ανοίξουμε πατώντας τον συνδυασμό πλήκτρων Ctrl+Alt+t ή από τις εκδόσεις Ubuntu 11.10 και μετά πατώντας στον Dash (εικονίδιο Ubuntu αριστερά επάνω) και πληκτρολογώντας την λέξη "terminal" ή "τερματικό") και γράφω την παρακάτω εντολή
Κώδικας: Επιλογή όλων
gksudo gedit /boot/grub/grub.cfg
και βρίσκω την παράγραφο που γράφει ### BEGIN /etc/grub.d/40_custom ### από κάτω προσθέτω τις εξής γραμμές

Κώδικας: Επιλογή όλων
menuentry "Presice Live" {
set isofile="/boot/ISO/precise-desktop-i386.iso"
loopback loop (hd0,msdos1)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}

  • Η πρώτη γραμμή menuentry καθορίζει το όνομα που θα φαίνεται στο μενού του grub2 . Ανάμεσα στα εισαγωγικά μπορούμε να γράψουμε ότι θέλουμε.
  • Στην δεύτερη γραμμή πρέπει να προσέξουμε έτσι ώστε να ορίσουμε την σωστή διαδρομή. Εκεί δηλαδή που βρίσκεται η εικόνα iso που έχουμε κατεβάσει. Βλέπετε πως η δική μου βρίσκεται μέσα σε έναν φάκελο που τον έχω ονομάσει ISO και τον έχω τοποθετήσει στο /boot.
  • Στην τρίτη γραμμή προσέχουμε να θέσουμε τον σωστό δίσκο και την σωστή κατάτμηση στην οποία βρίσκεται η εικόνα iso. Στο δικό μου παράδειγμα βρίσκεται στον πρώτο δίσκο (hd0) και στην πρώτη κατάτμηση (msdos1 = /dev/sda1) .
  • Τις υπόλοιπες δυο γραμμές τις αντιγράφουμε ως είναι χωρίς να χρειάζεται να αλλάξουμε κάτι.

Έπειτα πατάμε Save και μόλις κάνουμε επανεκκίνηση θα δούμε κάτω-κάτω στο μενού το όνομα
Presice Live και μπορούμε πλέον να κάνουμε boot στο Live iso της 12.04 απευθείας από τον grub2.


Αυτή η αλλαγή - προσθήκη που κάναμε είναι κατά κάποιον τρόπο προσωρινή. Δηλαδή με κάποιο update του grub η αλλαγή αυτή θα χαθεί και θα πρέπει να την καταχωρήσουμε ξανά χειροκίνητα.
Εάν θέλουμε να την κάνουμε μόνιμη , τότε πρέπει να επεξεργαστούμε το αρχείο που βρίσκεται στο /etc/grub.d/40_custom. Ανοίγουμε το αρχείο με τον ίδιο τρόπο
Κώδικας: Επιλογή όλων
gksudo gedit /etc/grub.d/40_custom
και προσθέτουμε τις παραπάνω γραμμές του οδηγού εκεί. Προσοχή να μην πειράξουμε κάτι άλλο από τα όσα ήδη περιέχει μέσα το αρχείο.
Μετά πρέπει να δώσουμε την παρακάτω εντολή
Κώδικας: Επιλογή όλων
sudo update-grub
για να περάσουν οι αλλαγές στο grub.cfg και να γίνουν μόνιμες.

Για νεότερες εκδόσεις Ubuntu (π.χ 13.10, 14.04 ..κλπ) θα πρέπει να κάνουμε μια αλλαγή, μια μετονομασία
sotos21 έγραψε:Η τέταρτη γραμμή από
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
Πρέπει να γίνει έτσι
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
Γιατί αλλιώς δεν ξεκινάει.(δεν βρίσκει το vmlinuz μέσα στο casper γιατί έχει μετονομαστεί σε vmlinuz.efi)


Δημιουργία χώρου αποθήκευσης των αλλαγών μας (Persistent) :


Αν θέλουμε να δημιουργήσουμε έναν χώρο αποθήκευσης , έτσι ώστε να μένουν οι αλλαγές που κάνουμε στο Live , όπως δηλαδή συμβαίνει με το LiveUsb , τότε θα πρέπει να δημιουργήσουμε έναν χώρο - μια κατάτμηση (partition) και να την ονομάσουμε casper-rw.
Έπειτα προσθέτουμε τις 2 παραμέτρους persistent & rw στην εκκίνηση του grub.
Θα δούμε πως όταν συνδεθούμε , θα έχει προσαρτηθεί ήδη το casper-rw και ότι αλλαγές κάνουμε θα αποθηκεύονται εκεί χωρίς να χαθούν.
Μπορούμε να δημιουργήσουμε κάποιον χρήστη για να είμαστε πιο σίγουροι , μιας και στην Live εκδοχή(με χρήστη - user τον ubuntu) πιθανών οι αλλαγές που θα κάνουμε να χαθούν με μια επανεκκίνηση και ας έχουμε δημιουργήσει χώρο persistent.
Οπότε συνοψίζοντας τα βήματα έχουν ως εξής :
  • (1) Δημιουργία χώρου , όσο εμείς θέλουμε , με το εργαλείο gpated . Μετατρέπουμε τον χώρο αυτό σε ext4 και του δίνουμε το όνομα (Label) casper-rw
  • (2)Προσθέτουμε στο αρχείο εκκίνησης του grub τις παραμέτρους persistent rw . Δηλαδή το grub.cfg , στον συγκεκριμένο οδηγό , να γίνει έτσι
    menuentry "Presice Live" {
    set isofile="/boot/ISO/precise-desktop-i386.iso"
    loopback loop (hd0,msdos1)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject persistent rw
    initrd (loop)/casper/initrd.lz
    }

  • (3) Μόλις μπούμε στο Live θα δούμε πως η κατάτμηση που έχουμε φτιάξει (partition - casper-rw) είναι ήδη προσαρτημένη . Δημιουργούμε έναν χρήστη με δικαιώματα admin και κωδικό (αν θέλουμε) και κάνουμε ένα logout-login για να συνδεθούμε με αυτόν τον χρήστη.
Την επόμενη φορά που θα μπούμε στο Live οι αλλαγές που θα έχουμε κάνει με αυτόν τον χρήστη θα είναι αποθηκευμένες.

Την ιδέα σχετικά με το persistent έδωσε ο Sotos21
Spoiler: show
sotos21 έγραψε: αν προχωρούσαμε λίγο τον οδηγό, θα μπορούσαμε να σώζαμε τις αλλαγές που κάνουμε στο live, σε κάποιο άλλο σημείο του σκληρού.

και την παραπάνω λύση ,σχετικά με το persistent , έδωσε ο Σιμος (simosx):
Spoiler: show
simosx έγραψε:Διαβάζοντας στο https://help.ubuntu.com/community/LiveCD/Persistence
αρκεί να φτιάξουμε μια κατάτμηση με ετικέτα (label) casper-rw σε σύστημα αρχείων ext4.



Ειδική εισαγωγή στον Grub2 για εκκίνηση mini.iso Ubuntu 12.04 :

Με τον παρακάτω τρόπο μπορούμε να δούμε πως εκκινεί και πως γίνεται η εγκατάσταση του Ubuntu 12.04 , από ένα mini.iso
Η διαφορά του mini.iso , από μια πλήρη .iso image , είναι πως έχει έναν βασικό text installer και ότι πακέτα θέλεις να εγκαταστήσεις , τα κατεβάζει εκείνη τη στιγμή από το Internet. Μπορείς έτσι να χτίσεις την δική σου 12.04 , με τα πακέτα που εσύ θέλεις να έχει.

Lionux έγραψε:Δεν ξερω το κατα ποσο θα φανει χρησιμο , αλλα σκεφτηκα να δωσω την εγγραφη που πρεπει να εχει ο grub ετσι ωστε να εκκινησουμε το mini.iso του ubuntu 12.04 . Πιθανον να ενδιαφερει οσους τους αρεσει να χτιζουν το συστημα τους !!! :)

Κώδικας: Επιλογή όλων
menuentry "ubuntu-minimal" {
set prefix=(hd0,1)/boot/grub
insmod linux
insmod loopback
insmod iso9660
loopback loop (hd0,1)/boot/iso/mini.iso
set root=(loop)
linux /linux iso-scan/filename=/boot/iso/mini.iso noprompt noeject toram
initrd /initrd.gz
}



Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα