Blogger templates

I Support the Bring Them Back Campaign

8 Ιουν 2016

Τι είναι MBR (Master Boot Record) και GPT (GUID Partition Table)

Το MBR (Master Boot Record) έχει διπλή έννοια. Όταν αναφερόμαστε γενικά στους δίσκους με MBR, ουσιαστικά θα έπρεπε να αναφερόμαστε στους δίσκους με πίνακα κατάτμησης τύπου MS-DOS. Είναι ένα πρότυπο το οποίο αναπτύχθηκε από την IBM για το MS-DOS και ισχύει έκτοτε.
Είναι επίσης η προεπιλογή στο Linux όταν επιλέγουμε να δημιουργήσουμε έναν νέο πίνακα κατάτμησης (για παράδειγμα με το Gparted).
Αυτό είναι το πρότυπο που μεταξύ άλλων ορίζει και τις δυνατότητες (αλλά και τους περιορισμούς) που έχουμε κατά τη διαμέριση του δίσκου σε κατατμήσεις.

Κυριολεκτικά όμως, αναφερόμενοι στο MBR εννοούμε ουσιαστικά τον πρώτο τομέα του δίσκου. Είναι ο τομέας που περιέχει τον εκτελέσιμο κώδικα που χρειάζεται το BIOS για την εκκίνηση του υπολογιστή από τον σκληρό δίσκο. Αυτός ο εκτελέσιμος κώδικας είναι ο γνωστός μας φορτωτής εκκίνησης (bootloader), ο οποίος μπορεί να είναι είτε ο Windows bootloader, είτε ο GNU grub που χρησιμοποιεί το Ubuntu, είτε κάποιος άλλος όπως ο LILO.

Η δομή του (κατά σειρά προσπέλασης) είναι η εξής:


  • 440 Bytes εκτελέσιμου κώδικα
  • 4 Bytes με την ψηφιακή υπογραφή του δίσκου (προαιρετική)
  • 2 Bytes με συνήθως μηδενικό περιεχόμενο
  • 64 Bytes πίνακα κατατμήσεων (4 εγγραφές πρωτευόντων κατατμήσεων μήκους 16 bit)
  • 2 Bytes με την ψηφιακή υπογραφή του MBR
  • Πιο αναλυτικές πληροφορίες μπορείτε να διαβάσετε μεταξύ άλλων και στο άρθρο Master Boot Record της Wikipedia.


Ουσιαστικά, επειδή η χωρητικότητα ενός τομέα είναι μόλις 512 Bytes, οι φορτωτές εκκίνησης (ιδίως όσοι υποστηρίζουν multi-boot εγκαταστάσεις όπως ο GNU grub) συνήθως καταλαμβάνουν και ένα μέρος των υπόλοιπων τομέων του πρώτου δακτυλίου του δίσκου (στον οποίο ανήκει και ο πρώτος τομέας φυσικά).
Αυτό μπορεί κάποιες φορές να δημιουργήσει προβλήματα στην εκκίνηση του λειτουργικού. Ένα από αυτά είναι και το λεγόμενο FlexNet error, το οποίο αντιμετωπίζουν κάποιοι χρήστες dualboot συστημάτων.

Είδη κατατμήσεων και περιορισμοί στη δημιουργία τους
Όπως είδαμε, ο πίνακας κατατμήσεων MS-DOS μας επιτρέπει την διαμέριση του δίσκου σε κατατμήσεις. Τι είναι όμως οι κατατμήσεις;
Οι κατατμήσεις είναι τμήματα του δίσκου, τα οποία συμπεριφέρονται ανεξάρτητα το ένα από το άλλο σαν να επρόκειτο για ξεχωριστούς δίσκους. Κύριο χαρακτηριστικό τους είναι η σταθερή τους (από τη στιγμή που εμείς θα την ορίσουμε και μετά) χωρητικότητα., σε αντίθεση με τους φακέλους για παράδειγμα, οι οποίοι έχουν δυναμικά μεταβαλλόμενη χωρητικότητα ίση με το περιεχόμενό τους.

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

