Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)
Αρχίζοντας από το filesystem, ας επιχειρήσουμε να δώσουμε ένα ορισμό. Στο Linux όμως, το λειτουργικό σύστημα που είναι συνώνυμο της λέξης
“ελευθερία”, μας προσφέρονται πολλές εναλλακτικές Εκτός από
το EXT4 λοιπόν το οποίο θεωρείται η στάνταρ επιλογή για το Linux, Ένας σημαντικός παράγοντας επιλογής του σωστού filesystem είναι η
λειτουργία Journaling.
Διαφήμιση
Δίσκοι, κατατμήσεις και SWAPΤώρα που μάθαμε για τα filesystem που υποστηρίζει το Linux, αξίζει να
πούμε ότι
μπορούμε να έχουμε περισσότερα από ένα στο δίσκο του υπολογιστή μας.
Επάνω δεξιά στο GParted θα δούμε τους “φυσικούς” δίσκους που έχει
αναγνωρίσει ο υπολογιστής μας, είτε πρόκειται για εσωτερικούς, εξωτερικούς
είτε για κάρτες SD. Οι δίσκοι αυτοί προσαρτώνται αυτόματα στο φάκελο “/dev”
του συστήματος και παίρνουν την ονομασία “sda”, “sdb”, “sdc” Μιας και μιλήσαμε για το GParted, αξίζει να πούμε ότι το πρόγραμμα αυτό
δεν είναι τίποτα περισσότερο από
τη γραφική απεικόνιση της εντολής “parted”, Το τερματικό θα
μας απαντήσει κάπως έτσι:
Model: Seagate (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 6860MB 6859MB primary ext4 boot
2 6861MB 21.5GB 14.6GB extended
5 6862MB 7380MB 518MB logical swap
6 7381MB 21.5GB 14.1GB logical xfsΟι
πληροφορίες που κρατάμε από αυτή την εικόνα είναι:
-
το "Disk" Για να μπούμε στο parted δίνουμε την εντολή:
sudo partedΤο parted μας καλωσορίζει και μας ενημερώνει για τον
επιλεγμένο δίσκο (π.χ. "/dev/sda"). Μπορούμε να επιλέξουμε έναν άλλον για να
δουλέψουμε μαζί του (π.χ. "/dev/sdc") με την εντολή:
select /dev/sdcΕπιβεβαιώνουμε ότι έχουμε επιλέξει το σωστό δίσκο με την
εντολή:
Αν ο δίσκος μας δε διαθέτει κάποιο "Partition Table",
μπορούμε να δηλώσουμε το "msdos" το οποίο είναι κοινό στο Linux, με την
εντολή:
mklabel msdosΓια να φτιάξουμε ένα partition
στο δίσκο μας θα χρησιμοποιήσουμε την εντολή "mkpart" και θα δηλώσουμε τον
τύπο του partition (primarty, extended, logical), ενώ θα δηλώσουμε επίσης την
αρχή και το τέλος του στο δίσκο μας. Για παράδειγμα:
mkpart primary 0.0 950.0Η κατάτμηση που δημιουργήσαμε είναι τύπου
"primary" ξεκινάει από τα 0 Megabyte (από την αρχή δηλαδή του δίσκου) και
τελειώνει στα 950 Megabyte. Όπως είναι λογικό αν θέλουμε να δημιουργήσουμε το
επόμενο partition μας, η αρχή του θα πρέπει να είναι μετά τα 950 Megabyte. Για
παράδειγμα:
mkpart logical 951.0 2451.0Αυτό το
partition είναι "logical", αρχίζει από τα 951 Megabyte και τελειώνει στα 2451
Megabyte του δίσκου. Έχει δηλαδή μέγεθος 1.5 Gigabyte. Αν δώσουμε τώρα ξανά
την εντολή "print" θα δούμε τα νέα partition του δίσκου μας κάπως έτσι:
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 275GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system
1 1049kB 950.0MB 949MB primary ext2
2 951.0MB 2.45GB 1.50GB primary ext2 Με το parted
μπορούμε επίσης να μεγαλώσουμε ή να μικρύνουμε ένα partition. Δίνουμε απλά την
εντολή:
resizepartΕπιλέγουμε τον αριθμό του
partition που θέλουμε να επεξεργαστούμε:
Partition number? 1Και
το σημείο στο οποίο θέλουμε να τελειώνει (αριθμό σε Megabyte):
End? [950.0MB]? 15000Αν θέλουμε τώρα να διαγράψουμε το partition με τον
αριθμό 2, θα δώσουμε απλά την εντολή:
rm 2Τέλος για
να βγούμε από το parted δίνουμε την εντολή:
quitΤώρα
που έχουμε χωρίσει το δίσκο μας στα τμήματα που μας εξυπηρετούν, μπορούμε να
τα φορμάρουμε με το filesystem που μας εξυπηρετεί. Για παράδειγμα για να
μετατρέψουμε σε EXT4 το πρώτο partition του δίσκου "sdc" η εντολή είναι η
εξής:
sudo mkfs.ext4 /dev/sdc1
Εκτός από το parted υπάρχουν και άλλα χρήσιμα εργαλεία Με
το "mount" μπορούμε επίσης να αλλάξουμε την τοποθεσία στην οποία προσαρτάται
ο δίσκος μας. Αν για παράδειγμα χρησιμοποιώ τον δίσκο "sdb2" για να
αποθηκεύω φωτογραφίες, μπορώ να ορίσω να προσαρτάται στο φάκελο "Photos" του
υπολογιστή μου. Η εντολή για κάτι τέτοιο είναι η εξής:
sudo mount /dev/sdb2 /PhotosΑντίστοιχα με το "unmount" μπορούμε να
καταργήσουμε αυτή την προσάρτηση:
sudo umount /dev/sdb2Σε ένα κλασικό Linux σύστημα θα βρούμε τέλος και το αρχείο "fstab", Εκεί θα
δούμε τους εσωτερικούς μας δίσκους με το μοναδικό αριθμό "UUID" ή
"PartUUID". Για να μάθουμε τα UUID και των εξωτερικών δίσκων θα πρέπει να
δώσουμε την εντολη:
sudo blkidΠροσθέτουμε λοιπόν
μία νέα γραμμή στο fstab για κάθε δίσκο, αλλάζοντας το "UUID" και το φάκελο
στον οποίο θέλουμε να γίνεται η προσάρτηση. Για παράδειγμα:
PARTUUID=86df86df-01 /home/chris/HDD500GB ext4 defaults,auto,users,rw
Εν κατακλείδιΑυτά είναι σε γενικές γραμμές όλα όσα πρέπει να γνωρίζουμε για το
filesystem αλλά και για τον τρόπο με τον οποίο λειτουργούν οι δίσκοι μας στο
Linux. Τα εργαλεία και οι εντολές που αναφέραμε είναι απαραίτητα αν
αποφασίσεις να ασχοληθείς με Linux server και ειδικά το parted είναι ένα
εργαλείο που πρέπει να μάθεις απ' έξω.
Κάποια στιγμή ο
υπολογιστής σου θα σταματήσει να λειτουργεί σωστά και
είναι πραγματικά πολύ ευχάριστο να μπορείς να κάνεις διάγνωση στο σύστημά
σου, για να βρεις τι ακριβώς συμβαίνει. Με αυτό τον τρόπο δε χρειάζεται να
πληρώσεις έναν εξειδικευμένο επισκευαστή για να σου πει ότι τα αρχεία σου δε
σώζονται ή αν ο δίσκος σου είναι για πέταμα.
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 6860MB 6859MB primary ext4 boot
2 6861MB 21.5GB 14.6GB extended
5 6862MB 7380MB 518MB logical swap
6 7381MB 21.5GB 14.1GB logical xfsΟι
πληροφορίες που κρατάμε από αυτή την εικόνα είναι:
sudo partedΤο parted μας καλωσορίζει και μας ενημερώνει για τον
επιλεγμένο δίσκο (π.χ. "/dev/sda"). Μπορούμε να επιλέξουμε έναν άλλον για να
δουλέψουμε μαζί του (π.χ. "/dev/sdc") με την εντολή:select /dev/sdcΕπιβεβαιώνουμε ότι έχουμε επιλέξει το σωστό δίσκο με την
εντολή:
Αν ο δίσκος μας δε διαθέτει κάποιο "Partition Table",
μπορούμε να δηλώσουμε το "msdos" το οποίο είναι κοινό στο Linux, με την
εντολή:mklabel msdosΓια να φτιάξουμε ένα partition
στο δίσκο μας θα χρησιμοποιήσουμε την εντολή "mkpart" και θα δηλώσουμε τον
τύπο του partition (primarty, extended, logical), ενώ θα δηλώσουμε επίσης την
αρχή και το τέλος του στο δίσκο μας. Για παράδειγμα:mkpart primary 0.0 950.0Η κατάτμηση που δημιουργήσαμε είναι τύπου
"primary" ξεκινάει από τα 0 Megabyte (από την αρχή δηλαδή του δίσκου) και
τελειώνει στα 950 Megabyte. Όπως είναι λογικό αν θέλουμε να δημιουργήσουμε το
επόμενο partition μας, η αρχή του θα πρέπει να είναι μετά τα 950 Megabyte. Για
παράδειγμα:mkpart logical 951.0 2451.0Αυτό το
partition είναι "logical", αρχίζει από τα 951 Megabyte και τελειώνει στα 2451
Megabyte του δίσκου. Έχει δηλαδή μέγεθος 1.5 Gigabyte. Αν δώσουμε τώρα ξανά
την εντολή "print" θα δούμε τα νέα partition του δίσκου μας κάπως έτσι:Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 275GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:Number Start End Size Type File system
1 1049kB 950.0MB 949MB primary ext2
2 951.0MB 2.45GB 1.50GB primary ext2 Με το parted
μπορούμε επίσης να μεγαλώσουμε ή να μικρύνουμε ένα partition. Δίνουμε απλά την
εντολή:resizepartΕπιλέγουμε τον αριθμό του
partition που θέλουμε να επεξεργαστούμε:Partition number? 1Και
το σημείο στο οποίο θέλουμε να τελειώνει (αριθμό σε Megabyte):End? [950.0MB]? 15000Αν θέλουμε τώρα να διαγράψουμε το partition με τον
αριθμό 2, θα δώσουμε απλά την εντολή:rm 2Τέλος για
να βγούμε από το parted δίνουμε την εντολή:quitΤώρα
που έχουμε χωρίσει το δίσκο μας στα τμήματα που μας εξυπηρετούν, μπορούμε να
τα φορμάρουμε με το filesystem που μας εξυπηρετεί. Για παράδειγμα για να
μετατρέψουμε σε EXT4 το πρώτο partition του δίσκου "sdc" η εντολή είναι η
εξής:sudo mkfs.ext4 /dev/sdc1
Εκτός από το parted υπάρχουν και άλλα χρήσιμα εργαλεία Με
το "mount" μπορούμε επίσης να αλλάξουμε την τοποθεσία στην οποία προσαρτάται
ο δίσκος μας. Αν για παράδειγμα χρησιμοποιώ τον δίσκο "sdb2" για να
αποθηκεύω φωτογραφίες, μπορώ να ορίσω να προσαρτάται στο φάκελο "Photos" του
υπολογιστή μου. Η εντολή για κάτι τέτοιο είναι η εξής:sudo mount /dev/sdb2 /PhotosΑντίστοιχα με το "unmount" μπορούμε να
καταργήσουμε αυτή την προσάρτηση:sudo umount /dev/sdb2Σε ένα κλασικό Linux σύστημα θα βρούμε τέλος και το αρχείο "fstab", Εκεί θα
δούμε τους εσωτερικούς μας δίσκους με το μοναδικό αριθμό "UUID" ή
"PartUUID". Για να μάθουμε τα UUID και των εξωτερικών δίσκων θα πρέπει να
δώσουμε την εντολη:sudo blkidΠροσθέτουμε λοιπόν
μία νέα γραμμή στο fstab για κάθε δίσκο, αλλάζοντας το "UUID" και το φάκελο
στον οποίο θέλουμε να γίνεται η προσάρτηση. Για παράδειγμα:PARTUUID=86df86df-01 /home/chris/HDD500GB ext4 defaults,auto,users,rwΕν κατακλείδιΑυτά είναι σε γενικές γραμμές όλα όσα πρέπει να γνωρίζουμε για το
filesystem αλλά και για τον τρόπο με τον οποίο λειτουργούν οι δίσκοι μας στο
Linux. Τα εργαλεία και οι εντολές που αναφέραμε είναι απαραίτητα αν
αποφασίσεις να ασχοληθείς με Linux server και ειδικά το parted είναι ένα
εργαλείο που πρέπει να μάθεις απ' έξω.Κάποια στιγμή ο
υπολογιστής σου θα σταματήσει να λειτουργεί σωστά και
είναι πραγματικά πολύ ευχάριστο να μπορείς να κάνεις διάγνωση στο σύστημά
σου, για να βρεις τι ακριβώς συμβαίνει. Με αυτό τον τρόπο δε χρειάζεται να
πληρώσεις έναν εξειδικευμένο επισκευαστή για να σου πει ότι τα αρχεία σου δε
σώζονται ή αν ο δίσκος σου είναι για πέταμα.


