Δημοσιεύτηκε: 12 Νοέμ 2013, 08:06
από eliasps
Σε αυτόν τον οδηγό είδαμε πως να εγκαταστήσουμε το Ubuntu με χειροκίνητη διαμόρφωση των κατατμήσεων, ώστε να τοποθετήσουμε τον ριζικό κατάλογο / και τον κατάλογο /home σε διαφορετικές κατατμήσεις. Με αυτόν τον τρόπο μπορούμε να διατηρήσουμε τα προσωπικά μας αρχεία και τις ρυθμίσεις των εφαρμογών μας στην περίπτωση που χρειαστεί να κάνουμε νέα εγκατάσταση, είτε επειδή δημιουργήθηκε κάποιο πρόβλημα που είναι χρονοβόρο ή αδύνατον να επιλυθεί, είτε γιατί προτιμάμε την νέα εγκατάσταση από την αναβάθμιση για να είμαστε σίγουροι πως όλα είναι εντάξει στο σύστημα.

Σε αυτή την περίπτωση λοιπόν, επιλέγουμε για την νέα εγκατάσταση να γίνει format στην κατάτμηση με τον παλιό ριζικό κατάλογο / και προσάρτησή του εκ νέου. Επίσης γίνεται προσάρτηση του /home στην κατάτμηση με το παλιό /home, χωρίς όμως να επιλέξουμε format, διατηρώντας έτσι τα προσωπικά μας αρχεία ανέπαφα.

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

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

Μην εφαρμόσετε αυτή την διαδικασία αν πρώτα δεν διαβάσετε προσεκτικά ολόκληρο τον οδηγό, ειδικά την ενότητα «Έλεγχος για ειδικές περιπτώσεις».


Τα βήματα που θα ακολουθήσουμε καθώς και οι λεπτομέρειες στις οποίες θα πρέπει να δώσουμε ιδιαίτερη προσοχή, αναγράφονται παρακάτω.

  1. Στο "παλιό" Ubuntu
  2. Έλεγχος για ειδικές περιπτώσεις
  3. Στο νέο Ubuntu
  4. Σύνοψη διαδικασίας




Στο "παλιό" Ubuntu:
Βρισκόμαστε στο σύστημα που πρόκειται να αντικαταστήσουμε κάνοντας νέα εγκατάσταση. Πριν κάνουμε την νέα εγκατάσταση θα πρέπει να ακολουθήσουμε κάποια βήματα προκειμένου να πάρουμε όλες τις απαραίτητες πληροφορίες που θα χρησιμοποιήσουμε στο Ubuntu που σκοπεύουμε να εγκαταστήσουμε αργότερα.

  • Αρχικά, δημιουργούμε στον προσωπικό φάκελο "Home" έναν φάκελο όπου θα τοποθετήσουμε τις πληροφορίες που θα συλλέξουμε. Στο τερματικό εκτελούμε:
    Κώδικας: Επιλογή όλων
    mkdir System_Backup
  • Συνεχίζουμε δημιουργώντας ένα αρχείο που θα περιέχει τη λίστα με τα εγκατεστημένα πακέτα που έχουμε στο Ubuntu:
    Κώδικας: Επιλογή όλων
    dpkg --get-selections | grep -v deinstall > ~/System_Backup/installed_packages.txt
  • Aντγράφουμε το αρχείο με τις πηγές λογισμικού καθώς και αυτά που περιέχουν τα αποθετήρια που έχουμε προσθέσει. Tα αρχεία αυτά είναι το /etc/apt/sources.list και ότι βρίσκεται μέσα στον κατάλογο /etc/apt/sources.list.d/:
    Κώδικας: Επιλογή όλων
    find /etc/apt/ -name '*.list' -ls -exec cat {} \; > ~/System_Backup/repositories.txt
  • Aντιγράφουμε τα κλειδιά των αποθετηρίων:
    Κώδικας: Επιλογή όλων
    sudo apt-key exportall > ~/System_Backup/repositories.keys
Όσοι ΔΕΝ έχετε τον ριζικό κατάλογο / και τον κατάλογο /home σε διαφορετικές κατατμήσεις, αφού εκτελέσετε όλα τα παραπάνω, θα χρειαστεί να πάρετε backup των προσωπικών σας αρχείων και ρυθμίσεων υπό το /home/$USER. Aυτό μπορεί να γίνει με την εντολή:
Κώδικας: Επιλογή όλων
rsync -avh --progress /home/$USER /διαδρομή/για/το/backup/

