Respect \m/ Alexius Dionysius Diakogiannis IT Consultant / Core Banking Eng.
2011/2/9 Konstantinos Togias <[email protected]>: > Η μετακίνηση του ubuntu (ή οποιασδήποτε gnu/linux διανομής) σε νέο > δίσκο ή νέο/νές διαμέριση/διαμερίσεις μπορεί να γίνει και χωρίς εκ > νέου εγκατάσταση του λειτουργικού. Στο linux τα πάντα είναι αρχεία που > καθορίζονται μονοσήμαντα από το απόλυτο path τους που ξεκινά πάντα από > το ριζικό κατάλογο /. Αν χρησιμοποιούμε περισσότερες κατατμήσεις, τότε > αυτές προσαρτώνται σε κάποιο κατάλογο που βρίσκεται και αυτός κάτω από > το /. Έτσι μπορούμε να μεταφέρουμε όλη την εγκατάσταση με τα > εκτελέσιμα, τον πυρήνα, τους προσωπικούς καταλόγους των χρηστών από > ενα δίσκο σε ένα άλλο ή να τα αναδιατάξουμε σε διάφορα partitions > φροντίζοντας απλά να μην αλλάξουν λόγω της μεταφοράς τα απόλυτα paths > των διαφόρων αρχείων. > > Π.χ. Έστω ότι έχουμε μια εγκατάσταση ubuntu στον δίσκο a σε μια ενιαία > κατάτμηση (την 0). Αυτό σημαίνει ότι το / είναι η κατάτμηση sda1. Όλα > τα άλλα αρχεία βρίσκονται μέσα στο sda1. Ακόμα στο ubuntu χρειαζόμαστε > και μια κατάτμηση για swap. Έστω ότι αυτή είναι η sda2. Το σύστημά μας > για να λειτουργήσει πρέπει λοιπόν να ξέρει ότι το / είναι το sda1 και > το swap το sda2. > > Αυτό το μαθαίνει ο πυρήνας μας από το αρχείο /etc/fstab. Εκεί μέσα > αναφέρονται οι αντιστοιχίες. Παλιότερα οι αντιστοιχίες δηλώνονταν με > βάση το αρχείο συσκευής που φτιάχνει ο πυρήνας για κάθε δίσκο και > κατάτμηση. Στις πιο πρόσφατες εκδόσεις χρησιμοποιείται ως > αναγνωριστικό το UUID του συστήματος αρχείων της κατάτμησης, το οποίο > είναι ένα μοναδικό αλφαριθμητικό - ταυτότητα που προκύπτει από το ίδιο > το σύστημα αρχείων. Έτσι ακόμα και αν αλλάξει για κάποιο λόγο η > αρίθμηση των συσκευών, ο πυρήνας θα βρει τις σωστές κατατμήσεις που > πρέπει να προσαρτηθούν από το UUID τους. Για να μάθουμε το uuid μιας > κατάτμησης μπορούμε να χρησιμοποιήσουμε τις εντολές blkid και vol_id. > Περισσότερα για το UUID μπορείτε να δείτε στο > http://www.unixtutorial.org/2008/05/ubuntu-uuid-how-to/ . > > Πριν όμως από τον πυρήνα, υπάρχει και κάποιος άλλος που πρέπει να > ξέρει κάτι για την φυσική τοποθεσία των συστημάτων αρχείων μας. Αυτός > είναι ο εκκινητής συστήματος GRUB. Μια και τα αρχεία του ίδιου του > πυρήνα βρίσκονται μέσα σε μια κατάτμηση, ο GRUB πρέπει να ξέρει ποια > είναι αυτή προκειμένου να σηκώσει τον πυρήνα. Σε παλιότερες εκδόσεις > αυτό οριζόταν στο /boot/grub/menu.lst . Στις πιο πρόσφατες, ο grub > ανιχνεύει αυτόματα τις κατατμήσεις όπου κατοικούν πυρήνες λειτουργικών > συστημάτων και αυτορρυθμίζεται όταν τρέχουμε την εντολή update-grub. > > Έστω τώρα ότι θέλουμε να μεταφέρουμε την εγκατάσταση που περιγράψαμε > πιο πάνω σε ένα νέο δίσκο και να βαλουμε το / σε μια κατάτμηση και το > /home σε μια άλλη. Η διαδικασία που ακολουθούμε είναι η εξής: > > 1. Συνδέουμε το νέο δίσκο. > 2. Εκκινούμε στο υπάρχον σύστημα και διαμερίζουμε μέσα από αυτό το νέο > δίσκο σε 3 κατατμήσεις. Μια για το / μια το /home και μια για το swap. > Αυτό μπορεί να γίνει με fdsik ή gparted. > 3. Δημιουργούμε τα αντίστοιχα συστήματα αρχείων στις κατατμήσεις που > φτιάξαμε (π.χ. mkext3fs για / και /home και mkswap για την κατάτμηση > που θα χρησιμοποιηθεί ως swap. > 4. Κάνουμε mount την κατάτμηση που θα χρησιμοποιήσουμε ως / στο /mnt μας. > 5. Δημιουργούμε τους καταλόγους dev και proc μέσα στο /mnt. Δεν > χρειάζεται να αντιγράψουμε τα αρχεία των τρεχόντων /dev και /proc > στους νέους φακέλους, μια και αυτά δημιουργούνται αυτόματα από τον > πυρήνα. > 6. (Με δικαιώματα root) Αντιγράφουμε όλους τους άλλους καταλόγους του > τρέχοντος / στο /mnt εκτός από τον /home. Κατά την αντιγραφή > φροντίζουμε να διατηρούνται οι ιδιότητες ιδιοκτησίας και δικαιωμάτων > των αρχείων και να μεταφερθούν ως έχουν οι συμβολικοί σύνδεσμοι. Η > εντολή sudo cp -a /etc /mnt/ π.χ. θα κάνει τη δουλειά. > 7. (Με δικαιώματα root) Δημιουργούμε το φάκελο /mnt/home και κάνουμε > mount την κατάτμηση που προορίζουμε για /home στο /mnt/home. > 8. (Με δικαιώματα root) Αντιγράφουμε τα περιεχόμενα του /home στο > /mnt/home, με cp -a. > 9. Βρίσκουμε τα UUIDs των νέων κατατμήσεων με το vol_id. > 10. Επεξεργαζόμαστε το /mnt/etc/fstab και αλλάζουμε τα uuids ώστε να > αντιστοιχούν με αυτά των νέων κατατμήσεων. > 11. Κάνουμε mount --bind τα /dev και /proc στα /mnt/dev και /mnt/proc > 12. Κάνουμε chroot στο /mnt. Πλέον είναι σαν να έχουμε bootaρει από το > νέο δίσκο. > 13. Τρέχουμε το grub-install για να εγκαταστήσουμε το grub στο νέο > δίσκο (αν ο νέος δίσκος είναι αναγνωρισμένος ως /dev/sdb τρέχουμε > grub-install /dev/sdb. > 14. Τρέχουμε και ένα update-grub (δεν ξέρω αν είναι απαραίτητο). > 15. Πλέον, αν δεν μας έχει ξεφύγει κάτι έχουμε κάνει όλες τις > ρυθμίσεις για να λειτουργήσει το σύστημά μας από το νέο δίσκο. > Βγαίνουμε από το chroot και κάνουμε shut down τον υπολογιστή. Βγάζουμε > τον παλιό δίσκο ή ρυθμίζουμε το bios να bootάρει από το νέο, > σταυρώνουμε τα δάχτυλα και περιμένουμε. Αν όλα πήγαν καλά θα σηκωθεί > μια χαρά το γνώριμο ubuntu μας. > > Τα παραπάνω βήματα δεν είναι αναλυτικά και κάποιος πρέπει να διαβάσει > λίγα man για να τα ακολουθήσει (man mount, man fstab, man chroot, man > fdisk, man cp ...). Μπορεί ακόμα να έχω ξεχάσει κάτι. Πάνε αρκετοί > μήνες από τότε που έκανα τελευταία φορά τη διαδικασία. > > > Και τέλος, πριν δοκιμάσετε.... ΠΑΡΤΕ BACKUP ΟΤΙ ΘΑ ΣΑΣ ΛΕΙΨΕΙ ΑΝ ΤΟ > ΧΑΣΕΤΕ ΜΕ ΚΑΠΟΙΟ ΛΑΘΟΣ ΧΕΙΡΙΣΜΟ. (και έχετε και ένα cd εγκατάστασης > ubuntu πρόχειρο σε περίπτωση που τα κάνετε τόσο μαντάρα που δεν > παίρνει γιατριά). > > > > > --- > Konstantinos Togias > Dipl.-Math., M.Sc. > Hellenic Open University > and Research Academic Computer Technology Institute > > Ubuntu-gr LoCo team member > -- Ubuntu-gr mailing list [email protected] If you do not want to receive any more messages from the ubuntu-gr mailing list, please follow this link and choose unsubscribe: https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr

