Τι να επιλέξετε - GPT ή MBR; Εξηγούμε πώς διαφέρουν τα πρότυπα. Εγκατάσταση των Windows σε δίσκο που έχει μετατραπεί από MBR σε GPT χωρίς απώλεια δεδομένων σε κατατμήσεις εκτός συστήματος Δημιουργία διαμερίσματος mbr

Πριν κάνετε μια ερώτηση σε ένα νήμα που σχετίζεται με το MBR, διαβάστε τα παρακάτω:

1. Τι είναι το MBR και γιατί είναι σημαντικό στη λειτουργία του υπολογιστή;
Μετάφραση από τα αγγλικά, το MBR είναι μια συντομογραφία που σημαίνει Main/Master Boot Record ή Main Boot Record. Αυτή η εγγραφή βρίσκεται στον πρώτο φυσικό τομέα του σκληρού δίσκου και παίζει σημαντικό ρόλο στη φόρτωση του λειτουργικού συστήματος, ή μάλλον, στην επιλογή από ποιο διαμέρισμα θα φορτωθεί το λειτουργικό σύστημα. Έτσι, το MBR περιέχει πληροφορίες σχετικά με τα διαμερίσματα του σκληρού δίσκου (πίνακας κατατμήσεων). Όταν εκκινείται ο υπολογιστής, το MBR φορτώνεται στη μνήμη BIOS (Βασικό Σύστημα Εισόδου/Εξόδου), όπου του δίνεται ο έλεγχος της φόρτωσης του συστήματος, ή μάλλον, η επιλογή του διαμερίσματος που θα ενεργοποιηθεί. Αυτός είναι ο λόγος για τον οποίο σε ένα σύστημα Acer, για να χρησιμοποιήσετε το σύστημα ανάκτησης συστήματος (eRecovery Management) από ένα κρυφό διαμέρισμα, πρέπει να πατήσετε ταυτόχρονα τα πλήκτρα Alt-F10 κατά την εκκίνηση του υπολογιστή (δηλαδή, όταν εμφανίζεται το λογότυπο Acer, όταν το POST Πραγματοποιείται δοκιμή BIOS). Αυτός ο συνδυασμός πλήκτρων επιτρέπει στο MBR να επιλέξει το πρώτο διαμέρισμα (PQService) ως ενεργό διαμέρισμα. Όταν ο υπολογιστής εκκινείται κανονικά, το δεύτερο διαμέρισμα παραμένει το ενεργό διαμέρισμα, στο οποίο είναι εγκατεστημένο το λειτουργικό σύστημα του κύριου χρήστη. Στο παραπάνω σχήμα, προσπάθησα να απεικονίσω γραφικά την αρχή λειτουργίας του MBR, όπου μπορείτε να δείτε το πρώτο κρυφό διαμέρισμα "PQService", το δεύτερο διαμέρισμα με το εγκατεστημένο σύστημα "C:" και το τρίτο διαμέρισμα για τα δεδομένα χρήστη "D :".

Εδώ παρουσιάζονται δίσκοι με τρία και τέσσερα διαμερίσματα (στην τελευταία περίπτωση, υπάρχει ένα κρυφό τέταρτο διαμέρισμα με το Instant-On-Arcade "IOArcade", το οποίο σας επιτρέπει να φορτώσετε το κέλυφος πολυμέσων χωρίς να φορτώσετε το κύριο λειτουργικό σύστημα).

2. Ο συνδυασμός πλήκτρων Alt+F10 δεν λειτουργεί, τι πρέπει να κάνω;
Εάν, όταν πατάτε το συνδυασμό πλήκτρων Alt+F10, δεν μπορείτε να εκκινήσετε τον υπολογιστή από ένα κρυφό διαμέρισμα (μπείτε στο Acer eRecovery Management), τότε αυτό σημαίνει ότι θα αντικαταστήσετε το αρχικό Acer MBR με την κύρια εγγραφή εκκίνησης του λειτουργικού συστήματος που εγκαταστήσατε. Για να εγκαταστήσετε το αρχικό MBR (από την Acer) στα Windows XP, Vista, χρησιμοποιήστε αυτήν την ενημερωμένη έκδοση κώδικα (αποσυσκευάστε και εκτελέστε). Εάν τα Windows 7 ήταν προεγκατεστημένα, τότε μετά την αποσυσκευασία, εκτελέστε αυτήν την ενημέρωση κώδικα. Μετά την επανεκκίνηση του συστήματος, δοκιμάστε να πατήσετε ξανά Alt+F10.

3. Έχετε διαγράψει τα κρυφά διαμερίσματα και δεν σκοπεύετε να χρησιμοποιήσετε το Acer eRecovery Management. Τι να κάνετε σε αυτή την περίπτωση;
Αρχικά, πρέπει να απενεργοποιήσετε τη λειτουργία "D2D Recovery" στο BIOS. Μετά από αυτό, μπορείτε να εγκαταστήσετε μόνοι σας το λειτουργικό σύστημα ή να χρησιμοποιήσετε τους δίσκους ανάκτησης που συνοδεύουν τον υπολογιστή σας ή που φτιάξατε χρησιμοποιώντας το πρόγραμμα Acer eRecovery. Στην τελευταία περίπτωση, το πρόγραμμα ανάκτησης θα εντοπίσει αυτόματα την απουσία κρυφού διαμερίσματος και θα εγκαταστήσει το σύστημα στο πρώτο διαμέρισμα, από το οποίο θα εκκινηθεί στη συνέχεια το εγκατεστημένο λειτουργικό σύστημα.

Επιπλέον: για να επαναφέρετε το πρόγραμμα εκκίνησης των Windows XP (εάν είναι εγκατεστημένο αυτό το λειτουργικό σύστημα), χρησιμοποιήστε αυτό το βοηθητικό πρόγραμμα. Πρόσεχε! Εκτελέστε το αρχείο μόνο εάν έχετε εγκατεστημένα τα Windows XP. Εάν χρειάζεται να επαναφέρετε το πρόγραμμα εκκίνησης των Windows Vista, εκτελέστε αυτό το βοηθητικό πρόγραμμα.

Εάν θέλετε να επιδιορθώσετε το MBR σε περιβάλλον DOS, το βοηθητικό πρόγραμμα mbrwrwin.exe δεν θα λειτουργήσει. Χρησιμοποιήστε για αυτό το σκοπό.

Εκφράζουμε όλες τις ερωτήσεις σε αυτό το θέμα του φόρουμ:

Το υλικό ετοιμάστηκε ειδικά για http://site (συγγραφέας – Guryev Denis, GDenis)
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ [email προστατευμένο]
(τροποποίηση υλικού, αντιγραφή και διανομή μόνο με την άδεια του συγγραφέα)

Ένα από τα αποτελεσματικά βήματα για την αντιμετώπιση προβλημάτων εκκίνησης των Windows είναι να επαναφέρετε το αρχείο εκκίνησης των Windows 10/7/8.1 με νέο διαμέρισμα UEFI και GPT ή BIOS με διαμέρισμα MBR. Ένας από τους συνήθεις λόγους για τους οποίους μπορεί να καταστραφεί το Master Boot Record είναι λόγω μόλυνσης από κακόβουλο λογισμικό ή καταστροφής αρχείων σε αυτόν τον τομέα. Ένας ακατάλληλος τερματισμός λειτουργίας μπορεί επίσης να οδηγήσει σε καταστροφή της εγγραφής εκκίνησης (MBR). Μερικές φορές παρουσιάζονται προβλήματα όταν το Linux Grub είναι εγκατεστημένο και τα Windows δεν μπορούν να το εντοπίσουν. Σε ορισμένες περιπτώσεις ενδέχεται να λάβετε ένα σφάλμα Το Bootmgr λείπειή BCDόταν ανοίγετε τον υπολογιστή. Σε τέτοιες περιπτώσεις, μπορείτε να εκτελέσετε επιδιόρθωση του bootloader για να διορθώσετε αυτά τα ζητήματα.

Πώς να επαναφέρετε τον bootloader των Windows 10

Θα πρέπει να είστε προετοιμασμένοι επειδή ο υπολογιστής σας δεν θα εκκινήσει στην επιφάνεια εργασίας σας και οι πρόσθετες επιλογές εκκίνησης ενδέχεται να μην είναι αποτελεσματικές. Επομένως, χρειάζεστε Windows 10 με το ίδιο βάθος bit (x32 ή x64) που πρόκειται να επιδιορθώσετε, και κατά προτίμηση την ίδια έκδοση. Πρέπει να κάνετε εκκίνηση σε όλες τις ακόλουθες μεθόδους από μια μονάδα flash USB με δυνατότητα εκκίνησης για να εκκινήσετε τη γραμμή εντολών. Θυμηθείτε ότι μετά την επαναφορά του bootloader, ενδέχεται να εμφανιστούν ορισμένα σφάλματα και απλά πρέπει να κάνετε επανεκκίνηση του υπολογιστή μερικές φορές για να τον συνηθίσει ο bootloader.

Ξεκινήστε την εγκατάσταση των Windows 10 από μια μονάδα flash USB με δυνατότητα εκκίνησης και μεταβείτε στο σημείο εγκατάστασης. Στη συνέχεια, κάντε κλικ στο κάτω μέρος " Επαναφοράς συστήματος" για να μεταβείτε σε πρόσθετες επιλογές εκκίνησης.

Μέθοδος 1. Μόλις βρεθείτε στις επιλογές εκκίνησης για προχωρημένους, μεταβείτε στο " " > "Επιπλέον επιλογές" > και επιλέξτε "". Περιμένετε να ολοκληρωθεί η διαδικασία και ο φορτωτής εκκίνησης των Windows 10 πρέπει να ανακτηθεί.

Μέθοδος 2. Στις ίδιες σύνθετες επιλογές εκκίνησης, μεταβείτε στο " Αντιμετώπιση προβλημάτων" > "Επιπλέον επιλογές"> και τρέξε" Γραμμή εντολών".


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

  1. diskpart
  2. όγκος λίστας- εμφανίζει μια λίστα ενοτήτων.
  3. έξοδος- έξοδος από το εργαλείο για εργασία με δίσκους.

Στην περίπτωσή μου, το παρακάτω στιγμιότυπο οθόνης δείχνει ότι ο τοπικός δίσκος στον οποίο είναι εγκατεστημένα τα Windows 10 δεν είναι "C", αλλά "D". Πιθανότατα θα έχετε ένα "C", αλλά να είστε προσεκτικοί, πρέπει να καθορίσετε πού έχετε εγκαταστήσει το σύστημα. Αφού προσδιορίσετε με ποιο γράμμα βρίσκεται το σύστημά σας, πληκτρολογήστε την ακόλουθη εντολή για να επαναφέρετε το πρόγραμμα εκκίνησης των Windows 10:

  • bcdboot D:\windows

Μέθοδος 3. Εάν χρησιμοποιείτε σύστημα Windows με το νέο σχήμα διαμερισμάτων UEFI και GPT, τότε πρέπει να βρείτε ένα κρυφό διαμέρισμα με το σύστημα αρχείων FAT32 (είναι περίπου 90-300 MB). Εάν διαθέτετε κατάτμηση BIOS και MBR, τότε το σύστημα αρχείων θα είναι NTFS (περίπου 500 MB). Στην περίπτωσή μου είναι NTFS. Αυτό σημαίνει ότι εκκινούμε τη γραμμή εντολών μέσω μιας μονάδας flash USB με δυνατότητα εκκίνησης, όπως περιγράφεται παραπάνω, και γράφουμε τις εντολές:

  1. diskpart- εκκινεί ένα εργαλείο για εργασία με δίσκους.
  2. όγκος λίστας- εμφανίζει μια λίστα ενοτήτων.
  3. επιλέξτε τόμο 3- Επιλογή κρυμμένοςτόμους (στην περίπτωσή μου είναι NTFS, μπορεί να έχετε κρυφό FAT32).
  4. μορφή fs=ntfsή μορφή fs=fat32- μορφοποίηση του επιλεγμένου τόμου (ανάλογα με το ποιον έχετε).
  5. εκχωρώ γράμμα=Ε- Αναθέτουμε μια νέα επιστολή σε αυτό (ανέθεσα αυτό που ήταν ήδη).
  6. έξοδος- έξοδος από το εργαλείο διαχωρισμού.
  7. bcdboot D:\Windows /s E: /f ALL- αντιγράψτε τα αρχεία του bootloader. (Στην περίπτωσή μου, μονάδα δίσκου D: είναι ο τόμος στον οποίο βρίσκονται τα ίδια τα Windows, E: είναι το γράμμα που αντιστοιχίσαμε στο κρυφό διαμέρισμα).
  8. diskpart- εκκινεί ξανά το εργαλείο δίσκου.
  9. όγκος λίστας- εμφάνιση λίστας ενοτήτων.
  10. επιλέξτε τόμο 3- Ο αριθμός του κρυφού τόμου στον οποίο αντιστοιχίσαμε ένα γράμμα.
  11. αφαιρώ γράμμα=Ε- διαγράψτε το γράμμα για να μην εμφανίζεται το διαμέρισμα στο σύστημα όταν κάνουμε επανεκκίνηση.


Μέθοδος 4. Σε αυτή τη μέθοδο θα χρησιμοποιήσουμε το εργαλείο Bootrec.exe. Εισαγάγετε τις ακόλουθες εντολές τη μία μετά την άλλη στη γραμμή εντολών:

  1. bootrec /RebuildBcd
  2. bootrec /fixMbr
  3. bootrec/fixboot

Αποσυνδεθείτε και επανεκκινήστε το σύστημά σας.


Σε ορισμένες περιπτώσεις, θα χρειαστεί να εκτελέσετε μια πρόσθετη εντολή:

  • bootsect /nt60 SYSή bootsect /nt60 ALL

Σε αυτήν την ενότητα, θα σας δείξω πώς να γράψετε το δικό σας multiboot manager. Ο διαχειριστής πολλαπλών εκκινήσεων είναι ένας κωδικός που βρίσκεται στον τομέα εκκίνησης που, κατά την επιλογή του χρήστη, φορτώνει οποιοδήποτε από τα διάφορα λειτουργικά συστήματα που είναι εγκατεστημένα στον υπολογιστή. Κατά τη διάρκεια της συζήτησης θα εξοικειωθείτε με τη διακοπή INT 13h, τον πίνακα διαμερισμάτων κ.λπ. Ο τυπικός φορτωτής εκκίνησης που εγκαθιστούν τα περισσότερα λειτουργικά συστήματα από προεπιλογή είναι πολύ πρωτόγονος για να τον πάρουμε στα σοβαρά και οι προσαρμοσμένοι φορτωτές εκκίνησης από τρίτους προγραμματιστές είναι συνήθως πολύ βαρετοί και αναξιόπιστοι. Ας γράψουμε λοιπόν τα δικά μας! Ενώ το γράφουμε, θα γνωρίσουμε το Tao και το Zen του assembler, θα μάθουμε πώς να εντοπίζουμε προγράμματα χωρίς πρόγραμμα εντοπισμού σφαλμάτων και θα ρίξουμε μια πιο προσεκτική ματιά στις διεπαφές χαμηλού επιπέδου του σκληρού δίσκου.

Διεπαφή INT 13h

Μπορείτε να διαχειριστείτε δίσκους τόσο μέσω των θυρών I/O όσο και μέσω του BIOS. Οι θύρες είναι πολύ πιο ισχυρές και ενδιαφέρουσες, αλλά το BIOS είναι πολύ πιο εύκολο στον προγραμματισμό και υποστηρίζει επίσης μεγάλο αριθμό δίσκων διαφορετικού μεγέθους, αφαιρώντας από τα σχεδιαστικά χαρακτηριστικά κάθε συγκεκριμένου μοντέλου. Επομένως, θα ενεργήσουμε μέσω αυτού, ή ακριβέστερα, μέσω της διεπαφής διακοπής INT 13h.

Ο αριθμός συνάρτησης εισάγεται στον καταχωρητή AH. Στην περίπτωση ανάγνωσης ισούται με δύο. Το μητρώο AL είναι υπεύθυνο για τον αριθμό των τομέων που υποβάλλονται σε επεξεργασία. Εφόσον πρόκειται να διαβάσουμε έναν τομέα ανά λειτουργία, θα βάλουμε έναν εδώ. Ο καταχωρητής DH αποθηκεύει τον αριθμό κεφαλής και ο καταχωρητής DL τον αριθμό μονάδας (80h είναι ο πρώτος σκληρός δίσκος, 81h είναι ο δεύτερος κ.λπ.). Τα λιγότερο σημαντικά πέντε bit του καταχωρητή CL καθορίζουν τον αριθμό τομέα, τα υπόλοιπα bit του καταχωρητή CL και τα οκτώ bit του καταχωρητή CH καθορίζουν τον αριθμό του κυλίνδρου που θέλουμε να διαβάσουμε. Το ζεύγος καταχωρητών ES:BX δείχνει τη διεύθυνση του buffer προορισμού. Αυτό είναι όλο, στην πραγματικότητα. Μετά την εκτέλεση της εντολής INT 13h, τα δεδομένα ανάγνωσης θα καταλήξουν στο buffer και εάν παρουσιαστεί σφάλμα (για παράδειγμα, η κεφαλή «σκοντάψει» στον τομέα BAD), το BIOS θα ορίσει τη σημαία μεταφοράς και θα αναγκαζόμαστε είτε να προσπαθήσετε ξανά είτε να εμφανίσετε ένα θλιβερό μήνυμα στην οθόνη.

Ο κωδικός γλώσσας συγκρότησης για αυτό το πρόγραμμα εμφανίζεται στην Λίστα 5.6.

Λίστα 5.6. Κώδικας που διαβάζει τον τομέα εκκίνησης ή τον εκτεταμένο πίνακα διαμερισμάτων

MOV SI, 1BEh ; Μεταβείτε στην πρώτη ενότητα
MOV AX, CS ; Ρύθμιση ES
MOV ES, AX
MOV BX, buf ; Μετατόπιση buffer
...
read_all_partitions:
MOV AX, μπουμπούκι ; Διαβάστε 1 τομέα από το δίσκο

MOV DH, ; Αρχικός αριθμός κεφαλής
MOV CX, ; Τομέας εκκίνησης με κύλινδρο INT 13h
Σφάλμα JC ; Σφάλμα ανάγνωσης
Επεξεργαστείτε τον τομέα εκκίνησης ανάγνωσης ή τον εκτεταμένο πίνακα διαμερισμάτων
;===================================================================
;
CMP byte, 80h
JZ LOAD_BOOT ; Αυτός είναι ο τομέας εκκίνησης
; Μεταφέρουμε τον έλεγχο σε αυτό
CMP byte , 05h
JZ LOAD_CHS_EXT ; Αυτός είναι ένας εκτεταμένος πίνακας διαμερισμάτων
; σε μορφή CHS
CMP byte, 0Fh
JZ LOAD_LBA_EXT ; Αυτός είναι ένας εκτεταμένος πίνακας διαμερισμάτων
; σε μορφή LBA
ADD SI, 10h ; Ας προχωρήσουμε στην επόμενη ενότητα
CMP SI, 1EEh
JNA read_all_partitions ; Διαβάστε όλες τις ενότητες μία προς μία
...buf rb 512 ; 512 byte buffer

Η εγγραφή ενός τομέα σε λειτουργία CHS γίνεται σχεδόν ακριβώς με τον ίδιο τρόπο, μόνο που ο καταχωρητής AH δεν είναι 02h, αλλά 03h. Η λειτουργία LBA είναι πολύ πιο δύσκολο να καταλάβουμε, αλλά εμείς, όπως οι πραγματικοί χάκερ, σίγουρα θα την κατακτήσουμε.

Ο τομέας διαβάζεται από τη συνάρτηση 42h (AH = 42h). Ο καταχωρητής DL, όπως και πριν, περιέχει τον αριθμό μονάδας δίσκου, αλλά το ζεύγος καταχωρητή DS:SI οδηγεί στο πακέτο διεύθυνσης δίσκου, το οποίο είναι μια προηγμένη δομή της μορφής που περιγράφεται στον Πίνακα. 5.4.

Πίνακας 5.4. Μορφή πακέτου διεύθυνσης που χρησιμοποιείται για την ανάγνωση και εγγραφή τομέων σε λειτουργία LBA

Προκατάληψη Τύπος Περιγραφή
00h ΨΗΦΙΟΛΕΞΗ Μέγεθος συσκευασίας - 10h ή 18h
01 ώρα ΨΗΦΙΟΛΕΞΗ Το πεδίο είναι δεσμευμένο και πρέπει να είναι μηδέν
02h ΛΕΞΗ Πόσους τομείς να διαβάσετε
04h DWORD Διεύθυνση buffer προορισμού 32 bit σε μορφή seg:offs
08h QWORD Αριθμός τομέα έναρξης για ανάγνωση
10h QWORD Η επίπεδη διεύθυνση 64-bit του buffer προορισμού. Χρησιμοποιείται μόνο εάν η διεύθυνση 32-bit είναι FFFF:FFFF

Ο κώδικας που διαβάζει έναν τομέα σε λειτουργία LBA μοιάζει γενικά με αυτόν που εμφανίζεται στη Λίστα 5.7.

Λίστα 5.7. Κώδικας που διαβάζει έναν τομέα από έναν δίσκο σε λειτουργία LBA

MOV DI, 1BEh ; Μεταβείτε στην πρώτη ενότητα
MOV AX, CS ; Εγκαθιστώ...
MOV buf_seg ; ...τμήμα
MOV EAX, ; Μετατόπιση διαμερίσματος σε σχέση με
; αρχή της ενότητας
ΠΡΟΣΘΗΚΗ EAX, EDI ; Το EDI πρέπει να περιέχει τον αριθμό τομέα
; τρέχον MBR
MOV ;
...
read_all_partitions:
MOV AN, 42h; Ανάγνωση τομέα σε λειτουργία LBA
MOV DL, 80h ; Διαβάστε από τον πρώτο δίσκο
MOV SI, dap ; Μετατόπιση πακέτου διεύθυνσης INT 13h
Σφάλμα JC ; Σφάλμα ανάγνωσης
...
dap:
packet_size db 10h ; μέγεθος πακέτου 10h byte
δεσμευμένη db 00h ; "Stash" για μελλοντικές επεκτάσεις
N_SEC dw 01h ; Διαβάζοντας έναν τομέα
buf_seg dw 00h ; Το τμήμα προσωρινής αποθήκευσης προορισμού θα εισαχθεί εδώ
buf_off dw buf ; Μετατόπιση buffer προορισμού
X_SEC dd 0 ; Ο αριθμός τομέα προς ανάγνωση θα εισαχθεί εδώ
ηη 0 ; Πραγματικά αχρησιμοποίητη ουρά
; Διεύθυνση 64-bit
buf rb 512; 512 byte buffer

Η γραφή είναι παρόμοια με την ανάγνωση, μόνο που ο καταχωρητής AH περιέχει όχι 42h, αλλά 43h. Ο καταχωρητής AL καθορίζει τη λειτουργία: εάν το bit 0 είναι 1, το BIOS δεν γράφει, αλλά το μιμείται. Το Bit 2, όταν έχει οριστεί, επιτρέπει την εγγραφή ελέγχου. Εάν ο καταχωρητής AL είναι 0, εκτελείται η προεπιλεγμένη κανονική εγγραφή.

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

Δημιουργία του κώδικα του bootloader

Οι bootloaders προγραμματίζονται καλύτερα χρησιμοποιώντας FASM. Από την άποψη του assembler, ο φορτωτής είναι ένα συνηθισμένο δυαδικό αρχείο, το μέγιστο επιτρεπόμενο μέγεθος του οποίου είναι 1BBh (443) byte. Λίγο? Αλλά ας μη βιαζόμαστε να βγάλουμε συμπεράσματα. Κάθε διαμέρισμα ξεκινά πάντα από την αρχή του κυλίνδρου, πράγμα που σημαίνει ότι μεταξύ του τέλους του MBR και της αρχής του διαμερίσματος υπάρχουν τουλάχιστον n ελεύθεροι τομείς, όπου n == τομείς ανά κομμάτι . Σχεδόν όλοι οι σύγχρονοι σκληροί δίσκοι έχουν 64 τομείς ανά κομμάτι, που μας δίνει: 443 + 63*512 == 32.699 byte ή περίπου 32 KB. Ναι, μπορείτε ακόμη και να τοποθετήσετε μια γραφική διεπαφή με ένα ποντίκι σε αυτόν τον τόμο! Ωστόσο, δεν θα το κάνουμε αυτό. Οι πραγματικοί χάκερ εργάζονται σε λειτουργία κειμένου με τη γραμμή εντολών.

Όπως αναφέρθηκε ήδη, το BIOS φορτώνει το MBR στη διεύθυνση 7C00h, επομένως στην αρχή του κώδικα συναρμολόγησης θα πρέπει να υπάρχει μια οδηγία ORG 7C00h, καθώς και USE16, επειδή ο bootloader εκτελείται σε πραγματική λειτουργία 16-bit. Αργότερα, εάν το επιθυμείτε, μπορεί να μεταβεί σε προστατευμένη λειτουργία, αλλά αυτό θα συμβεί αργότερα. Ας μην μπούμε σε τέτοια ζούγκλα.

Έχοντας εντοπίσει ένα διαμέρισμα εκκίνησης (και αυτό μπορεί να ανιχνευθεί από τη σημαία 80h, που βρίσκεται σε μηδενική μετατόπιση από την αρχή του διαμερίσματος), ο φορτωτής εκκίνησης πρέπει να διαβάσει τον πρώτο τομέα αυτού του διαμερίσματος, τοποθετώντας τον στη μνήμη στη διεύθυνση 0000:7C00h, ότι είναι ακριβώς πάνω από το σώμα του. Αλλά αυτό δεν είναι πλέον καλό! Και για να μην προκληθεί συντριβή συστήματος, ο bootloader πρέπει να μετακινήσει το σώμα του σε άλλη διεύθυνση εκ των προτέρων, κάτι που συνήθως γίνεται με την εντολή MOVSB. Μπορείτε να αντιγράψετε σε οποιαδήποτε από τις διευθύνσεις μνήμης - από 0080:0067h έως 9FE00h. Είναι καλύτερα να μην αγγίζετε τη μνήμη που βρίσκεται κάτω από το 0080:0067h, καθώς τα διανύσματα διακοπής και οι μεταβλητές του συστήματος BIOS βρίσκονται εδώ και η περιοχή αντιστοίχισης ROM ξεκινά από A000h και πάνω, επομένως η μέγιστη προσβάσιμη διεύθυνση είναι A000h - 200h (μέγεθος τομέα) = = 9FE00h.

Μην ξεχνάτε ότι δεν πρέπει ποτέ να αγγίζετε τον καταχωρητή DL, καθώς περιέχει τον αριθμό της μονάδας εκκίνησης. Ορισμένοι φορτωτές εκκίνησης περιέχουν ένα σφάλμα που εκκινείται πάντα από τον πρώτο σκληρό δίσκο και αυτό συμβαίνει ενώ το BIOS σάς επιτρέπει να αλλάξετε τη σειρά εκκίνησης για περισσότερα από 10 χρόνια και επομένως κάθε μονάδα δίσκου μπορεί να είναι εκκινήσιμη.

Στην πραγματικότητα, το FASM είναι ο μόνος γνωστός σε μένα assembler που «χωνεύει» απευθείας την εντολή κλήσης μεγάλων αποστάσεων JMP 0000:7C00h. Όλοι οι άλλοι συναρμολογητές το κάνουν διαστρεβλωμένο κάπως έτσι: PUSH offset_of_target/PUSH segment_of_target/RETF . Εδώ σπρώχνουμε το τμήμα και τη μετατόπιση της διεύθυνσης στόχου στη στοίβα και εκτελούμε ένα μακρινό RETF που μας οδηγεί στην επιθυμητή τοποθεσία. Μπορείτε επίσης να χρησιμοποιήσετε αυτο-τροποποιούμενο κώδικα συναρμολογώντας την εντολή JMP FAR "μη αυτόματα" ή απλώς τοποθετώντας τη διεύθυνση προορισμού στο ίδιο τμήμα με τη διεύθυνση πηγής (για παράδειγμα, 0000:7C00h ? 0000:7E00h). Ωστόσο, αυτές οι προσεγγίσεις είναι κουραστικές και κουραστικές.

Γενικά, ο σκελετός του φορτωτή μας θα μοιάζει με αυτόν που φαίνεται στην Λίστα 5.8.

Λίστα 5.8. Σκελετός ενός απλού bootloader γραμμένο σε FASM

