ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

Νέα από τον πλανήτη…planet.ellak.gr: Δημιουργία του διαμερίσματος btrfs root & subvolumes στο openSUSE

by: Ευστάθιος Ιωσηφίδης

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

Μια από τις επιτακτικές απαιτήσεις είναι να παράσχει ένα σαφώς καθορισμένο «σύστημα αρχείων root» που περιέχει ότι μας νοιάζει για «πλήρη επαναφορά συστήματος» (διευκολύνεται από το snapper), ενώ χρησιμοποιεί υποτόμους (subvolumes) για να αποκλείσει όλα όσα δεν θέλουμε στο ‘σύστημα αρχείων root’, έτσι το snapper δεν καταστρέφει κατά λάθος τα δεδομένα χρήστη κατά την επαναφορά του συστήματος και των εφαρμογών του. Λεπτομέρειες σχετικά με την προεπιλεγμένη διάταξη υποτόμων (subvolumes) μπορούν να βρεθούν στο wiki του openSUSE.

Ωστόσο, αυτό οδηγεί σε επιπλοκές για ορισμένους προχωρημένους χρήστες που επιθυμούν να αναδημιουργήσουν αυτό το χέρι, όπως όταν κάνουν περίπλοκη ανάκτηση του συστήματος, προσαρμοσμένες αυτοματοποιημένες προβλέψεις ή άλλες παρεμβάσεις. (ΣΗΜΕΙΩΣΗ: για την πλήρη επαναφορά του συστήματος είναι συχνά καλύτερο να χρησιμοποιήσετε ένα εργαλείο όπως το ReaR).

Τα παρακάτω βήματα είναι τα βήματα για να δημιουργήσετε με μη αυτόματο τρόπο ένα διαμέρισμα btrfs όπως δημιουργείται με openSUSE που πιστεύεται ότι είναι σωστό αυτή τη στιγμή.

Αυτός ο οδηγός ισχύει για το openSUSE Tumbleweed, το openSUSE Leap 15.1. Ωστόσο, θα πρέπει να προσέξετε να κάνετε διπλό έλεγχο για νέους ή καταργημένους υποτόμους στις διανομές *SUSE καθώς υπάρχει ανάπτυξη.

Οι παλαιότερες εκδόσεις των διανομών SUSE θα πρέπει να προσαρμόσουν αυτές τις οδηγίες για να χειριστούν την παλιά διάταξη υποτόμου /var/* που χρησιμοποιήθηκε προηγουμένως.

Δεν πρέπει να ξεχνάμε ότι αυτός ο οδηγός θα πρέπει να ακολουθείται μόνο από ανθρώπους που πιστεύουν ότι γνωρίζουν τι κάνουν. Είναι συνήθως πολύ πιο εύκολο να χρησιμοποιήσετε τα προεπιλεγμένα εργαλεία του openSUSE όπως το YaST και το ReaR.


ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ

Για αυτό το παράδειγμα θα χρησιμοποιήσουμε το /dev/sda ως δείγμα του δίσκου μας και το /dev/sda1 ως το παράδειγμα του διαμερίσματός μας για ένα σύστημα αρχείων root btrfs.

1. Δημιουργήστε έναν πίνακα διαμερισμάτων και το διαμέρισμα που θα χρησιμοποιηθεί ως το σύστημα αρχείων root χρησιμοποιώντας το αγαπημένο σας εργαλείο (π.χ., yast, parted, fdisk).

2. Διαμορφώστε το /dev/sda1 με σύστημα αρχείων btrfs

mkfs.btrfs /dev/sda1

3. Προσαρτήστε το νέο διαμέρισμα κάπου έτσι ώστε να μπορέσουμε να το χρησιμοποιήσουμε. Θα χρησιμοποιήσουμε /mnt σε αυτό το παράδειγμα.

mount /dev/sda1 /mnt

4. Δημιουργήστε την προεπιλεγμένη διάταξη υποτόμου (αυτό προϋποθέτει αρχιτεκτονική Intel, οι διαδρομές /boot/grub2/* είναι διαφορετικές για διαφορετικές αρχιτεκτονικές)

btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@/.snapshots
mkdir /mnt/@/.snapshots/1
btrfs subvolume create /mnt/@/.snapshots/1/snapshot
mkdir -p /mnt/@/boot/grub2/
btrfs subvolume create /mnt/@/boot/grub2/i386-pc
btrfs subvolume create /mnt/@/boot/grub2/x86_64-efi
btrfs subvolume create /mnt/@/home
btrfs subvolume create /mnt/@/opt
btrfs subvoulme create /mnt/@/root
btrfs subvolume create /mnt/@/srv
btrfs subvolume create /mnt/@/tmp
mkdir /mnt/@/usr/
btrfs subvolume create /mnt/@/usr/local
btrfs subvolume create /mnt/@/var

5. Απενεργοποιήστε το copy-on-write για το var για να βελτιώσετε την απόδοση οποιωνδήποτε βάσεων δεδομένων και των VM εικόνων μέσα

chattr +C /mnt/@/var

6. Δημιουργήστε το αρχείο /mnt/@/.snapshots/1/info.xml για τη ρύθμιση του snapper. Συμπεριλάβετε το ακόλουθο περιεχόμενο, αντικαθιστώντας το $DATE με την τρέχουσα ημερομηνία/ώρα του συστήματος.

<?xml version="1.0"?>
<snapshot>
  <type>single</type>
  <num>1</num>
  <date>$DATE</date>
  <description>first root filesystem</description>
</snapshot>

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

btrfs subvolume set-default $(btrfs subvolume list /mnt | grep “@/.snapshots/1/snapshot” | grep -oP ‘(?<=ID )[0-9]+’) /mnt unmount /mnt mount /dev/sda1 /mnt


8. Θα πρέπει να είστε σε θέση να επιβεβαιώσετε τα παραπάνω που λειτούργησε με την εντολή ls /mnt που θα πρέπει να ανταποκριθεί με ένα κενό αποτέλεσμα.

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

9. Τώρα πρέπει να δημιουργήσετε ένα σκελετό του συστήματος αρχείων για να προσαρτήσετε όλους τους υποτόμους.

mkdir /mnt/.snapshots
mkdir -p /mnt/boot/grub2/i386-pc
mkdir -p /mnt/boot/grub2/x86_64-efi
mkdir /mnt/home
mkdir /mnt/opt
mkdir /mnt/root
mkdir /mnt/srv
mkdir /mnt/tmp
mkdir -p /mnt/usr/local
mkdir /mnt/var

10. Προσαρτήστε όλους τους υποτόμους.

mount /dev/sda1 /mnt/.snapshots -o subvol=@/.snapshots
mount /dev/sda1 /mnt/boot/grub2/i386-pc -o subvol=@/boot/grub2/i386-pc
mount /dev/sda1 /mnt/boot/grub2/x86_64-efi -o subvol=@/boot/grub2/x86_64-efi
mount /dev/sda1 /mnt/home -o subvol=@/home
mount /dev/sda1 /mnt/opt -o subvol=@/opt
mount /dev/sda1 /mnt/root -o subvol=@/root
mount /dev/sda1 /mnt/srv -o subvol=@/srv
mount /dev/sda1 /mnt/tmp -o subvol=@/tmp
mount /dev/sda1 /mnt/usr/local -o subvol=@/usr/local
mount /dev/sda1 /mnt/var -o subvol=@/var

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

Μόλις συμπληρωθεί, πρέπει να ληφθεί μέριμνα ώστε το αρχείο /mnt/etc/fstab να περιλαμβάνει επίσης τις κατάλληλες καταχωρήσεις για κάθε ένα από τους υποτόμους εκτός από τα στιγμιότυπα @/.snapshots/1/snapshot που δεν θα πρέπει να προσαρτηθούν όπως παρέχει το αρχικά εγκατεστημένο σύστημα.

Εάν αντιμετωπίσετε κάποιο πρόβλημα, μπορείτε να επικοινωνήσετε με το forum (Αγγλικά) ή στο Facebook (Ελληνικά).

Leave a Comment

Social Media Auto Publish Powered By : XYZScripts.com