Όπου το "/διαδρομή/για/το/backup/" αντιστοιχεί στη διαδρομή του εξωτερικού μέσου (π.χ. σκληρού δίσκου) που θα αποθηκεύσετε τα αρχεία σας.
Αν υπάρχει μεγάλος όγκος δεδομένων τότε η διαδικασία θα αργήσει να ολοκληρωθεί. Αφού ολοκληρωθεί πρέπει να ελέγξετε αν η αντιγραφή έγινε σωστά στο εξωτερικό μέσο αποθήκευσης που χρησιμοποιήσατε.

Αντί του παραπάνω, το Backup μπορείτε να το κάνετε χειροκίνητα και να επιλέξετε ποια αρχεία θέλετε να σώσετε.
Αν θέλετε να κρατήσετε και τις ρυθμίσεις των εφαρμογών, θα πρέπει να σώσετε τα κρυφά αρχεία και τους κρυφούς φακέλους που υπάρχουν στον προσωπικό φάκελο.
Για να τα δείτε αυτά θα πρέπει να πατήσετε Ctrl + H στον Nautilus, ώστε να εμφανιστούν και να τα αντιγράψετε.

Συνοψίζοντας:
Κώδικας: Επιλογή όλων
mkdir System_Backup
dpkg --get-selections | grep -v deinstall > ~/System_Backup/installed_packages.txt
find /etc/apt/ -name '*.list' -ls -exec cat {} \; > ~/System_Backup/repositories.txt
sudo apt-key exportall > ~/System_Backup/repositories.keys


Έχοντας συλλέξει όλα τα παραπάνω, είμαστε έτοιμοι να προχωρήσουμε στην νέα εγκατάσταση.



Έλεγχος για ειδικές περιπτώσεις:

Πρέπει δοθεί ιδιαίτερη προσοχή εάν ισχύει κάποια από τις παρακάτω περιπτώσεις. Αν ναι, τότε θα πρέπει να ακολουθήσουμε τα βήματα που αναγράφονται εδώ προτού ξεκινήσουμε τη διαδικασία «Στο νέο Ubuntu».


  • Έχουμε στο παλιό Ubuntu κλειστούς οδηγούς υλικού:
    Αν ισχύει κάτι τέτοιο, τότε τα πακέτα των κλειστών οδηγών βρίσκονται στην λίστα των εγκατεστημένων πακέτων που δημιουργήθηκε από την διαδικασία που ακολουθήσαμε «Στο "παλιό" Ubuntu». Αυτή η λίστα είναι το περιεχόμενο του αρχείου installed_packages.txt.
    Σε αυτή την περίπτωση θα πρέπει να αφαιρέσουμε από τη λίστα τις γραμμές που αναφέρονται στα πακέτα των κλειστών οδηγών και να αποθηκεύσουμε τις αλλαγές στο αρχείο. Αφού το κάνουμε τότε μπορούμε να ξεκινήσουμε τη διαδικασία «Στο νέο Ubuntu»
    Τους κλειστούς οδηγούς του εγκαθιστούμε χειροκίνητα και αυτόνομα, χωρίς ομαδοποίηση με άλλα πακέτα.
  • Το σύστημα που είχαμε και το σύστημα που εγκαταστήσαμε είναι Ubuntu διαφορετικών εκδόσεων:
    Kαι εδώ χρειάζεται προσοχή, διότι αν ισχύει κάτι τέτοιο, το αρχείο με τις πηγές λογισμικού που περάσαμε στο νέο σύστημα περιέχει πηγές για άλλη έκδοση, οπότε θα πρέπει να χρησιμοποιήσουμε τις σωστές προτού ξεκινήσουμε τη διαδικασία «Στο νέο Ubuntu».
    Οι πηγές λογισμικού βρίσκονται στο αρχείο repositories.txt.
    Οι σύνδεσμοι για τις πηγές λογισμικού του Ubuntu διακρίνονται με την κωδική ονομασία της έκδοσης. Οπότε θα αλλάξουμε από τους συνδέσμους την ονομασία της παλιάς έκδοσης και θα την αντικαταστήσουμε με αυτήν της νέας. Αυτό γίνεται με την εντολή:
    Κώδικας: Επιλογή όλων
    sed -i 's/ΟΝΟΜΑΣΙΑ ΠΑΛΙΑΣ ΕΚΔΟΣΗΣ/ΟΝΟΜΑΣΙΑ ΝΕΑΣ ΕΚΔΟΣΗΣ/g' ~/System_Backup/repositories.txt

    Για παράδειγμα αν το παλιό μας σύστημα ήταν το Ubuntu 13.10 Saucy Salamander και το νέο σύστημα είναι το 14.04 Trusty Tahr, θα πρέπει να εκτελέσουμε την εντολή:
    Κώδικας: Επιλογή όλων
    sed -i 's/saucy/trusty/g' ~/System_Backup/repositories.txt

    Έτσι, το αρχείο θα περιέχει τις πηγές για την 14.04.

    Δεν τελειώσαμε εδώ όμως. Θα πρέπει να ελέγξουμε αν οι πηγές τρίτων που υπάρχουν στο αρχείο, έχουν αναβαθμιστεί για να ισχύουν για την νέα έκδοση.
    Αυτές οι πηγές βρίσκονται τελευταίες στο αρχείο repositories.txt.
    Αν κάποια από αυτές δεν έχει αναβαθμιστεί ακόμα για την έκδοση που χρησιμοποιούμε, τότε την σβήνουμε από το αρχείο.
  • Το σύστημα που είχαμε και το σύστημα που εγκαταστήσαμε είναι διαφορετικά παράγωγα του Ubuntu:
    Δηλαδή αν το σύστημα που είχαμε ήταν π.χ Ubuntu και το σύστημα που εγκαταστήσαμε είναι π.χ. Kubuntu. Αυτή η περίπτωση είναι πιο περίπλοκη από τις παραπάνω.
    Κάθε παράγωγο του Ubuntu έχει πακέτα που υπάρχουν μόνο σε αυτό και όχι στα υπόλοιπα και αυτά τα πακέτα από το παλιό σύστημα υπάρχουν στην λίστα προς εγκατάσταση στο νέο σύστημα.
    Όπως και στην πρώτη περίπτωση, αν ισχύει κάτι τέτοιο θα πρέπει να βρούμε στη λίστα του αρχείου installed_packages.txt τα πακέτα που είναι συγκεκριμένα για το παράγωγο του παλιού μας συστήματος και να τα αφαιρέσουμε από τη λίστα προτού ξεκινήσουμε τη διαδικασία «Στο νέο Ubuntu».

Βέβαια, δεν είναι απαραίτητο να ισχύει μόνο ένα από τα παραπάνω, αλλά δύο ή ακόμη και τα τρία. Τότε ακολουθούμε τις οδηγίες για κάθε περίπτωση.



Στο νέο Ubuntu:
Έχουμε κάνει την νέα εγκατάσταση του Ubuntu και είμαστε έτοιμοι να εγκαταστήσουμε τα πακέτα που είχαμε στο παλιό σύστημα. Αφού έχουμε ελέγξει αν ισχύει κάποια/κάποιες από τις παραπάνω περιπτώσεις και έχουμε ακολουθήσει τα αντίστοιχα βήματα για κάθε μία, συνεχίζουμε με τα βήματα παρακάτω:

  • Πρώτα θα πρέπει να τροποποιήσουμε κατάλληλα το περιεχόμενο του αρχείου repositories.txt διότι θα το χρησιμοποιήσουμε ως αρχείο πηγών λογισμικού και περιέχει γραμμές που δεν πρέπει να βρίσκονται μέσα.
    Κώδικας: Επιλογή όλων
    sed -i '/sources.list/d' ~/System_Backup/repositories.txt

    Όσοι ΔΕΝ είχατε τον ριζικό κατάλογο / και τον κατάλογο /home σε διαφορετικές κατατμήσεις, θα πρέπει πρώτα να τοποθετήσετε τον φάκελο System_Backup στο προσωπικό φάκελο.
  • Παίρνουμε backup του /etc/apt/sources.list:
    Κώδικας: Επιλογή όλων
    sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
  • Αντικαθιστούμε με το αρχείο repositories.txt:
    Κώδικας: Επιλογή όλων
    sudo mv ~/System_Backup/repositories.txt /etc/apt/sources.list

    Το παραπάνω αρχείο αντικατέστησε το αρχείο πηγών λογισμικού του νέου Ubuntu, ώστε να προστεθούν τα αποθετήρια που υπήρχαν στο παλιό.
  • Πραγματοποιούμε ενημέρωση των πηγών και αναβάθμιση των πακέτων:
    Κώδικας: Επιλογή όλων
    sudo apt-get update && sudo apt-get -y dist-upgrade
  • Κάνουμε επανεκκίνηση:
    Κώδικας: Επιλογή όλων
    sudo reboot
  • Eγκαθιστούμε το dselect:
    Κώδικας: Επιλογή όλων
    sudo apt-get install dselect
  • Στην συνέχεια δίνουμε στον διαχειριστή πακέτων την λίστα με τα πακέτα από την προηγούμενη εγκατάσταση:
    Κώδικας: Επιλογή όλων
    sudo dpkg --clear-selections
    sudo dpkg --set-selections < ~/System_Backup/installed_packages.txt
  • Aν πάρουμε σφάλματα του τύπου "dpkg: warning: package not in database at line Χ", τότε εκτελούμε:
    Κώδικας: Επιλογή όλων
    sudo dselect update
    sudo dpkg --set-selections < ~/System_Backup/installed_packages.txt
  • Kαι τέλος, εγκαθιστούμε τα πακέτα:
    Κώδικας: Επιλογή όλων
    sudo apt-get dselect-upgrade

    Eίναι σημαντικό να ελέγξουμε εδώ αν πρόκειται να αφαιρεθούν πακέτα και ποια είναι αυτά.
    Αν όλα είναι εντάξει, τότε προχωράμε με την εγκατάσταση (πατάμε Y) διαφορετικά δεν συνεχίζουμε (πατάμε N).
  • Για παν ενδεχόμενο, μόλις ολοκληρωθεί η εγκατάσταση, εκτελούμε:
    Κώδικας: Επιλογή όλων
    sudo apt-get install -f
    sudo dpkg --configure -a