χρήση16
ORG 7C00h
CLD ; Αντιγραφή από αριστερά προς τα δεξιά
; (αύξηση διευθύνσεων)
MOV SI,7C00h ; Από πού να αντιγράψετε
MOV DI,7E00h ; Πού να αντιγράψετε
MOV CX, 200h ; Μήκος τομέα
REP MOVSB ​​· αντίγραφο
; // Επιλέξτε το διαμέρισμα που θέλουμε να φορτώσουμε,
; // διαβάστε το στη μνήμη στη διεύθυνση 0000:7C00h
; // (βλ. καταχωρίσεις 5.7 και 5.6)
JMP 0000:7C00h ; Μεταφορά ελέγχου στον τομέα εκκίνησης

Γράψτε το bootloader στην κύρια εγγραφή εκκίνησης

Κάτω από το παλιό MS-DOS, ήταν εύκολο να γράψετε το bootloader σας στο MBR. Για να το κάνετε αυτό, απλώς τραβήξτε τη διακοπή INT 13h, συνάρτηση 03h (εγγραφή τομέα). Αλλά στα Windows NT αυτή η τεχνική δεν λειτουργεί πλέον και πρέπει να καταφύγετε στη συνάρτηση CreateFile. Εάν αντί για το όνομα του αρχείου που θα ανοίξει καθορίσουμε το όνομα της συσκευής, για παράδειγμα, .PHYSICALDRIVE0 (ο πρώτος φυσικός δίσκος), μπορούμε ελεύθερα να διαβάσουμε και να γράψουμε τους τομείς του καλώντας το ReadFile και το WriteFile, αντίστοιχα. Σε αυτήν την περίπτωση, η σημαία dwCreationDisposition πρέπει να οριστεί στην τιμή OPEN_EXISTING και η σημαία dwShareMode στην τιμή FILE_SHARE_WRITE. Θα χρειαστείτε επίσης δικαιώματα διαχειριστή συστήματος, διαφορετικά τίποτα δεν θα λειτουργήσει.

Ένα ολοκληρωμένο παράδειγμα κλήσης CreateFile μοιάζει με τη Λίστα 5.9.

Λίστα 5.9. Άνοιγμα άμεσης πρόσβασης στον σκληρό δίσκο στα Windows NT

XOR EAX,EAX
PUSH EAX ; hTemplateFile
PUSH dword FILE_ATTRIBUTE_NORMAL ; dwFlagsAndAttributes
PUSH dword OPEN_EXISTING ; dwCreationDisposition
PUSH EAX ; lpSecurityAttributes
PUSH dword FILE_SHARE_WRITE ; dwShareMode
PUSH dword (GENERIC_WRITE Ή GENERIC_READ) ; dwDesiredAccess
PUSH DEVICE_NAME ; Ονομα της συσκευής
ΚΛΗΣΗ CreateFile ; Άνοιγμα της συσκευής
INC ΕΑΧ
ΔΟΚΙΜΗ EAX,EAX
Σφάλμα JZ
ΔΕΚΕΜΒΡΙΟΥ ΕΑΞ
...
DEVICE_NAME db ".PHYSICALDRIVE0",0
BUF RB 512 ; Ρυθμιστής

Αφού ανοίξαμε τον φυσικό δίσκο και βεβαιωθήκαμε ότι αυτή η λειτουργία ήταν επιτυχής, πρέπει να διαβάσουμε τον αρχικό τομέα MBR στο buffer, να αντικαταστήσουμε τα πρώτα 1 BBh byte, χωρίς να αγγίξουμε σε καμία περίπτωση τον πίνακα διαμερισμάτων και την υπογραφή 55 ωρών AAh (δεν θέλουμε ο δίσκος να σταματήσει την εκκίνηση, σωστά;). Τώρα το μόνο που μένει είναι να γράψετε τον ενημερωμένο κώδικα MBR στη θέση του και να κλείσετε την περιγραφή της συσκευής. Μετά από επανεκκίνηση, όλες οι αλλαγές θα τεθούν σε ισχύ.

Σημείωση

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

Κάτω από τα Windows 9 ΧΦυσικά, το τέχνασμα CreateFile δεν λειτουργεί. Αλλά εκεί μπορείτε να χρησιμοποιήσετε προσομοίωση διακοπής από το DMPI ή να χρησιμοποιήσετε το πρόγραμμα οδήγησης ASPI. Και οι δύο μέθοδοι περιγράφηκαν λεπτομερώς στο βιβλίο μου «Τεχνικές για την προστασία των CD από την αντιγραφή». Ωστόσο, αν και μιλάει για CD και όχι για HDD, οι σκληροί δίσκοι προγραμματίζονται με τον ίδιο τρόπο.

Πριν γράψετε το δικό σας bootloader, συνιστάται να μελετήσετε τους υπάρχοντες μη τυπικούς bootloaders. Όλοι οι bootloaders που αναφέρονται παρακάτω διανέμονται υπό την άδεια GPL ή BSD, δηλαδή χωρίς περιορισμούς.

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

Το Mbr.asm είναι ένας εξαιρετικά απλός αλλά πλήρως λειτουργικός bootloader με υποστήριξη για κατατμήσεις άνω των 8 GB.

Το Bootasm είναι ένας εξαιρετικός διαχειριστής πολλαπλών εκκινήσεων με λεπτομερή σχόλια, μεταβαίνει σε προστατευμένη λειτουργία, μπορεί να εκκινήσει από δισκέτα, CD, zip disk, σκληρό δίσκο κ.λπ. Υποστηρίζει κατατμήσεις άνω των 8 GB, εμφανίζει μια ένδειξη φόρτωσης και κάνει πολλά άλλα χρήσιμα πράγματα που δεν θα ήταν κακό να μάθουμε.

Εντοπισμός σφαλμάτων κώδικα εκκίνησης

Ο εντοπισμός σφαλμάτων του κώδικα εκκίνησης είναι απίστευτα δύσκολος. Ο bootloader αποκτά τον έλεγχο πολύ πριν από την εκκίνηση του λειτουργικού συστήματος, όταν δεν εκτελούνται ακόμη προγράμματα εντοπισμού σφαλμάτων. Πριν από μερικά χρόνια, αυτό ήταν ένα τεράστιο πρόβλημα και κατά την ανάπτυξη «εξελιγμένων» φορτωτών, έπρεπε είτε να δημιουργήσετε ένα ενσωματωμένο μίνι-διορθωτής σφαλμάτων σε αυτούς είτε να αναζητήσετε σφάλματα χειροκίνητα, μελετώντας τις καταχωρίσεις με ένα μολύβι στο χέρι σας. Με την εμφάνιση των εξομοιωτών, όλα άλλαξαν. Απλώς εκτελέστε έναν εξομοιωτή όπως το BOCHS (Εικ. 5.5) και μπορείτε να διορθώσετε το bootloader όπως οποιοδήποτε άλλο πρόγραμμα!


Ρύζι. 5.5. Εμφάνιση του εξομοιωτή BOCHS στη διαδικασία εντοπισμού σφαλμάτων στον τομέα εκκίνησης

Ο προγραμματισμός του bootloader είναι ένας από τους λίγους τομείς στους οποίους η χρήση του assembler είναι πραγματικά δικαιολογημένη. Οι γλώσσες υψηλού επιπέδου είναι πολύ αφηρημένες από το υλικό για αυτό. Επιπλέον, δεν είναι αρκετά ευέλικτοι. Αυτός είναι ο λόγος για τον οποίο οι χάκερ λατρεύουν να ασχολούνται με τους bootloaders, προσθέτοντας πολλές νέες δυνατότητες, όπως αυτόματη εκκίνηση από μονάδες CD-ROM ή SCSI, προστασία από ιούς, προστασία με κωδικό πρόσβασης με κρυπτογράφηση δεδομένων κ.λπ. Υπάρχει πραγματικά χώρος για επέκταση εδώ, και υπάρχει κάτι για να επιδείξετε όλες τις δυνατότητές σας. Για περαιτέρω ανάγνωση, θα συνιστούσα μερικές πολύ ενδιαφέρουσες πηγές. Εδώ είναι:

? Εγγραφές εκκίνησης MBR και OS- πολύ ενδιαφέρον υλικό για το MBR (στα αγγλικά): http://thestarman.narod.ru/asm/mbr/MBR_in_detail.htm;

? ΜΠΟΧΣ- ένας εξαιρετικός εξομοιωτής με ενσωματωμένο πρόγραμμα εντοπισμού σφαλμάτων, ο οποίος απλοποιεί σημαντικά τη διαδικασία "θέση σε λειτουργία" τομέων εκκίνησης. Δωρεάν, διανέμεται με πηγαίο κώδικα: http://bochs.sourceforge.net;

? http://www.koders.com(Εικ. 5.6) - μια εξαιρετική μηχανή αναζήτησης που στοχεύει στην αναζήτηση πηγαίων κωδίκων· χρησιμοποιώντας τη λέξη-κλειδί MBR επιστρέφει έναν τεράστιο αριθμό bootloaders για κάθε γούστο.


Ρύζι. 5.6. Αναζητήστε πηγές εκκίνησης MBR στον ιστότοπο Koders

? Λίστα διακοπής Ralph Brown(Εικ. 5.7) - η περίφημη «Λίστα Διακοπών» του Ραλφ Μπράουν, που περιγράφει όλες τις διακοπές, συμπεριλαμβανομένων εκείνων που δεν έχουν έγγραφα (στα αγγλικά): http://www.pobox.com/~ralf;


Ρύζι. 5.7. Δείτε τη θρυλική "Interrupt List" του Ralph Brown

Το OpenBIOS είναι ένα έργο "Open BIOS" που διανέμεται σε πηγαίο κώδικα. Βοηθά στην κατανόηση ορισμένων μη προφανών πτυχών της επεξεργασίας του συστήματος εκκίνησης: http://www.openbios.info/docs/index.html.

Η μορφοποίηση των σκληρών δίσκων γίνεται σε τρία βήματα:

    μορφοποίηση χαμηλού επιπέδου (φυσική διάταξη του δίσκου σε κυλίνδρους, κομμάτια, τομείς).

    χωρισμός του δίσκου σε διαμερίσματα (λογικές συσκευές):

    μορφοποίηση υψηλού επιπέδου (λογική) κάθε ενότητας.

Στο στάδιο μορφοποίησης χαμηλού επιπέδου, ο επεξεργαστής, εκτελώντας το πρόγραμμα μορφοποίησης, στέλνει εναλλάξ την εντολή «Αναζήτηση» στον ελεγκτή σκληρού δίσκου πρώτα για να εγκαταστήσει τις κεφαλές της μονάδας στον επιθυμητό κύλινδρο και μετά στέλνει την εντολή «Μορφοποίηση κομματιού». Κατά την εκτέλεση της εντολής «Μορφοποίηση κομματιού», ο ελεγκτής σκληρού δίσκου, έχοντας λάβει μια ώθηση «Ευρετήριο» (αρχή του κομματιού) από τη μονάδα, καταγράφει τη μορφή υπηρεσίας του κομματιού, η οποία το χωρίζει σε τομείς. Κάθε τομέας περιέχει ένα μπλοκ δεδομένων (512 byte), πλαισιωμένο από τη μορφή υπηρεσίας του τομέα (το περιεχόμενο και το μέγεθος της μορφής υπηρεσίας καθορίζονται από τον συγκεκριμένο προγραμματιστή της συσκευής). Η μορφή υπηρεσίας των κομματιών και των τομέων απαιτείται από τον ελεγκτή σκληρού δίσκου κατά την εκτέλεση εντολών. Διαβάζοντας και αποκρυπτογραφώντας τα πεδία της μορφής υπηρεσίας, ο ελεγκτής βρίσκει τον απαιτούμενο κύλινδρο, επιφάνεια, τομέα και μπλοκ δεδομένων μέσα στον τομέα στο δίσκο. Στα επόμενα στάδια μορφοποίησης, οι πληροφορίες συστήματος εγγράφονται σε μπλοκ δεδομένων ορισμένων τομέων, γεγονός που εξασφαλίζει την οργάνωση των κατατμήσεων στο δίσκο, την αυτόματη φόρτωση του λειτουργικού συστήματος και την υποστήριξη του συστήματος αρχείων στο δίσκο.

Στο στάδιο της κατάτμησης του δίσκου σε διαμερίσματα, στο μπλοκ δεδομένων του πρώτου φυσικού τομέα του δίσκου (κύλινδρος 0, επιφάνεια 0, τομέας 1), σχηματίζεται ένας πίνακας κατατμήσεων από τη διεύθυνση 1BEh, που αποτελείται από 4 γραμμές των δεκαέξι byte. Συνήθως, οι πληροφορίες συστήματος που εγγράφονται στο μπλοκ δεδομένων αυτού του τομέα κατά τη διαδικασία μορφοποίησης ονομάζονται Master Boot Record (MBR).

Από την αρχή του μπλοκ δεδομένων αυτού του τομέα υπάρχει ένα πρόγραμμα (IPL 1). Ο επεξεργαστής μεταβαίνει στο πρόγραμμα IPL 1 μετά την επιτυχή ολοκλήρωση του POST και του προγράμματος «Bootloader», εκτελώντας το οποίο ο επεξεργαστής φορτώνει από το δίσκο στη μνήμη MBR και μεταφέρει τον έλεγχο στην αρχή του MBR (στο πρόγραμμα IPL 1) , συνεχίζοντας τις ενέργειες που οδηγούν στη φόρτωση του λειτουργικού συστήματος. Το πρόγραμμα IPL 1 (boot loader) που βρίσκεται στο MBR εξετάζει τις σειρές του πίνακα κατατμήσεων αναζητώντας ένα ενεργό διαμέρισμα από το οποίο μπορεί να εκκινηθεί το λειτουργικό σύστημα. Εάν δεν υπάρχει ενεργό διαμέρισμα στον πίνακα διαμερισμάτων, εμφανίζεται ένα μήνυμα σφάλματος. Εάν τουλάχιστον ένα διαμέρισμα περιέχει εσφαλμένη ετικέτα ή εάν περισσότερα από ένα διαμερίσματα έχουν επισημανθεί ως ενεργά, εμφανίζεται το μήνυμα σφάλματος Μη έγκυρος πίνακας διαμερισμάτων και η διαδικασία εκκίνησης διακόπτεται. Εάν εντοπιστεί ένα ενεργό διαμέρισμα, αναλύεται ο τομέας εκκίνησης αυτού του διαμερίσματος. Εάν βρεθεί μόνο ένα ενεργό διαμέρισμα, τότε τα περιεχόμενα του μπλοκ δεδομένων του τομέα εκκίνησης (BOOT) διαβάζονται στη μνήμη στη διεύθυνση 0000:7C00 και ο έλεγχος μεταφέρεται σε αυτήν τη διεύθυνση, εάν ο τομέας εκκίνησης του ενεργού διαμερίσματος δεν διαβάζεται Σε πέντε προσπάθειες, εμφανίζεται ένα μήνυμα σφάλματος: Σφάλμα κατά τη φόρτωση του λειτουργικού συστήματος και το σύστημα σταματά. ελέγχεται η υπογραφή του τομέα εκκίνησης ανάγνωσης του ενεργού διαμερίσματος και εάν τα δύο τελευταία του byte δεν αντιστοιχούν στην υπογραφή 55AAh, εμφανίζεται ένα μήνυμα σφάλματος: Λείπει το λειτουργικό σύστημα και το σύστημα σταματά). Ο επεξεργαστής διαβάζει την εντολή JMP στη διεύθυνση 0000:7С00, εκτελώντας την, μεταφέρει τον έλεγχο στην αρχή του προγράμματος IPL 2, το οποίο ελέγχει εάν το διαμέρισμα είναι πραγματικά ενεργό: το IPL 2 ελέγχει τα ονόματα και τις επεκτάσεις δύο αρχείων στον ριζικό κατάλογο - αυτά θα πρέπει να είναι τα αρχεία IO.SYS και MSDOS.SYS (NTLDR για Windows NT), τα φορτώνει και. και τα λοιπά.

Τα Windows 9x βασίζονται σε πολλές από τις ίδιες έννοιες με το DOS, αλλά προχωρούν αυτές τις έννοιες περαιτέρω και λογικά. Τα ίδια δύο αρχεία συστήματος IO.SYS και MSDOS.SYS, αλλά τώρα ολόκληρο το πρόγραμμα συστήματος βρίσκεται στο IO.SYS και το δεύτερο αρχείο MSDOS.SYS περιέχει κείμενο ASCII με ρυθμίσεις που ελέγχουν τη συμπεριφορά του συστήματος κατά την εκκίνηση. Ισοδύναμα των προγραμμάτων Himem.sys. Τα Ifshlp.sys και Setver.exe φορτώνονται αυτόματα από το πρόγραμμα IO.SYS κατά την εκκίνηση του συστήματος. Όπως και πριν, μπορείτε να χρησιμοποιήσετε τα αρχεία Config.sys και Autoexec.bat για τη φόρτωση προγραμμάτων οδήγησης και μόνιμων προγραμμάτων στη μνήμη, αλλά τα προγράμματα οδήγησης συσκευών 32-bit, τα οποία έχουν σχεδιαστεί ειδικά για τα Windows 9x, φορτώνονται τώρα από καταχωρίσεις στο μητρώο συστήματος. Όταν ολοκληρωθεί όλη η προκαταρκτική εργασία, εκκινείται το αρχείο Win.com και εκκινείται το Windows 9x και παρέχει τις δυνατότητές του μέσω ενός γραφικού μενού.

Το μητρώο συστήματος είναι μια βάση δεδομένων στην οποία τα Windows 9x αποθηκεύουν πληροφορίες σχετικά με όλες τις ρυθμίσεις, τις ρυθμίσεις παραμέτρων και τις παραμέτρους που είναι απαραίτητες για τη λειτουργία των δικών τους λειτουργικών μονάδων και μεμονωμένων εφαρμογών. Το μητρώο συστήματος εκτελεί τις λειτουργίες των αρχείων ini Config.sys, Autoexec.bat και Windows 3.1 σε συνδυασμό. Στο δίσκο του υπολογιστή σας, το μητρώο αποθηκεύεται σε δύο ξεχωριστά αρχεία: System.dat και User.dat. Το πρώτο από αυτά περιέχει όλα τα είδη ρυθμίσεων υλικού και το δεύτερο περιέχει δεδομένα σχετικά με τους χρήστες που εργάζονται στο σύστημα και τις διαμορφώσεις που χρησιμοποιούν. Κάθε χρήστης μπορεί να έχει το δικό του αρχείο User.dat, δηλ. το δικό του περιβάλλον εργασίας, το οποίο προσαρμόζει στα γούστα και τις ανάγκες του. Το μητρώο συστήματος μπορεί να εισαχθεί, να εξαχθεί, καθώς και να δημιουργηθούν αντίγραφα ασφαλείας και, χρησιμοποιώντας τα, να αποκατασταθούν τα αποθηκευμένα δεδομένα - με μια λέξη, αυτός είναι ένας αρκετά ισχυρός μηχανισμός για τη διαχείριση των παραμέτρων του συστήματος και την προστασία τους από απώλεια και ζημιά.

Πίνακας 3. Εξαρτήματα MBR

Περιοχή

Περιγραφή

Πρόγραμμα IPL 1 (το πρόγραμμα bootloader καταλαμβάνει την περιοχή από τη διεύθυνση 00h έως 1BEh)

Κωδικός προγράμματος Μηνύματα σφάλματος:

    Μη έγκυρος πίνακας διαμερισμάτων (λανθασμένος πίνακας διαμερισμάτων).

    Σφάλμα κατά τη φόρτωση του λειτουργικού συστήματος (σφάλμα κατά τη φόρτωση του λειτουργικού συστήματος)

    Λείπει λειτουργικό σύστημα (χωρίς λειτουργικό σύστημα).

Οι πίνακες διαμερισμάτων (4 σειρές των 16 bytes η καθεμία = 64 bytes) καταλαμβάνουν τη ζώνη από τις διευθύνσεις 1BEh έως 1FDh

1 γραμμή (16 byte):

    Σημαία εκκίνησης (80h - ενεργό / 00h - κανονικό διαμέρισμα) - 1 byte

    Αρχικός φυσικός τομέας του διαμερίσματος (κεφαλή, τομέας και κύλινδρος) - 3 byte

    Τύπος διαμερίσματος -1 byte

    Τελικός φυσικός τομέας του διαμερίσματος (κεφαλή, τομέας και κύλινδρος) - 3 byte

    Αριθμός τομέων που προηγούνται της ενότητας - 4 byte

    Ο συνολικός αριθμός τομέων σε αυτήν την ενότητα είναι 4 byte

Τα τελευταία 2 byte στο μπλοκ δεδομένων τομέα από τις διευθύνσεις 1FE έως 1FF - Τελική υπογραφή

55AA - σηματοδοτεί το τέλος του MBR. Ελεγμένο από το πρόγραμμα bootloader

Η περιοχή του MBR που άλλαξε στο FAT32 είναι ο Πίνακας Διαμερισμάτων. Όπως και πριν, αποτελείται από τέσσερις εγγραφές 16 byte. Κάθε καταχώρηση ορίζει μια ενότητα. Το FAT32 παρουσίασε 2 νέους τύπους κατατμήσεων DOS32 (0B) και DOS32X (OS).

Η επιλογή ενός από τα πρότυπα GPT ή MBR μπορεί να είναι αρκετά απλή για τον ιδιοκτήτη ενός νέου υπολογιστή με μεγάλο σκληρό δίσκο και σύγχρονη διεπαφή UEFI.

Τέτοιες παράμετροι απαιτούν μια μετάβαση σε ένα πιο σύγχρονο πρότυπο.

Ενώ, εάν έχετε περισσότερους από έναν Η/Υ, η επιλογή μπορεί να γίνει υπέρ ενός σχεδόν ξεπερασμένου MBR - και μπορεί να αποδειχθεί η μόνη επιλογή.

Περιεχόμενα:

Τι σημαίνουν αυτές οι συντομογραφίες;

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

Πρότυπο MBR, το οποίο σημαίνει "κύριο ρεκόρ εκκίνησης", αντιπροσωπεύει παλιός τρόπος αποθήκευσης δεδομένων, το GPT (ή "GUID Partition Table") είναι νέο.

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

Αν και το MBR θεωρείται αξιόπιστο και απλό - και σπάνια απαιτείται ανάκτηση.

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

Εάν ήταν απαραίτητο να δημιουργηθούν περισσότερα από 4 διαμερίσματα, ήταν απαραίτητο να χρησιμοποιηθεί μάλλον πολύπλοκη τεχνολογία EBR.

Το δεύτερο πρόβλημα που σχετίζεται με την αύξηση του όγκου των σκληρών δίσκων είναι η αδυναμία εργασίας με διαμερίσματα μεγαλύτερα από 2,2 TB.

Πλεονεκτήματα και μειονεκτήματα του νέου προτύπου

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

Κάθε τμήμα έχει το δικό του μοναδικό αναγνωριστικό– μια πολύ μεγάλη σειρά χαρακτήρων. Το πλεονέκτημα του GPT σε σύγκριση με το ξεπερασμένο πρότυπο μπορεί να ονομαστεί:

  • χωρίς περιορισμούς στον όγκο του τμήματος.Πιο συγκεκριμένα, η μέγιστη τιμή εξακολουθεί να υπάρχει - αλλά δεν θα είναι δυνατό να επιτευχθεί νωρίτερα από αρκετές δεκαετίες.
  • απεριόριστο αριθμό τμημάτων– έως 264 γενικά, έως 128 για λειτουργικό σύστημα Windows.

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

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

Η ζημιά σε πληροφορίες οδηγεί σε άμεση προσπάθεια επαναφοράς τους.

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

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

Συμβατότητα

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

Τα συστήματα Windows εκκινούν από δίσκους που έχουν σήμανση με χρήση τεχνολογίας GPT μόνο σε συσκευές που υποστηρίζουν τη διεπαφή UEFI - δηλαδή σε φορητούς υπολογιστές και υπολογιστές με Windows από Vista έως 10.

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

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

Θα πρέπει να γνωρίζετε:Το πρότυπο GPT υποστηρίζεται επίσης από άλλα λειτουργικά συστήματα, συμπεριλαμβανομένου του Linux. Και στους υπολογιστές της Apple, αυτή η τεχνολογία αντικατέστησε τον παλιό πίνακα διαμερισμάτων APT.


Σύγκριση προτύπων

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

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

Τραπέζι 1. Συγκριτικά χαρακτηριστικά MBR και GPT
Πρότυπο MBR GPT
Εργασία με υλικολογισμικό Με BIOS και UEFIΜόνο με UEFI
Υποστήριξη Windows Όλες οι εκδόσεις, ξεκινώντας από την πρώτη κιόλαςΜόνο εκδόσεις 64-bit των Windows 7 και Vista, όλες οι παραλλαγές των Windows 8 και 10
Διάβασε και γράψε Οποιεσδήποτε πλατφόρμεςΌλα τα λειτουργικά συστήματα Windows από Vista και νεότερη έκδοση + XP Professional 64-bit
Αριθμός κατατμήσεων σε έναν δίσκο Όχι περισσότερο από 4Έως 264
Μέγιστο μέγεθος διαμερίσματος 2,2 TB9,4 x 109 TB
Ενσωματωμένος multi-booter ΑπώνΤρώω

Προβλήματα εργασίας με το νέο πρότυπο και οι λύσεις τους

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

Η κατάσταση μπορεί να διορθωθεί μεταβαίνοντας στο, το οποίο δεν επιτρέπει την εργασία με το νέο πρότυπο - και όταν προσπαθείτε να εκκινήσετε, εμφανίζεται ένα σφάλμα στην οθόνη που υποδεικνύει την παρουσία ενός στυλ διαμερίσματος GPT.

Η επίλυση του προβλήματος δεν είναι τόσο δύσκολη - για να το κάνετε αυτό θα χρειαστεί να πάρετε έναν κανονικό δίσκο εκκίνησης με λειτουργικό σύστημα Windows και κάντε το εξής:

  • Ξεκινήστε την εκκίνηση από το δίσκο;
  • φτάσετε εκεί μέχρι να επιλεγεί η ενότητα, όπου εμφανίζεται το πρόβλημα.
  • Εκκίνηση κονσόλας(πατήστε ταυτόχρονα Shift και F10).
  • Ξεκίναμε ένα ειδικό βοηθητικό πρόγραμμα εισάγοντας την εντολή diskpart.

Μετά την εκκίνηση του προγράμματος, θα πρέπει να πληκτρολογήσετε "list disk", το οποίο θα οδηγήσει στην εμφάνιση μιας λίστας αριθμημένων δίσκων στην οθόνη.

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

Για να μετατραπεί ένας δίσκος GPT σε ξεπερασμένη μορφή, θα πρέπει να εισαγάγετε την εντολή convert mbr, η οποία σας επιτρέπει να εργαστείτε με το δίσκο και να εγκαταστήσετε οποιαδήποτε πλατφόρμα σε αυτόν.

Το ίδιο βοηθητικό πρόγραμμα παρέχει εργασία με κατατμήσεις.

Για παράδειγμα, εισάγοντας την εντολή "create partition main size=X"δημιουργεί ένα διαμέρισμα μεγέθους X GB, “format fs=ntfs label=”System” quick”εκτελεί μορφοποίηση σε NTFS και το "active" επιτρέπει στο διαμέρισμα να γίνει ενεργό.

συμπεράσματα

Όταν αποφασίζετε ποιο πρότυπο θα χρησιμοποιήσετε, GPT ή MBR, θα πρέπει να καθορίσετε ποια διεπαφή εκκίνησης θα χρησιμοποιηθεί και τι μέγεθος έχει ο σκληρός δίσκος στον υπολογιστή.

Εάν διαθέτετε υλικολογισμικό BIOS, η εργασία με το GPT θα είναι αδύνατη. Για έναν πιο σύγχρονο υπολογιστή εξοπλισμένο με, αντίθετα, δεν πρέπει να επιλέξετε MBR.

Οι σχετικά νέες μητρικές που κυκλοφόρησαν τα τελευταία χρόνια έχουν ήδη εγκατεστημένη διεπαφή UEFI, πράγμα που σημαίνει ότι δεν θα υπάρχουν προβλήματα με το GPT.

Ωστόσο, μεγέθη δίσκου αυξηθεί ελαφρώς– Λίγοι αγοραστές επιλέγουν υπολογιστές με σκληρό δίσκο μεγαλύτερο από 2 TB και, επιπλέον, χρειάζονται διαμερίσματα 2,2 terabyte.

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

βίντεο: