GPT
Mis asi on GPT
GPT (ingl.k. GUID Partition Table) on partitsioonitabel mis on osa Intel'i arendatavast arvuti alglaaduri projektist nimega EFI (ingl.k. Extensible Firmware Interface). GPT on üldiselt uuendus MBR ehk Master boot record'i partitsioonitabelile ja erineb põhiliselt sellepoolest, et võimaldab hoida üle 2 terabaidiseid partitsioone andmekandjal (HDD, SSD, virtuaalmasina andmekandja).
2011 aasta seisuga, enamus tänapäevaseid operatsioonisüsteeme toetavad GPT partitsioonitabeleid.
Ajalugu
Lailalt levinud MBR partitsiooni skeem, mis oli üks viimastest IBM’poolt 1980 aastate alguses arendatud PC standardidest mis leiab kasutust senimaani, omab limiteeringuid mis piiravad kaasaegse riistvara kasutamist. Üks põhipiirang on suurus mida kasutatakse plokkide aadresside ja koguste salvestamiseks kuni 32 bitti. Kettastel sektori suurusega 512 baiti , MBR partitsiooni tabel lubab luua partitsioonid maksimaalse suurusega kuni 2.2TB (232 x 512 baiti). Seetõttu 1990 aastate lõpus Intel arendas uue partitsiooni tabeli standardi, mis lõpuks sai UEFI osaks. Alates 2010 aastast GPT moodustab alamgrupi UEFI spetsifikatisoonis. GPT allokeerib 64 bitti, mis 512-baitise sektori suuresega ketta puhul lubab maksmiaalse partitsiooni suurust kuni 9.4ZB.
Omadused
MBR’i kasutatavas skeemis primaarsete partitsioonide informatsioon on salvestatud MBR’is, samas BIOS põhinevates süsteemides MBR’s ka salvestatakse binaarkood mis käivitub BOOT protsessi – identifitseerimine ja aktiivse partitsiooni käivitamine(bootloader). GPT’s ketta esimene sektor on reserveeritud MBR’i jaoks selleks, et oleks võimalik bootida BIOS põhineva süsteemi GPT kettalt, aga sellisel juhul bootloader ja OS peaksid olema teadlikud, et ketas kasutab GPT`d. Sõltumata sektorite suurusest GPT päismiku algus asub ketta teises loogilises plokis (LBA1). Täpselt nagu uuemad MBR’i versioonid, GPT kasutab Logical Block Addressing ketta adresseerimiseks (vanemas MBR’s kasutatakse adresseerimiseks CHS – cylinder-head-sector tehnoloogia). Kaitsev MBR (ing. Protective MBR) asetatakse plokis LBA0 ja GPT päismik blokis LBA1. GPT päises salvestatud osutaja (ingl. pointer), mis näitab kus algab partitsioonide tabel, on tavaliselt LBA2. Partitsioonide arv standardi poolt ei ole piiratud ja sõltub OS’st (tehniliselt piiratud arvuga 264). Näiteks MS Windows operatsiooni süsteemide partitisoonide tabelis reserveeritakse ruumi 128 kirje jaoks (iga kirje 128 baitise suurusega). GNU/Linux tuum (kernel) toetab 256 partitsiooni. Selliselt Windows’is partitsiooni tabeli jaoks reserveeritakse 16 384 baiti (32 sektorit suurusega 512 baiti), millega esimeseks kasutatavaks sektoriks kettal saab plokk LBA34.
GPT üks tähtsamatest omadustest on dubleerimine. GPT päismik ja partitisoonide tabel on kirjutatud ketta alguses kui ka ketta lõpus.
Teoreetiliselt GPT lubab moodustada partitsioonid suurusega kuni 9,4 ZB ((9,4 × 1021 bait)(sektori suurusega 512 baiti. Kui sektori suurus on suurem kui 512 siis partitsiooni suurus võib olla suurem), kuid MBR saab töötada ainult 2,2 TB (2,2 x 1012 bait).
GPT annab võimalust partitisoonidele juurde määrata GUID (globally unique identifier), nimed ja atribuudid - sõltumata sisestest failisüsteemide UUID’st ja tähemärkidest. Tänu unicode toetusele, partitsioonid saab nimetada erinevates keeltes ja grupeerida kaustadesse.
Kaitsev MBR
Põhieesmärk, miks MBR on asetatud ketta algusesse on puhtalt kaitsev. MBR`i orienteeritud kettahalduse utiliidid võivad GPT kettaid mitte tunnistada ja halvemal juhul GPT ketta üle kirjutada. Selle probleemi vältimiseks MBR’is määratakse kettal ühe suure partitsiooni olemasolu mis on kogu GPT ketta ulatuses. Süsteemi identifikaator (System ID) väärtuseks selle partitisooni jaoks pannakse 0xEE, mis teavitab EFI’t, et GPT on kasutusel. Seetõttu EFI ignoreerib MBR`i. Mõned 32-bitised operatsiooni süsteemid, näiteks Windows XP, mis ei ole loodud GPT ketaste lugemiseks, siiski tunnistavad selle süsteemi ID (system ID) ja näitavad ketast nagu ligipääsmatu GPT ketas. Veelgi vanemad OS’id tavaliselt näitavad ketast ainukese tundmatu tüübi partitsiooniga, kus ei ole vabu ruumi ja reeglina ei lubata selliseid kettaid muuta. Partitsiooni kustutamine on võimalik ainult juhul, kui kasutaja seda algatab kästisi ja kinnitab valiku. Sellisel moel takistatakse juhuslik GPT ketta kustutamine.
Hybrid MBR (LBA 0 + GPT)
Operatsiooni süsteemides mis toetavad GPT alglaadimist mitte läbi EFI vaid BIOS kaudu, esimene sektor samuti kasutatakse bootloader’i hoiustamiseks aga see on kohandatud GPT partitsioonide tunnistamiseks.
Partitsioonide tabeli päis
Partitsioonide tabeli päis näitab loogilised plokid kettal, mis on kasutatavad lõppkasutaja poolt. Samuti see näitab arvu ja suurust partitsioonide kirjede jaoks, millest koosneb partitsiooni tabel. Vaikimisi Microsoft Windows’is reserveeritakse 128 kirjet. Selliselt saab luua 128 partitsiooni ühe ketta peale. Päismik sisaldab ketta GUID`i (Globally Unique Identifier). Päismik sisaldab ka oma suurust ja asukohta (alati plokk LBA1), samuti sekundaarse päismiku suurust ja asukohta (alati ketta viimased sektorid). Oluline on ka see, et päismikus on salvestatud CRC32 kontrollsummasid päismiku ja partitsiooni tabeli jaoks. Need kontrollsummad kontrollitakse EFI protsesside poolt alglaadimise ajal. Kontrollsummade tõttu on vastuvõtmatu ja mõttetu GPT sisu kohandamine HEX-redaktorites. Redakteerimine rikub sisu vastavust kontrollsummale, mille parandamiseks EFI kirjutab üle primaarse GPT sekundaarsega. Kui mõlemad GPT’d sisaldavad valesid kontrollsummasi, siis kettale ligipääs muutub võimatuks.
Puudused
- Vastuoluline GPT toetuse rakendamine tarkvaras, mis võibolla põhjustatud sellest, et enamik standardist on kinnine. (näiteks, GUID „Linux data“ partitsiooni tüübi jaoks oli muudetud, utiliidi parted vanemates versioonides kasutatakse ebastandartset nimede kodeerimist)
- Ei ole võimalust määrata oma nimi kogu kettale (vaatmata sellele, et kettal on olemas oma GUID)
- Senimaani on väga tugev seos partitsiooni ja tabelis asuva partitisooni numbri vahel (näiteks paljud OS alglaadijat eelistavad kasutada partitsiooni numbrit, mitte nime või GUID`i)
- Tabeli duplikaatide kogus on piiratud kahega ja nende positisoonid on fikseeritud. Selline lähenemine ei ole piisavalt paindlik ketta kahjustamise, administreerimis vigade või programmide vigade puhul.
- GPT koopiad ei luba teise koopia annulleerimist juhul, kui koopia on rikutud aga omab õiget kontrollsummat (ehk ei ole kaitset rikutud plokkide vastu)
Põhilised erinevused MBR'iga
- Partitsiooni maksimaalne suurus 9.4 ZB (1.00931731 × 1010 terabaiti)
- Teoreetiliselt piiramatul hulgal partitsioone (praktiliselt 128, MBR'il kõigest 4 primaarset partitsiooni)
- GPT tagab parema tervikluse, kuna partitsioonitabelitega seotud informatsiooni kirjutatakse andmekandja algusesse kui ka lõppu
Piirangud Windows'is
- GPT'lt ei ole võimalik laadida operatsioonisüsteemi juhul kui arvutil puudub BIOS EFI alglaadur
- GPT'lt suudavad laadida operatsioonisüsteemi ainult teatud 64 bit'ised Windows'i versioonid (Windows Vista SP1, Windows 7,Windows Server 2003 SP1 (Itanium), Windows Server 2008 /R2)
Näide
Oletame, et meil on 128 terabaidine kõvaketas ja me soovime sellele luua uue partitsiooni.
Näites on kasutatud Windows 7 Proffesional SP1 64 bit operatsioonisüsteemi.
Diskpart
Uuele kettale GPT partitsioonitabeli loomine diskpart'iga ja täies ulatuses NTFS partitsiooni lisamine
select disk N convert gpt create partition primary format quick
Kontrollime tulemust
DISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 40 GB 0 B * Disk 1 Online 128 TB 0 B *
DISKPART> list partition Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 Reserved 128 MB 17 KB * Partition 2 Primary 127 TB 129 MB
Olemasoleva ketta partitsioonitabeli konverteerimine GPT'ks käib järgnevalt:
select disk N convert gpt
GUI
Uuele kettale GPT seadistamine
Disk Management tunneb ära arvutile lisatud ketta ja pakub kohe välja, et initaliseerida uus ketas. Valides GPT initaliseeritakse ketas ära GPT tabeli vormingus ning peale seda saab lisada kettale uusi partitsioone.
7 primaarse partitsiooniga andmekogu
Antud näites on tehtud 7 primaarset partitsiooni, millest 4 on 100 gigabaiti ja 2 4 terabaiti.
MBR konverteerimine GPT'ks
Viimasel pildil on näha, kuidas konverteerida ümber MBR'i GPT'ks