Οι κατατμήσεις χωρίζονται σε 2 τύπους:

Πρωτεύουσες (Primary). Μπορούμε να δημιουργήσουμε μέχρι τέσσερις σε έναν φυσικό δίσκο. Για κάθε μία από αυτές υπάρχει μία εγγραφή μήκους 16 Bytes στο τέταρτο τμήμα του MBR όπως είπαμε και πιο πάνω. Έχουμε δικαίωμα την μία από αυτές να την ορίσουμε ως εκτεταμένη (extended) κατάτμηση. Αυτό θα πρέπει να γίνει κατά τη δημιουργία της, καθώς αργότερα δεν γίνεται να αλλάξουμε τον χαρακτηρισμό της. Αυτή από μόνη της δεν γίνεται να περιέχει δεδομένα, αλλά χρησιμεύει ως χώρος φιλοξενίας της επόμενης κατηγορίας κατατμήσεων.
Λογικές (Logical). Αυτές περιέχονται μέσα σε μία εκτεταμένη κατάτμηση. Η διαφορά τους σε σχέση με τις πρωτεύουσες είναι ότι δεν υπάρχει εγγραφή γι αυτές στο MBR του δίσκου (αφού αυτό μπορεί να περιέχει μόνο εγγραφές για πρωτεύουσες κατατμήσεις). Η εγγραφή τους βρίσκεται στο EBR (Extended Boot Record), το οποίο δεν καταλαμβάνει κάποιον συγκεκριμένο τομέα όπως το MBR, αλλά τον πρώτο τομέα της κάθε μίας λογικής κατάτμησης. Εκεί περιέχονται δύο καταχωρήσεις. Μία για το λογικό διαμέρισμα του οποίου αποτελεί την αρχή και μία για τη διεύθυνση του επόμενου (αν υπάρχει) EBR. Έτσι, μπορούμε θεωρητικά να έχουμε όσες λογικές κατατμήσεις θέλουμε μέσα σε μία εκτεταμένη, αρκεί να το επιτρέπει η χωρητικότητά της. Λεπτομέρειες για το EBR μπορείτε να πάρετε και από το άρθρο Extended boot partition της Wikipedia.
Κατά την διαμέριση του δίσκου μας επιβάλλονται συνήθως κάποιοι περιορισμοί. Οι περιορισμοί αυτοί μας επιβάλλονται κυρίως από τις εφαρμογές που χρησιμοποιούμε και όχι τόσο από τον ίδιο το σκληρό δίσκο.
Για παράδειγμα, ενώ η διαχείριση δίσκων των Windows επιτρέπει την αυξομείωση του μεγέθους της ενεργής κατάτμησης όπου βρίσκεται η εγκατάσταση των Windows, το Gparted (το κύριο εργαλείο κατατμήσεων στο Linux) θέτει ως περιορισμό το ότι μπορούμε να κάνουμε οποιαδήποτε επεξεργασία μόνο σε αποπροσαρτημένες κατατμήσεις.
Έτσι, προτείνεται σε κάποιον που θέλει να κάνει τέτοιου είδους επεμβάσεις στον δίσκο του να χρησιμοποιεί Live CD-USB ώστε να έχει την δυνατότητα επεξεργασίας οποιουδήποτε τμήματος του δίσκου.

Τα παρακάτω αφορούν τις δυνατότητες επεξεργασίας που μας παρέχουν οι εφαρμογές Gparted (Gnome Partition Editor) και KDE Partition Editor, οι οποίες είναι front-end του GNU Parted.

