Κλωνοποίηση εγκαταστάσεων Linux/Windows

Ξεκίνησε από alkisg, 27 Δεκ 2018, 09:16:49 ΠΜ

« προηγούμενο - επόμενο »

alkisg

Έστω ότι για παράδειγμα ένα ΚΕΠΛΗΝΕΤ θέλει να εγκαταστήσει Ubuntu σε 50 σχολεία. Ή, ότι ένα σχολείο θέλει να κάνει 10 standalone εγκαταστάσεις (όχι LTSP). Να μια γρήγορη μέθοδος που χρειάζεται γύρω στα 10 λεπτά για κάθε εγκατάσταση:
1) Εγκαθιστούμε το λειτουργικό που θέλουμε σε μια εικονική μηχανή στο VirtualBox. Στη φάση που ρωτάει για δίσκο, του λέμε τύπο "vmdk" και "fixed size". Με αυτόν τον τρόπο θα δημιουργηθεί ένα αρχείο "raw", που θα μπορεί κατευθείαν να αντιγραφεί σε νέους δίσκους. Προσέχουμε το μέγεθος του δίσκου ώστε να είναι αρκετό μεν, αλλά όσο μικρότερο δε, ώστε ούτε πολύ χώρο να πιάνει στο δίσκο μας ούτε να αργεί η αντιγραφή του σε νέους δίσκους. Π.χ. για Ubuntu εγώ βάζω 10 GB.

