Μεταφορά εγκατάστασης ubuntu ltsp

Ξεκίνησε από poursali, 29 Σεπ 2010, 10:42:12 ΠΜ

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

poursali

έχω εγκαταστήσει και παραμετροποιήσει (πλήρως νομίζω) μια εγκατάσταση ubuntu 10.04 στον φορητό μου υπολογιστή και θέλω να την μεταφέρω με τον λιγότερο δυνατό κόπο στον εξυπηρετητή του εργαστηρίου.

τα βήματα που έχω υπόψη μου:

  • διαμόρφωση 3 διαμερισμάτων στον server: swap, / και /home
  • αντιγραφή αρχείων από τον φορητό μου εξαιρώντας τους καταλόγους /mnt, /media, /tmp
  • επαναφορά αυτών των αρχείων στα νέα διαμερίσματα του εξυπηρετητή

αυτά που με απασχολούν ακόμα:

  • πρέπει να εξαιρέσω κάποια ακόμα αρχεία από το backup εκτός από αυτά που αναφέρω στο βήμα 2 παραπάνω;
  • τι θα γίνει με τον grub? πώς θα ενημερωθεί σωστά ώστε να έχω dual-boot στον server του εργαστηρίου;
μετρον αριστον
είμαι τζαμπατζής, χρησιμοποιώ λίνουξ

alkisg

Ο ευκολότερος τρόπος είναι να μπουτάρεις με ένα live cd, π.χ. το http://www.sysresccd.org, και να κάνεις clone όλο το δίσκο. Έτσι δεν ασχολείσαι ούτε με grub ούτε με τίποτα.
Νομίζω ότι υποστηρίζει και αποστολή/λήψη μέσω δικτύου, αν και το ευκολότερο θα ήταν να συνδέσεις το δίσκο του server σε μια εξωτερική θήκη στο laptop σου.


Αν για κάποιο λόγο προτιμάς την τακτική που ανέφερες, αυτή είναι για πιο προχωρημένους χρήστες και περιγράφεται στα:
https://help.ubuntu.com/community/BackupYourSystem/TAR (γίνεται και μέσω δικτύου χωρίς ενδιάμεσο αρχείο)
https://wiki.ubuntu.com/Grub2#Recover%20Grub%202%20via%20LiveCD

Επίσης σ' αυτήν τη χειρωνακτική μέθοδο θα χρειαστεί να αλλάξεις το UUID των νέων partitions που έκανες ώστε να είναι ίδια με τα παλιά και να μην ασχοληθείς με ενημέρωση fstab, grub.cfg κτλ - η εντολή γι' αυτό είναι η tune2fs -U.

Να προτιμάς να δουλεύεις με live cd και όχι μπουτάροντας με το εγκατεστημένο σου Ubuntu. Έτσι δεν χρειάζεται να ασχοληθείς καθόλου για το ποιους φακέλους κρατάς και ποιους όχι (π.χ. /dev, /proc, /sys...), τους κρατάς όλους.

poursali

σε ευχαριστώ Άλκη για την απάντηση.
μια απορία.

Παράθεση από: alkisg στις 29 Σεπ 2010, 12:16:13 ΜΜ
Ο ευκολότερος τρόπος είναι να μπουτάρεις με ένα live cd, π.χ. το http://www.sysresccd.org, και να κάνεις clone όλο το δίσκο. Έτσι δεν ασχολείσαι ούτε με grub ούτε με τίποτα.

εφόσον έτσι θα μεταφερθούν τα αρχεία ως έχουν πως είναι δυνατόν να μην χρειάζεται ρύθμιση του grub?
μετρον αριστον
είμαι τζαμπατζής, χρησιμοποιώ λίνουξ

alkisg

Λιγουλάκι θεωρία σχετικά με τα partitions και τον grub:

Ένα μικρό κομμάτι του grub μπαίνει στον πρώτο τομέα του δίσκου που ονομάζεται MBR (Master Boot Record), και το μεγαλύτερο κομμάτι του μπαίνει στο φάκελο /boot του Linux partition. Έτσι αν αντιγράψουμε επακριβώς όλα τα partitions ενός δίσκου αλλά όχι τον MBR, το BIOS θα βγάλει "No operating system". Γι' αυτό και δεν επαρκεί η απλή αντιγραφή αρχείων που λέγαμε παραπάνω αλλά χρειάζεται και η διαδικασία "recover grub via live cd".

Τα εργαλεία όμως του system rescue cd φροντίζουν να αντιγράψουν και το κομμάτι που υπάρχει στον MBR, και έτσι ο grub μπορεί να ξεκινήσει.

Θα ψάξει λοιπόν να βρει το partition που είναι ο υπόλοιπος κώδικάς του, ώστε να μπορέσει να βγάλει το μενού επιλογών λειτουργικού. Τα partition αναγνωρίζονται από έναν αριθμό που ονομάζεται UUID, και τους ανατίθεται κατά τη δημιουργία τους.

Αν εμείς δημιουργούσαμε χειρωνακτικά τα partitions, τα UUID θα ήταν διαφορετικά, ο grub δεν θα μπορούσε να βρει τον κώδικά του και θα έλεγε "error 17: file not found".

Τα εργαλεία όμως του system rescue cd, όταν κάνουμε disk to disk copy, φροντίζουν να αναθέσουν το ίδιο UUID στα partitions, και έτσι ο grub μπορεί να βρει τον υπόλοιπο κώδικά του και να μπουτάρει κανονικά.

Σύνοψη:
* Χειρωνακτικά: πρέπει εμείς να διορθώσουμε MBR και UUID.
* Με εργαλεία τύπου system rescue cd: γίνονται αυτόματα.

poursali

ευχαριστώ Άλκη για τις απαντήσεις και τις κατευθύνσεις σου.
τελικά υπάρχουν ακόμα κάποιες εκκρεμότητες που θέλω να λύσω πριν μεταφέρω την εγκατάσταση.
θα ενημερώσω εδώ πέρα για τα αποτελέσματα :-)
μετρον αριστον
είμαι τζαμπατζής, χρησιμοποιώ λίνουξ

gidarakos

Όταν μεταφέρουμε την εγκατάσταση σε διαφορετικό σχολικό lan (διαφορετικό network id) τι πρέπει να αλλάξουμε;

Δοκίμασα στα γρήγορα αλλαγή στο καινούργιο IP στο dnsmasq από τα sch-scripts και είδα ότι "έπαιξε"..
# Στο παρακάτω εύρος διευθύνσεων (dhcp-range) το dnsmasq θα δουλεύει ως
# proxy DHCP server, δηλαδή θα παρέχει τις απαραίτητες πληροφορίες για
# την εκκίνηση (boot filename, tftp-server) αλλά όχι διευθύνσεις IP.
# Οποιαδήποτε διεύθυνση εντός του subnet μπορεί να χρησιμοποιηθεί.
# Βάλτε τη διεύθυνση του LTSP server απλά για ευκολία.
dhcp-range=10.84.75.187,proxy


Χρειάζονται άλλες αλλαγές;

Υ.Γ. Ο server παίρνει δυναμικό IP με network-manager

alkisg

Δεν χρειάζονται άλλες αλλαγές.

Μάλιστα όσοι πάνε σε 2-3 σχολεία και μεταφέρουν το server μαζί τους (είτε εξωτερικός USB δίσκος είτε laptop), μπορούν να έχουν μόνιμα τις αντίστοιχες γραμμές "dhcp-range" στο αρχείο ρυθμίσεων του dnsmasq ώστε να μη χρειάζεται καμία αλλαγή από σχολείο σε σχολείο.

gidarakos

Εννοείς ότι μπορούμε να βάλουμε πολλές εγγραφές τύπου proxy (dhcp-range=... ,proxy) ;


