10 εντολές fdisk για διαχείριση κατατμήσεων δίσκου Linux


Το fdisk σημαίνει "fixed disk or format disk") είναι ένα πιο συχνά χρησιμοποιούμενο βοηθητικό πρόγραμμα χειρισμού δίσκου που βασίζεται στη γραμμή εντολών για ένα Συστήματα Linux/ Unix. Με τη βοήθεια της εντολής fdisk μπορείτε να προβάλετε, να δημιουργήσετε, να αλλάξετε το μέγεθος, να διαγράψετε, να αλλάξετε, να αντιγράψετε και να μετακινήσετε κατατμήσεις σε έναν σκληρό δίσκο χρησιμοποιώντας τη δική του φιλική προς το χρήστη διεπαφή που βασίζεται σε μενού που βασίζεται σε κείμενο.

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

Αυτό το άρθρο εξηγεί 10 βασικές εντολές fdisk για τη διαχείριση ενός πίνακα διαμερισμάτων σε συστήματα που βασίζονται στο Linux. Πρέπει να είστε χρήστης root για να εκτελέσετε την εντολή fdisk, διαφορετικά θα λάβετε ένα σφάλμα "η εντολή δεν βρέθηκε".

1. Προβολή όλων των κατατμήσεων δίσκου στο Linux

Η ακόλουθη βασική εντολή παραθέτει όλα τα υπάρχοντα διαμερίσματα δίσκου στο σύστημά σας. Το όρισμα «-l» χρησιμοποιείται με την εντολή fdisk για την προβολή όλων των διαθέσιμων κατατμήσεων στο Linux. Τα διαμερίσματα εμφανίζονται με τα ονόματα της συσκευής τους. Για παράδειγμα: /dev/sda, /dev/sdb ή /dev/sdc.

[[email  ~]# fdisk -l

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

2. Δείτε το συγκεκριμένο διαμέρισμα δίσκου στο Linux

Για να δείτε όλα τα διαμερίσματα συγκεκριμένου σκληρού δίσκου, χρησιμοποιήστε την επιλογή «-l» με όνομα συσκευής. Για παράδειγμα, η ακόλουθη εντολή θα εμφανίσει όλα τα διαμερίσματα δίσκου της συσκευής /dev/sda. Εάν έχετε διαφορετικά ονόματα συσκευών, απλώς γράψτε το όνομα της συσκευής ως /dev/sdb ή /dev/sdc.

[[email  ~]# fdisk -l /dev/sda

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

3. Ελέγξτε όλες τις Διαθέσιμες εντολές fdisk

Εάν θέλετε να δείτε όλες τις εντολές που είναι διαθέσιμες για το fdisk. Απλώς χρησιμοποιήστε την ακόλουθη εντολή αναφέροντας το όνομα του σκληρού δίσκου, όπως /dev/sda όπως φαίνεται παρακάτω. Η ακόλουθη εντολή θα σας δώσει έξοδο παρόμοια με την παρακάτω.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):

Πληκτρολογήστε "m" για να δείτε τη λίστα με όλες τις διαθέσιμες εντολές του fdisk που μπορούν να λειτουργήσουν στον σκληρό δίσκο /dev/sda. Αφού εισάγω «m» στην οθόνη, θα δείτε όλες τις διαθέσιμες επιλογές για το fdisk που μπορείτε να χρησιμοποιήσετε στη συσκευή /dev/sda.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):

4. Εκτυπώστε όλο τον πίνακα κατατμήσεων σε Linux

Για να εκτυπώσετε όλους τους πίνακες διαμερισμάτων του σκληρού δίσκου, πρέπει να βρίσκεστε σε λειτουργία εντολής συγκεκριμένου σκληρού δίσκου, πείτε /dev/sda.

[root@tecmint ~]# fdisk /dev/sda

Από τη λειτουργία εντολών, πληκτρολογήστε "p" αντί για "m", όπως κάναμε νωρίτερα. Καθώς εισάγω «p», θα εκτυπωθεί ο συγκεκριμένος πίνακας διαμερισμάτων /dev/sda.

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

5. Πώς να διαγράψετε ένα διαμέρισμα στο Linux

Εάν θέλετε να διαγράψετε ένα συγκεκριμένο διαμέρισμα (δηλαδή /dev/sda9) από τον συγκεκριμένο σκληρό δίσκο, όπως το /dev/sda. Πρέπει να είστε σε λειτουργία εντολής fdisk για να το κάνετε αυτό.

[root@tecmint ~]# fdisk /dev/sda

Στη συνέχεια, πληκτρολογήστε "d" για να διαγράψετε οποιοδήποτε όνομα διαμερίσματος από το σύστημα. Καθώς εισάγω «d», θα μου ζητηθεί να εισαγάγω τον αριθμό διαμερίσματος που θέλω να διαγράψω από τον σκληρό δίσκο /dev/sda. Ας υποθέσουμε ότι πληκτρολογώ τον αριθμό '4' εδώ, τότε θα διαγράψει τον αριθμό κατάτμησης '4' (δηλαδή τον δίσκο /dev/sda4) και θα εμφανιστεί δωρεάν χώρο στον πίνακα διαμερισμάτων. Πληκτρολογήστε ‘w’ για να γράψετε πίνακα σε δίσκο και να βγείτε αφού κάνετε νέες αλλαγές στον πίνακα διαμερισμάτων. Οι νέες αλλαγές θα πραγματοποιηθούν μόνο μετά την επόμενη επανεκκίνηση του συστήματος. Αυτό μπορεί να γίνει εύκολα κατανοητό από την παρακάτω έξοδο.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): d
Partition number (1-4): 4

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
You have new mail in /var/spool/mail/root

Προειδοποίηση : Να είστε προσεκτικοί κατά την εκτέλεση αυτού του βήματος, διότι η χρήση της επιλογής «d» θα διαγράψει πλήρως το διαμέρισμα από το σύστημα και ενδέχεται να χαθούν όλα τα δεδομένα στο διαμέρισμα.

6. Πώς να δημιουργήσετε ένα νέο διαμέρισμα στο Linux

Αν έχετε ελεύθερο χώρο σε μια συσκευή σας πείτε /dev/sda και θέλετε να δημιουργήσετε ένα νέο διαμέρισμα κάτω από αυτό. Τότε πρέπει να βρίσκεστε σε λειτουργία εντολής fdisk του /dev/sda. Πληκτρολογήστε την ακόλουθη εντολή για να μπείτε σε λειτουργία εντολών συγκεκριμένου σκληρού δίσκου.

[root@tecmint ~]# fdisk /dev/sda

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