Και το σύστημα είναι έτοιμο!

Αν πάρετε σφάλματα για αδυναμία εύρεσης και εγκατάστασης μερικών πακέτων, τότε πιθανότατα αυτά τα πακέτα να έχουν εγκατασταθεί με τη χρήση αρχείων .deb.
Σε αυτή την περίπτωση βλέπετε από το τερματικό ποια πακέτα είναι αυτά και τα αφαιρείτε από την λίστα στο installed_packages.txt, με την εντολή:
Κώδικας: Επιλογή όλων
sed -i '/όνομα_πακέτου/d' ~/System_Backup/installed_packages.txt

Θα πρέπει να κατεβάσετε ξανά τα αρχεία .deb αυτών των πακέτων για να τα εγκαταστήσετε.

Συνοψίζοντας:
Κώδικας: Επιλογή όλων
sed -i '/sources.list/d' ~/System_Backup/repositories.txt
sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
sudo mv ~/System_Backup/repositories.txt /etc/apt/sources.list
sudo apt-get update && sudo apt-get -y dist-upgrade
sudo reboot
sudo apt-get install dselect
sudo dselect update
sudo dpkg --clear-selections
sudo dpkg --set-selections < ~/System_Backup/installed_packages.txt
sudo apt-get dselect-upgrade
sudo apt-get install -f
sudo dpkg --configure -a




Σύνοψη διαδικασίας:
Όλα τα παραπάνω εξηγούν αναλυτικά τη διαδικασία που ακολουθούμε προκειμένου να εγκαταστήσουμε τα πακέτα από ένα σύστημα σε ένα άλλο μετά από νέα εγκατάσταση. Συνοπτικά, όλα τα παραπάνω είναι το αποτέλεσμα των παρακάτων εντολών.
  • Στο "παλιό" Ubuntu:
    Μορφοποιημένος Κώδικας: Επιλογή όλων
    mkdir System_Backup
    dpkg --get-selections | grep -v deinstall > ~/System_Backup/installed_packages.txt
    find /etc/apt/ -name '*.list' -ls -exec cat {} \; > ~/System_Backup/repositories.txt
    sudo apt-key exportall > ~/System_Backup/repositories.keys
    rsync -avh --progress /home/$USER /διαδρομή/για/το/backup/ #Backup για όσους δεν έχουν τα / και /home σε διαφορετικές κατατμήσεις.

  • Στο "νέο" Ubuntu:
    Μορφοποιημένος Κώδικας: Επιλογή όλων
    rsync -avh --progress /διαδρομή/για/το/backup/ /home/$USER #Επαναφορά Backup για όσους δεν είχαν τα / και /home σε διαφορετικές κατατμήσεις.
    sed -i 's/ΟΝΟΜΑΣΙΑ ΠΑΛΙΑΣ ΕΚΔΟΣΗΣ/ΟΝΟΜΑΣΙΑ ΝΕΑΣ ΕΚΔΟΣΗΣ/g' ~/System_Backup/repositories.txt #Aν το παλιό και το νέο σύστημα είναι Ubuntu διαφορετικών εκδόσεων.
    sed -i '/sources.list/d' ~/System_Backup/repositories.txt
    sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
    sudo mv ~/System_Backup/repositories.txt /etc/apt/sources.list
    sudo apt-get update
    sudo apt-key add ~/System_Backup/repositories.keys #Αν στο update αντιμετωπίσατε πρόβλημα με κλειδιά αποθετηρίων.
    sudo apt-get -y dist-upgrade
    sudo reboot
    sudo apt-get install dselect
    sudo dselect update
    sudo dpkg --clear-selections
    sudo dpkg --set-selections < ~/System_Backup/installed_packages.txt
    sudo apt-get dselect-upgrade
    sudo apt-get install -f
    sudo dpkg --configure -a

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