= bubbalog =Дневникът на моето стадо

Първи сблъсък с GPT и EFI

Saturday 22.05.2010 16:14 EEST · Публикувано от в = FreeBSD =, = Linux =, = Windows =, = Всичко друго =

Честно да си кажа, досега само бях чувал за GPT (GUID Partition Table) и EFI (Extensible Firmware Interface), но тъй като не ми е било интересно никога не се бях зачитал в тази материя. Онзи ден обаче по стечение на обстоятелствата въпроса ми стана много интересен, като започна от една проста инсталация на FreeNAS. От седмица и малко съм на нова работа и там си имаме NAS на Cisco и ми стана интересно да сравня двете системи но това така и не се случи, защото нещата избиха в съвсем различна посока. Последващата статия са първите ми стъпки в материяа и може да има доста неточности, но подлежи на корекция във времето, когато всичко ми се избистри. Тъй като никъде не намерих свястно описание на всичко това на пост български език реших да го напиша за някой като мен :)

След като инсталирах FreeNAS и разгледах видях това което ми беше нужно, погаврих се малко с новата подръжка на ZFS и мерака ми мина. От тук започна обаче интересното. След ато се опитах да инсталирам обикновенното FreeBSD започна да пищи, че не може да си направи лйбълите и когато се загледах в разпределението на диска забелязах нещо интересно – там имаше дял, който се наричаше ad0p1, нещо различно от обичайните слайсове ad0s1 например. Делнах го, записах промените и рестартирах и какво беше учудването ми когато ми даде следната информация при зареждане

GEOM: ad0: the primary GPT table is corrupt or invalid
GEOM: ad0: using secondary instead — recovery strongly advised.

а преди малко изтрития ad0p1 си беше обратно на мястото… Ами сега? След няколко опита ми стана интересно и седнах да прочета какво бях причинил на диска, като темата се оказа доста интересна и определено е нещото с което се занимавам последните няколко дена.

Какво всъщност е GPT (GUID Partition Table)?

С две думи, това е стандарт за разделяне на диска на дялове, който се явява част от стандарта EFI (разработка на Intel, бъдещият наследник на компютърния BIOS), но също така се използва и в стандартните BIOS компютри за прескачането на ограниченията на стандартния MBR (Master Boot Record), който има ограничение до 2 TiB (около 2 TB)

При MBR базираното разделяне на диска информацията се записва в MBR, който също така съдържа и код за инициализиране на диска. При GPT информацията за дяловете се пази в GPT хедър но за да се запази съвместимоста, GPT запазва MBR записа като първи сектор на диска за да може да се инициализиа, незабавно последван от Primary Partition Table Header като втори сектор, което е и началото на GPT.

Както и модерния MBR, така и GPT използва LBA (logical block addressing) адресиране вместо остарялото CHS (cylinder-head-sector). MBR информацията се пази в LBA0, LBA1 е GPT хедъра, а таблиците за дяловете за в последвалите сектори, като първия използваем сектор е LBA34.

Според Apple, големината на сектра няма винаги да остане 512 байта. Модерните устройства като SSD (solid-state drives) използват 1024 батови сектори, а някои MO (magneto-optical) дискове използват 2048 байтови сектори, въпреки че обикновенно нямат дялове. Произвоителите планират скоро устройства и с 4096 байтови сектори, но засега сектора си е 512 байта.

Устройствата използвани за Intel базираните Макове, обикновенно вече са форматирани с GPT, вместо със старата Apple Partition Map. GPT също така предлага и по-висока сигурност тъй като записва GPT хедъра в началото и в края надиска. Другото ограничение което също така е премахнато е поддръжката на до 128 дяла за разлика от 4-те при MBR.

Информацията за GPT е доста обширна, но тъй като това е един вид уводна сатия в материята поне за мен няма да се впускам в повече подробности, тепърва имам да си изяснявам още работи.

Какво е EFI (Extensible Firmware Interface)?

Ето и няколко думи за EFI. По същество всяка система се нуждае от свързващо звено между операционната система и хардуера на който работи тя. Стандартно тази фнкция се изпълнява т добре познатия на всички BIOS. Intel обаче са разработили нова спецификация за тази функция, която е доста по-сложна и с доста повече възможности от стандартния BIOS.

Първоначалната идея за разработването на EFI се появява заедно с Intel-HP Itanium в средата на ’90. Ограниченията на тогавашните BIOS-и (16-bit processor mode, 1 MB addressable space, PC AT hardware dependencies, и др.) са били твърде неприемливи за големите сървърни платфрми за които Itanium са били предназначени. Първоначалното решение на проблема се е наричало “Intel Boot Initiative”, което по-късно е преименовано на EFI.

Мнго са гласовете както “За”, така и “Против” GPT и EFI които прочетох тези дни. Предполага се, че скоро стандартния BIOS ще бъде изцяло заместен от EFI, както и GPT да се наложи за основна система за разделяне на дисковете, въпреки че е разработена за предимно доста по-големи дискове и на редовия потребител е му е нужно да се забърква особено с GPT, тъй като поддръжката на операциони системи е ограничена при зареждане, а инсталацията не е автоматизирана. Специално за FreeBSD инсталацията става по малко по-сложен и пипкав начин, което е предмет на някоя т следвашите статии. Определено темаа ми е интересна и мисля да се позабавлявам с това в следващите няколко дни.

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.