[root@tecmint ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e

Κατά τη δημιουργία ενός νέου διαμερίσματος, θα σας ζητηθούν δύο επιλογές "εκτεταμένο" ή "κύριο" δημιουργία διαμερίσματος. Πατήστε ‘e’ για εκτεταμένο διαμέρισμα και ‘p’ για πρωτεύον διαμέρισμα. Στη συνέχεια, θα σας ζητήσει να εισαγάγετε τις ακόλουθες δύο εισόδους.

  1. Ο πρώτος αριθμός κυλίνδρου του διαμερίσματος που θα δημιουργηθεί.
  2. Τελευταίος αριθμός κυλίνδρου του διαμερίσματος που θα δημιουργηθεί (Τελευταίος κύλινδρος, +κύλινδροι ή +μέγεθος).

Μπορείτε να εισαγάγετε το μέγεθος του κυλίνδρου προσθέτοντας "+5000M" στον τελευταίο κύλινδρο. Εδώ, "+" σημαίνει προσθήκη και 5000M σημαίνει μέγεθος νέου διαμερίσματος (δηλαδή 5000 MB). Λάβετε υπόψη ότι μετά τη δημιουργία ενός νέου διαμερίσματος, θα πρέπει να εκτελέσετε την εντολή "w" για να αλλάξετε και να αποθηκεύσετε νέες αλλαγές στον πίνακα διαμερισμάτων και, τέλος, να επανεκκινήσετε το σύστημά σας για να επαληθεύσετε το διαμέρισμα που δημιουργήθηκε πρόσφατα.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

7. Πώς να μορφοποιήσετε ένα διαμέρισμα στο Linux

Αφού δημιουργηθεί το νέο διαμέρισμα, μην παραλείψετε να διαμορφώσετε το διαμέρισμα που δημιουργήθηκε πρόσφατα χρησιμοποιώντας την εντολή «mkfs». Πληκτρολογήστε την ακόλουθη εντολή στο τερματικό για να μορφοποιήσετε ένα διαμέρισμα. Εδώ το /dev/sda4 είναι το διαμέρισμα που δημιούργησα πρόσφατα.

[root@tecmint ~]# mkfs.ext4 /dev/sda4

8. Πώς να ελέγξετε το μέγεθος ενός διαμερίσματος στο Linux

Αφού μορφοποιήσετε το νέο διαμέρισμα, ελέγξτε το μέγεθος αυτού του διαμερίσματος χρησιμοποιώντας τη σημαία «s» (εμφανίζει το μέγεθος σε μπλοκ) με την εντολή fdisk. Με αυτόν τον τρόπο μπορείτε να ελέγξετε το μέγεθος οποιασδήποτε συγκεκριμένης συσκευής.

[root@tecmint ~]# fdisk -s /dev/sda2
5194304

9. Πώς να διορθώσετε τη σειρά διαμερισμάτων πίνακα

Εάν διαγράψατε ένα λογικό διαμέρισμα και το ξαναδημιουργήσατε, μπορεί να παρατηρήσετε πρόβλημα "διαμέρισμα εκτός λειτουργίας" ή μήνυμα σφάλματος όπως "Οι καταχωρήσεις του πίνακα κατατμήσεων δεν είναι σε σειρά δίσκου '.

Για παράδειγμα, όταν διαγράφονται τρία λογικά διαμερίσματα όπως (sda4, sda5 και sda6) και δημιουργείται νέο διαμέρισμα, ενδέχεται να περιμένετε το νέο το όνομα του διαμερίσματος θα είναι sda4. Ωστόσο, το σύστημα θα το δημιουργούσε ως sda5. Αυτό συμβαίνει επειδή, μετά τη διαγραφή του διαμερίσματος, το διαμέρισμα sda7 είχε μετακινηθεί ως sda4 και ο ελεύθερος χώρος μετατοπίστηκε στο τέλος.

Για να διορθώσετε τέτοια προβλήματα σειράς διαμερισμάτων και να αντιστοιχίσετε το sda4 στο διαμέρισμα που δημιουργήθηκε πρόσφατα, εκδώστε το 'x' για να εισαγάγετε μια επιπλέον ενότητα λειτουργιών και, στη συνέχεια, πληκτρολογήστε 'f<' εντολή ειδικού για να διορθώσετε τη σειρά του πίνακα διαμερισμάτων όπως φαίνεται παρακάτω.

[root@tecmint ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): x

Expert command (m for help): f
Done.

Expert command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Αφού εκτελέσετε την εντολή ‘f’, μην ξεχάσετε να εκτελέσετε την εντολή ‘w’ για αποθήκευση και έξοδο από τη λειτουργία εντολής fdisk. Μόλις διορθώσει τη σειρά του πίνακα κατατμήσεων, δεν θα λαμβάνετε πλέον μηνύματα σφάλματος.

10. Πώς να απενεργοποιήσετε τη σημαία εκκίνησης (*) ενός διαμερίσματος

Από προεπιλογή, η εντολή fdisk εμφανίζει τη σημαία εκκίνησης (δηλαδή «*») σε κάθε διαμέρισμα. Εάν θέλετε να ενεργοποιήσετε ή να απενεργοποιήσετε τη σημαία εκκίνησης σε ένα συγκεκριμένο διαμέρισμα, κάντε τα παρακάτω βήματα.

[root@tecmint ~]# fdisk  /dev/sda

Πατήστε την εντολή 'p' για να δείτε τον τρέχοντα πίνακα διαμερισμάτων, βλέπετε ότι υπάρχει μια σημαία εκκίνησης (σύμβολο αστερίσκου (*) σε πορτοκαλί χρώμα) στο /dev/ δίσκος sda1 όπως φαίνεται παρακάτω.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Στη συνέχεια, πληκτρολογήστε την εντολή 'a' για να απενεργοποιήσετε τη σημαία εκκίνησης και, στη συνέχεια, εισαγάγετε τον αριθμό διαμερίσματος '1' ως (δηλ. /dev/sda1) στην περίπτωσή μου . Αυτό θα απενεργοποιήσει τη σημαία εκκίνησης στο διαμέρισμα /dev/sda1. Αυτό θα αφαιρέσει τη σημαία με τον αστερίσκο ().

Command (m for help): a
Partition number (1-9): 1

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

Έκανα το καλύτερο δυνατό για να συμπεριλάβω σχεδόν όλες τις βασικές εντολές των εντολών fdisk, αλλά το fdisk εξακολουθεί να περιέχει μια ποικιλία από άλλες εντολές ειδικών που μπορείτε να τις χρησιμοποιήσετε εισάγοντας «x». Για πιο λεπτομερείς πληροφορίες, ανατρέξτε στην εντολή «man fdisk» από το τερματικό. Αν έχασα κάποια σημαντική εντολή, μοιραστείτε μαζί μου μέσω της ενότητας σχολίων.

Διαβάστε επίσης:

  1. 12 εντολές “df” για έλεγχο χώρου στο δίσκο στο Linux
  2. 10 Χρήσιμες εντολές "du" για να βρείτε τη χρήση δίσκου αρχείων και καταλόγων