Μπορούμε να επεξεργαστούμε μόνο κατατμήσεις που δεν είναι προσαρτημένες. Αυτό ισχύει είτε για τις πρωτεύουσες κατατμήσεις είτε για τις λογικές.
Μπορούμε να αυξήσουμε ή να συρρικνώσουμε το μέγεθος μίας πρωτεύουσας κατάτμησης. Μπορούμε επίσης να μετακινήσουμε μία πρωτεύουσα κατάτμηση. Μοναδική προϋπόθεση γι αυτές τις ενέργειες είναι να υπάρχει ο απαραίτητος κενός χώρος στον δίσκο.
Μία εκτεταμένη κατάτμηση συμπεριφέρεται ακριβώς όπως και μία πρωτεύουσα, αλλά μόνο στην περίπτωση που είναι κενή. Μία κενή εκτεταμένη κατάτμηση έχουμε τη δυνατότητα να την μετακινήσουμε, να της αλλάξουμε το μέγεθος ή και να την διαγράψουμε αν δεν περιέχει μέσα της λογικές κατατμήσεις. Η ύπαρξη λογικών κατατμήσεων μέσα σε μία εκτεταμένη, την «κλειδώνει» κατά κάποιον τρόπο με αποτέλεσμα να μην επιτρέπεται η επεξεργασία της.
Μπορούμε να μετακινήσουμε και να αλλάξουμε το μέγεθος των λογικών κατατμήσεων που περιέχονται σε μία εκτεταμένη αρκεί να υπάρχει διαθέσιμος χώρος. Για να μπορέσουμε όμως να διαγράψουμε μία λογική κατάτμηση, θα πρέπει να μην είναι προσαρτημένη άλλη λογική κατάτμηση με μεγαλύτερο αριθμό από αυτήν που θέλουμε να διαγράψουμε (αυτό είναι πιθανό να έχει σχέση με τις εγγραφές των EBR).
Έτσι φτάνουμε στην ονομασία των κατατμήσεων από το Linux. Το Linux ονομάζει τους σύγχρονους δίσκους με έναν κωδικό της μορφής /dev/sdxx, όπου το πρώτο x είναι ένα γράμμα του λατινικού αλφαβήτου (a, b, c…) και εκφράζει τον αριθμό προτεραιότητας του φυσικού δίσκου και το δεύτερο x είναι αριθμός (1, 2, 3…) και εκφράζει τον αύξοντα αριθμό της κατάτμησης.

Η ονομασία είναι συντομογραφία της φράσης /device/scsi disk xx. Για τους παλαιότερους δίσκους που συνδέονται μέσω IDE, η ονομασία έχει τη μορφή /dev/hdxx όπου πάλι τα xx έχουν το ίδιο νόημα (περισσότερα για την αλλαγή της ονοματολογίας ανάλογα με τον ελεγκτή των συσκευών, μπορείτε να διαβάσετε στην ενότητα Device Names in Linux της επίσημης τεκμηρίωσης του Ubuntu). Έτσι συμπεραίνουμε ότι για παράδειγμα η πρώτη κατάτμηση του πρώτου δίσκου μας, ονομάζεται από το Linux ως /dev/sda1.

Είναι πιθανό αν έχουμε παραπάνω από δύο δίσκους στο σύστημά μας, μόνο ο πρώτος να αναγνωρίζεται πάντα με το ίδιο γράμμα, ενώ οι υπόλοιποι να αλλάζουν γράμμα μεταξύ διαφορετικών εκκινήσεων. Αυτό συμβαίνει καθώς ο ελεγκτής των σκληρών δίσκων στην μητρική πλακέτα πολλές φορές αναγνωρίζει πρώτα τον δίσκο που είναι συνδεδεμένος στην πρώτη υποδοχή ως Master, ενώ τους υπόλοιπους ως slaves χωρίς συγκεκριμένη σειρά, οπότε υπάρχει περίπτωση τα γράμματα b, c και τα υπόλοιπα (εκτός του a) να μην αποδίδονται σταθερά στην ίδια συσκευή. Αν χρειαζόμαστε ένα σταθερό αναγνωριστικό στοιχείο για τον δίσκο μας, θα πρέπει να χρησιμοποιούμε τους αριθμούς UUID και GUID που δίνονται σε κάθε κατάτμηση κατά τη δημιουργία της (περισσότερα για τους αριθμούς UUID και GUID θα βρείτε στο γλωσσάρι, ενώ λεπτομερέστερα άρθρα είναι τα Universally Unique IDentifier και Globally Unique IDentifier αντίστοιχα.

Οι αριθμοί των κατατμήσεων αρχίζουν από το 1. Στην ονοματολογία του Linux, οι αριθμοί 1, 2, 3 και 4 δίνονται πάντα στις τέσσερις πρωτεύουσες κατατμήσεις του δίσκου. Για τις λογικές που ενδέχεται να δημιουργηθούν, χρησιμοποιούνται οι αριθμοί από 5 και πάνω. Αυτό συμβαίνει ακόμα και αν δεν υπάρχουν τέσσερις πρωτεύουσες κατατμήσεις ώστε να καταλάβουν τους αριθμούς 1-4. Σε αυτή την περίπτωση, όποιοι από τους τέσσερις πρώτους αριθμούς δεν αντιστοιχούν σε κάποια κατάτμηση, δεν αποδίδονται καθόλου και παραλείπονται ώστε να χρησιμοποιηθούν αν τυχόν αυτές δημιουργηθούν αργότερα.



Πίνακας κατατμήσεων GPT (GUID Partition Table).

Ο πίνακας κατατμήσεων GPT είναι ένα νεότερο από το MBR πρότυπο το οποίο αναπτύχθηκε από την Intel ως μέρος της τεχνολογίας UEFI ώστε να αντικαταστήσει το PC-BIOS (το γνωστό μας BIOS) και τον πίνακα κατατμήσεων MS-DOS.
Δημιουργήθηκε για να ξεπεραστούν οι περιορισμοί που υπάρχουν στους δίσκους με MBR (το MBR υποστηρίζει χωρητικότητα κατάτμησης μέχρι περίπου 2 TeraBytes, ενώ το GPT μέχρι περίπου 9,3 ZettaBytes). Αν και σχεδιάστηκε για χρήση με συστήματα UEFI BIOS, εντούτοις μπορεί να χρησιμοποιηθεί και σε συστήματα με PC-BIOS.
Υποστηρίζει τη δημιουργία μέχρι και 128 πρωτευουσών κατατμήσεων.
Στα περισσότερα λειτουργικά συστήματα δεν υποστηρίζεται η εκκίνηση από δίσκο με πίνακα κατάτμησης GPT παρά μόνο αν το BIOS του υπολογιστή είναι τεχνολογίας UEFI.
Ενδεικτικά, η εκκίνηση από δίσκο με πίνακα κατατμήσεων GPT δεν υποστηρίζεται από τα Windows, παρά μόνο σε 64bit εκδόσεις των Vista ή Windows 7 και μόνο με την προϋπόθεση της ύπαρξης UEFI BIOS.
Στο Linux υποστηρίζεται η εκκίνηση από δίσκο με πίνακα κατατμήσεων GPT σε όλες τις εκδόσεις και υπό οποιαδήποτε μορφή BIOS. Αυτή την υποστήριξη την παρέχει ο Grub2 bootloader εκ κατασκευής και ο grub legacy με κάποια patches.

Στην παρακάτω εικόνα βλέπουμε ενδεικτικά το ίδιο με πριν USB memory stick, αυτή τη φορά με πίνακα κατατμήσεων GPT και έχοντας δημιουργήσει δοκιμαστικά 13 πρωτεύουσες κατατμήσεις κάθε συστήματος αρχείων. Ξανά, η ετικέτα φανερώνει τη σειρά με την οποία αυτές δημιουργήθηκαν (στην /dev/sdc8 δεν υπάρχει κάποιο σύστημα αρχείων, έτσι δεν υποστηρίζεται και η ύπαρξη ετικέτας).



Περισσότερες πληροφορίες σχετικά με τον πίνακα κατατμήσεων GPT και τη δομή του, μπορείτε να πάρετε από το άρθρο της Wikipedia GUID Partition Table

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

Δείτε ακόμα:Μάθετε πως πήραν τα ονόματά τους οι διάσημες εταιρίες

Πηγή

0 σχόλια :

Δημοσίευση σχολίου