gidarakos

Μετά από αναβάθμιση σε sch-scripts 10.04.55 παρατήρησα το εξής:

Το dnsmasq έχει ρυθμίσεις για τον proxy τις ακόλουθες:
# Στο παρακάτω εύρος διευθύνσεων (dhcp-range) το dnsmasq θα δουλεύει ως
# proxy DHCP server, δηλαδή θα παρέχει τις απαραίτητες πληροφορίες για
# την εκκίνηση (boot filename, tftp-server) αλλά όχι διευθύνσεις IP.
# Οποιαδήποτε διεύθυνση εντός του subnet μπορεί να χρησιμοποιηθεί.
# Βάλτε τη διεύθυνση του LTSP server απλά για ευκολία.
dhcp-range=10.84.75.10,proxy
dhcp-range=192.168.1.11,proxy

Όταν ο server "παίρνει" ip (10.84.75.162) από DHCP του router συνεχίζει και "παίζει" σωστά με τους thin παρόλο που αυτή η ip δεν είναι δηλωμένη στο dnsmasq.

Υπάρχει θέμα;

alkisg

Στην εντολή dhcp-range=server-ip,proxy, η server-ip μπορεί να είναι οποιαδήποτε εντός του subnet. Δεν χρειάζεται να είναι αυτή που πραγματικά έχει ο LTSP server. Αυτό είναι θέμα του dnsmasq, τον βόλεψε καλύτερα τον developer να το υλοποιήσει έτσι.

Επομένως για να μη μπλέκεσαι μπορείς π.χ. να βάζεις την IP του gateway εκεί, αν και όποια και να βάλεις στο 10.84.75.x, κάνει.

aspd

Πρόκειται να αποκτήσουμε ένα καλύτερο server για το ubuntu 12.04 LTSP εργαστήριο.
O server που ήδη έχουμε δουλεύει καλά και χρησιμοποιείται, αλλά επειδή έχουμε κυρίως thin clients καλά είναι να αντικατασταθεί με κάτι καλύτερο.

Ποιος είναι ο καλύτερος τρόπος για να στήσω το νέο server;
1. Το πολύ ωραίο clonezilla δουλεύει για partitions μη όμοιων μηχανημάτων; Αν ναι είναι η πιο εύκολη λύση.
2. Κάνω εγκατάσταση από την αρχή τα ubuntu 12.04 στο νέο μηχάνημα, εγκαθιστώ τα sch scripts και αντιγράφω το αρχείο του εικονικού δίσκου  από τον παλιό server; Χρειάζεται όμως πάλι να εγκαταστήσω  στο server τα προγράμματα, το squid, να κάνω τις ρυθμίσεις δικτύου κτλ κτλ
3. Τα εγκαθιστώ όλα από την αρχή
4. ;




alkisg

Το καλό με το Linux είναι το ότι δεν έχει πρόβλημα με τις αλλαγές του υλικού. Το μόνο που χρειάζεται, είναι την τελευταία φορά που τρέχει ο παλιός server και πριν μετακινηθεί ο δίσκος, να δοθεί η εντολή sudo rm /etc/udev/rules.d/70-persistent-net.rules, ώστε να διαγραφεί το όνομα eth0 της παλιάς κάρτας δικτύου και να μην ονομαστεί η νέα κάρτα eth1 αλλά να της δοθεί κι αυτής το όνομα eth0.

Άρα μπορείς να βάλεις τον παλιό δίσκο στον νέο server και να συνεχίσεις τα μαθήματά σου.
Τον παλιό server βάλ' τον να μπουτάρει από το δίκτυο ως LTSP client.
Και το καλοκαίρι που θα βγει η 16.04 να κάνεις την εγκατάστασή της στον νέο δίσκο (και παράλληλα κρατάς και την παλιά εγκατάσταση για λίγο καιρό, μήπως χρειαστεί κάπου).

Κατά τα άλλα, και το clonezilla κάνει, και το gparted κάνει, και το dd κάνει - το τελευταίο εφόσον ο δίσκος-προορισμός είναι μεγαλύτερος ή ίσος από τον δίσκο-πηγή.

aspd

Νομίζω ότι δεν πρέπει να εναλλάξω τους δίσκους, γιατί λογικά θα έχω πρόβλημα με την εγγύηση του νέου μηχανήματος.
Επίσης στον παλιό server θα ...  βάλουμε windows και θα πάει στη γραμματεία!!!!

Αν γίνεται με clonezilla να αντιγράψω το partition και ας είναι διαφορετικά τα μηχανήματα, τότε θα κάνω αυτό. Στο εργαστήριο με τα fat clients είχα εγκαταστήσει σε έναν client ubuntu 12.04 και μετά με clonezilla το πέρασα εύκολα σε άλλους 8.


alkisg

Δεν έχω ακούσει εταιρία που να ακυρώνει εγγυήσεις για αντιμετάθεση δίσκων τα τελευταία 15 χρόνια.
Αλλά αφού το αισθάνεσαι καλύτερα, αντέγραψέ το με το clonezilla. :)

aspd

Με το clonezilla είναι όλα πανέτοιμα!
Ξεκίνησα περίπου 10.30.
Έφτιαξα image όλου του δίσκου (είχε 2 partitions με εγκαταστάσεις ubuntu 12.04 που δούλευαν και οι δύο, home και swap) και έκανα restore το image στο νέο μηχάνημα χωρίς πρόβλημα.
Περίπου 12 ήταν όλα έτοιμα.

Αν εμφάνιζε πρόβλημα είχα μαζί μου και κατσαβίδι για να αλλάξω τους δίσκους  :).

Ευχαριστώ!

aspd

Έχω τις εξής θεωρητικές απορίες για μελλοντικές αντιγραφές (δεν έχω σκοπό να δοκιμάσω κάτι άμεσα).
1. Έστω είχα πάρει  χωριστά images με το clonezilla για το partition με την εγκατάσταση του ubuntu (primary sda1) και το home (λογικό sda6) και τα είχα κάνει restore στα ανάλογα partitions στο νέο μηχάνημα. Για να δουλέψει το νέο μηχάνημα θα έπρεπε να μπω με live cd και να στήσω το grab;

2. Θα μπορούσα  π.χ. να έχω image του sda1 και να το ρίξω στο sda2 στο νέο μηχάνημα;

apapakL

#17
Ένας οδηγός μεταφοράς - κλωνοποίησης όπου γίνεται χρήση του rsync αντί για clonezilla. Με αυτή τη μέθοδο τα νέα partitions μπορούν να γίνουν όσο μεγάλα ή μικρά θέλουμε χωρίς να χρειάζεται να είναι ίσα ή μεγαλύτερα από τα partitions προέλευσης... Περιγράφεται και η διαδικασία επανεγκατάστασης grub boot loader που μάλλον ενδιαφέρει περισσότερο και την aspd σχετικά με το 2ο ερώτημα:

Για την μεταφορά ενός Linux συστήματος σε νέο δίσκο μπορούμε να ακολουθήσουμε την παρακάτω διαδικασία. Για την περιγραφή της διαδικασίας χρησιμοποιείται η διανομή Ubuntu Linux. Ωστόσο με παρόμοιο τρόπο εκτελείται και για οποιοδήποτε άλλη διανομή:

1. Τοποθετούμε και τους δυο δίσκους -τον παλαιό και τον νέο- σε ένα Η/Υ και κάνουμε boot με ένα Ubuntu live CD.
2. Ξεκινάμε το gparted και δημιουργούμε τα επιθυμητά partitions στο νέο δίσκο. Εννοείται ότι μπορούμε να διατηρήσουμε, αναδιοργανώσουμε τα υπάρχοντα (πχ μια υπάρχουσα εγκατάσταση windows ή Linux) ή και να τα σβήσουμε αν δεν τα θέλουμε. Για τις ανάγκες του οδηγού, παίρνουμε την περίπτωση της δημιουργίας ενός μεγάλου partition ως ext4 και ενός μικρότερου ως linux swap (μέγεθος linux swap = 2 x RAM server).

3. Στη συνέχεια σε ένα τερματικό (ctrl+alt+t) δίνουμε μια μια τις εντολές:

sudo -i
blkid


η εντολή blkid θα μας πεί τις συσκευές που υπάρχουν στο σύστημα μαζί με τα UUID τους.
Έστω λοιπόν ότι το partition του παλαιού δίσκου με τα αρχεία του linux είναι το /dev/sda1,  το partition του νέου δίσκου όπου θα αντιγραφούν τα αρχεία του linux το /dev/sdb1 και το partition του linux swap του νέου δίσκου το /dev/sdb2.

4. Στη συνέχεια δίνουμε μια μια τις εντολές

mkdir /media/sdpalaios
mount /dev/sda1 /media/sdpalaios
mkdir /media/sdneos
mount /dev/sdb1 /media/sdneos
rsync -av --numeric-ids /media/sdpalaios/ /media/sdneos/


5. Όταν τελειώσει το rsync τρέχω πάλι το blkid για να δω το UUID των δίσκων
blkid


Ανοίγω το fstab για να το ενημερώσω ώστε στο / να περιέχει το uuid του /dev/sdb1 και στο swap να περιέχει το uuid του /dev/sdb2

gedit /media/sdneos/etc/fstab


αποθηκεύω και κλείνω το gedit

6. Στη συνέχεια δίνω τις παρακάτω εντολές μια μια

umount /media/sdpalaios
umount /media/sdneos
exit


7. Κάνω shutdown, βγάζω τον παλαιό δίσκο και τον βάζω στην άκρη, ξαναbootαρω με live cd, και κάνω επανεγκατάσταση τον grub boot loader:

Ανοίγω τερματικό και δίνω
sudo blkid


η παραπάνω εντολή θα μας πει τις συσκευές που υπάρχουν στο σύστημα μαζί με τα UUID τους. Έστω λοιπόν ότι το partition του δίσκου με τα αρχεία του linux είναι το /dev/sda1

δίνω τις παρακάτω εντολές μια μια
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sda
grub-install --recheck /dev/sda
update-grub
exit
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt


8. Κάνουμε reboot, βγάζουμε το live cd και είμαστε έτοιμοι!

Στην περίπτωση που χρειαζόμαστε και ξεχωριστό home partition τότε τροποποιούμε το βήμα 4 ως εξής

mkdir /media/sdpalaios
mount /dev/sda1 /media/sdpalaios
mkdir /media/sdneos
mount /dev/sdb1 /media/sdneos
rsync -av --numeric-ids /media/sdpalaios/ /media/sdneos/

mkdir /media/sdpalaiohome
mount /dev/sdaX /media/sdpalaiohome
mkdir /media/sdneohome
mount /dev/sdbX /media/sdneohome
rsync -av --numeric-ids /media/sdpalaiohome/ /media/sdneohome/


όπου sdaX και sdbX τα στοιχεία για το home που θα μας δώσει η blkid..

Τέλος προσέχω να προσθέσω και το σχετικό UUID για το home partition και στο fstab (βήμα 5).

aspd

Ευχαριστώ για την απάντηση. Είναι καλό να έχουμε κατά νου αυτές τις διαδικασίες γιατί μας γλυτώνουν από πολύ χρόνο και κόπο!
Σκεφτόμουνα με ανακούφιση τι διαδικασία θα χρειαζόταν για να αλλάξει ένας windows server και  με πόσο λίγο κόπο άλλαξα τον LTSP server σήμερα!