2) Με κλειστή την εικονική μηχανή, βάζουμε τον "target" δίσκο σε μια θήκη USB και τον συνδέουμε στον server μας. Ανοίγουμε ένα τερματικό και δίνουμε sudo umount /media/$USER/* ώστε αν τυχόν έχει ήδη κάποια partitions, να αποπροσαρτηθούν και να μην είναι σε χρήση. Δίνουμε sudo lsblk --fs για να δούμε ποιο γράμμα του έχει αντιστοιχηθεί, και τελικά κάνουμε την αντιγραφή με την εντολή
sudo dd if=~/VirtualBox\ VMs/bionic-mate-sch64/bionic-mate-sch64-flat.vmdk of=/dev/sdb bs=1M status=progress
...αλλάξτε τα παραπάνω 2 μονοπάτια με αυτά που ταιριάζουν στην περίπτωσή σας.

3) Αφού τελειώσει η αντιγραφή, δίνουμε την εντολή sudo gparted /dev/sdb, και επεκτείνουμε το διαμέρισμα του λειτουργικού από π.χ. 10 GB στο 1 TB ώστε να πιάσει ολόκληρο τον target δίσκο.

Εναλλακτικό βήμα (2) αν δεν έχουμε USB θήκη αλλά έχουμε LTSP server και τοπικό δίκτυο:
Μπουτάρουμε τον "target" δίσκο από τον υπολογιστή που ήδη βρίσκεται, μέσω δικτύου ως LTSP client. Χωρίς να κάνουμε login, από τον Επόπτη κάνουμε δεξί κλικ → εκτέλεση → άνοιγμα κονσόλας → διαχειριστή, τοπικά. Από εκείνο το τερματικό δίνουμε swapoff -a; sshfs administrator@server: /mnt ώστε να απελευθερώσουμε τα swap partitions και να προσαρτήσουμε τον προσωπικό φάκελο του administrator στον client. Και τέλος κάνουμε την αντιγραφή του δίσκου με την εντολή
dd if=/mnt/VirtualBox\ VMs/bionic-mate-sch64/bionic-mate-sch64-flat.vmdk of=/dev/sdb bs=1M status=progress
...και συνεχίζουμε με το βήμα 3.


Η μέθοδος αυτή ισχύει και για Windows 10, με τη διαφορά ότι κατά την πρώτη εκκίνηση τα Windows 10 θα χρειαστούν κανά 10λεπτο να εγκαταστήσουν τους drivers για το νέο υλικό. Το βασικό είναι να έχουμε για resize μόνο ένα διαμέρισμα και όχι πολλά (δηλαδή όχι dual boot Windows/Linux), ώστε να εκτελεστεί σε λίγα δευτερόλεπτα, γιατί γίνεται επέκταση μόνο του τέλους του διαμερίσματος χωρίς μετακίνηση sectors.

Δημήτρης Γκίνης

Έχω την εξής περίπτωση:
Έστησα σήμερα σε μηχάνημα με win10 με uefi σε legacy mode, server με UBUNTU ltsp server 18.04 κομπλέ (λογισμικά, sch-scripts, 1 ομάδα egrast με 25 χρήστες, εικονικό δίσκο δημιουργημένο για οικονομία χρόνου). Με gparted έκανα shrink το partition και με clonezilla -από συνήθεια-έσωσα το image του σε εξωτερικό δίσκο.
Θέλω με το image αυτό να κάνω γρήγορα εγκατάσταση σε εργαστήρια που δεν έχουν καθόλου ή έχουν παλιότερη έκδοση (σε μισή περίπου ώρα θα είναι έτοιμα).
Η ερώτησή μου είναι η εξής: Δεδομένου ότι στο μηχάνημα από το οποίο πήρα το image ο grub δεν βλέπει το partition των windows  (από το bios μόνο με απενεργοποιημένο το uefi boot φτάνεις στον μενού του grub, αλλιώς μπαίνει κατευθείαν στα στα windows) αν κάνω restore το image αυτό σε μηχανήματα που είτε είναι ήδη dual boot χωρίς όμως uefi (πχ win10+ubuntu) είτε έχουν μόνο windows θα έχω πρόβλημα και αν ναι πώς διορθώνεται;

alkisg

Το UEFI/Legacy ας το λέμε σκέτα BIOS για να μην μπλεκόμαστε.
Επίσης, εννοείται ότι UEFI=GPT, και BIOS=MBR, όποιος χρησιμοποιεί κάτι διαφορετικό θα πρέπει να το αναφέρει γιατί είναι σχετικά σπάνιο.
Όποιος έχει αμφιβολία για το τι έχει κάνει, ας ανεβάζει το αποτέλεσμα της εντολής sudo parted -l για να δούμε.

Θεωρώ λοιπόν ότι έκανες εγκατάσταση BIOS/GPT, χρησιμοποιώντας ένα ειδικό grub boot partition.
Οι target υπολογιστές θεωρώ ότι είναι BIOS/MBR.
Σ' αυτήν την περίπτωση, αν αντιγράψεις το partition του Ubuntu, κατά πάσα πιθανότητα θα χρειαστεί να τρέξεις dpkg-reconfigure grub-pc, όπως φαίνεται σε αυτό το θέμα, στο βήμα 4, στις γραμμές 8 ως 10.

Δημήτρης Γκίνης

Ααα, αυτό είχα στο μυαλό μου, ένα είδος repair του grub, αλλά δεν ήξερα πώς να το διατυπώσω!!!
Τα:

for d in proc sys dev dev/pts; do mount --bind /$d /mnt/$d; done
chroot /mnt dpkg-reconfigure grub-pc
for d in dev/pts dev sys proc; do umount /mnt/$d; done


πρέπει να τα τρέξω από επόπτη όπως γράφεις σε αυτό το θέμα και όχι με άνοιγμα τερματικού;

alkisg

Με άνοιγμα τερματικού και αφού πρώτα έχεις κάνει mount το target partition στο /mnt και cd /mnt.

Δημήτρης Γκίνης

#5
Άρα συνοψίζοντας,
μετά  την εφαρμογή του image στο ext4 partition που είτε προϋπάρχει από προηγούμενη εγκατάσταση ubuntu,είτε "κόβεις" από το partition των windows αν υπάρχουν και είναι το μοναδικό λειτουργικό, είτε δεν υπάρχει κανένα λειτουργικό και άρα όλος ο δίσκος έχει ένα partition,
μπουτάρεις στο ubuntu (προφανώς ο grub σε αυτή τη φάση δεν θα βλέπει τα windows αν αυτά υπάρχουν σε άλλο partition),
ανοίγεις τερματικό, και δίνεις
mount /dev/sdax /mnt
cd /mnt
for d in proc sys dev dev/pts; do mount --bind /$d /mnt/$d; done
chroot /mnt dpkg-reconfigure grub-pc
for d in dev/pts dev sys proc; do umount /mnt/$d; done
cd /
umount /mnt
reboot


Σωστά;

alkisg

"μπουτάρεις στο ubuntu" => στο liveusb, ο δίσκος σε εκείνη τη φάση είτε μπουτάρει μόνο windows, αν δεν είχε ubuntu, είτε βγάζει "grub rescue>" αν είχε ubuntu,
και
"umount /mnt"
θέλει πρώτα μια "cd /" γιατί αν είσαι μέσα στο /mnt δεν κάνει unmount.

Δημήτρης Γκίνης


Δημήτρης Γκίνης

#8
Σε δοκιμαστική εφαρμογή:
Σε μηχάνημα που έχει μόνο widnows στα sda2, δημιουργώ νέο partition πχ sda3 και εφαρμόζω το image που έχω έτοιμο.
Κατά το
chroot /mnt dpkg-reconfigure grub-pc
σε ποιο partition λέω του grub να κάτσει;
Eπέλεξα για τον grub να μπει στο sda. Το αποτέλεσμα δεν με δικαίωσε, στην επανεκκίνηση δεν εμφανίστηκε καθόλου το μενού του grub και μπήκε κατευθείαν στα win7.
Έπρεπε να επιλέξω το sda3 του ubuntu μάλλον, έτσι;
Πώς μπορώ να το διορθώσω, απλά ξανακάνω τη διαδικασία επιλέγοντας αυτή τη φορά το sda3 του ubuntu για τον grub;

alkisg

Ξαναδώσε dpkg-reconfigure grub-pc και επίλεξε το /dev/sda.
Ο grub κάτω από BIOS εγκαθίσταται στο MBR, όχι σε partition.

Οι επιλογές partitions /dev/sdaX είναι για πολύ εξειδικευμένες περιπτώσεις, δεν μας αφορούν.

Δημήτρης Γκίνης

That's it.
Για αυτό ακριβώς το λόγο ήθελα την πρώτη εφαρμογή να την κάνω σε ελεγχόμενο περιβάλλον ("..παίζω και μαθαίνω..")
Thanks boss  ;)