Witam.
Jako że na elektrodzie mało jest szczegółowych informacji na ten temat, postanowiłem rozpocząć dyskusję na ten temat aby rozwiać wątpliwości oraz przekonania co do partycji GPT. Wolałbym ten temat w dziale "Komputery serwis" a nie "Komputery FAQ".
Dlaczego GPT.
Wady partycji MBR:
- Ograniczenie pojemności partycji do 2 TiB (teoretycznie 16 TiB w dyskach 4Kn). Oznacza to że na dyskach twardych o pojemności większej niż 2TiB wymagane jest utworzenie dwóch partycji. Niektóre starsze systemy operacyjne mogą mieć kłopot z bootowaniem systemu umieszczonego na tak skonfigurowanych dyskach twardych (nie czytają powyżej 2 TiB), także z tym czy system jest zainstalowany na partycji podstawowej czy logicznej (w przypadku wielu systemów na jednym dysku). Także niektóre stare kontrolery SATA mogą mieć problem z obsługą dysków o pojemności powyżej 750 GB.
- Ograniczenie do 4 partycji podstawowych (lub 3 partycje podstawowe i 1 partycja rozszerzona).
Zalety wynikające z użycia partycji GPT:
- Praktycznie brak ograniczeń co do pojemności dysku (limity rzędu eksabajtów).
- Możliwość utworzenia do 128 partycji.
- Brak utrudnień związanych z tworzeniem partycji rozszerzonych - po prostu w GPT występują wyłącznie partycje podstawowe.
- Możliwość przypisania poszczególnym partycjom indywidualnych nazw (prócz etykiet dostępnych przez systemy plików), co ułatwia identyfikację poszczególnych partycji.
Wady partycji GPT:
- Nie jest zgodny ze wszystkimi systemami operacyjnymi rodziny Microsoft Windows (dostęp do danych począwszy od XP w wersji 64-bitowej).
- Uruchamianie systemów operacyjnych rodziny Microsoft Windows (począwszy od Vista) na dyskach twardych z tablicą GPT wymaga komputera wyposażonego w system UEFI.
* Systemy operacyjne rodziny Linux i FreeBSD mają możliwość uruchomienia systemu na komputerze wyposażonym zarówno w system UEFI jak i w stary BIOS - patrz "BIOS boot"
Opis partycji GPT → wiki.
Sektor LBA 0 - MBR.
W dalszym ciągu MBR jest tworzony metodą tradycyjną, jednak wyłącznie w celu ochrony dysku przed nadpisaniem w przypadku użycia w systemie operacyjnym nieobsługującym GPT. Jest to tzw. ochronny MBR, który zawiera jedną partycję o rozmiarze całego dysku (ograniczone do 2 TiB w dyskach o większej pojemności), o typie EEh. Bootloader domyślnie nie jest tworzony.
Sektor LBA 1 - nagłówek tablicy GPT.
Zaczyna się od sygnatury "EFI PART", zawiera adresy LBA tego nagłówka GPT, zapasowego nagłówka GPT, początku i końca obszaru przeznaczonego dla partycji oraz numer unikalny GUID (UUID) dysku twardego. Dodatkowo nagłówek GPT zabezpieczony jest sumą kontrolną CRC32, zapisaną w tym samym obszarze nagłówka GPT. Przy tworzeniu tablicy partycji GPT tworzony jest także zapasowy nagłówek tablicy GPT oraz zapasowe wpisy partycji - zazwyczaj na samym końcu dysku.
Sektory LBA 2-33 - wpisy partycji.
Jeden wpis partycji zawiera typ partycji (numer GUID), unikalny numer partycji (UUID), adres LBA64 początku i końca partycji, atrybuty partycji oraz nazwę partycji (36 znaków w kodzie UTF-16). Jeden wpis partycji zajmuje 128 bajtów. Numery typu partycji (GUID) są praktycznie z góry ustalone przez system operacyjny, zależne od zastosowania - zastępuje on typ partycji stosowany w stylu partycji MBR, który miał wielkość jednego bajtu. Atrybuty partycji chyba nie są jeszcze wykorzystywane przez wszystkie systemy operacyjne.
Dla zrozumienia zamieszczam załącznik z przykładową tablicą GPT (sektory 0-33) z bootloaderem BIOS Grub w MBR.
Advanced Format.
Dzięki GPT będą automatycznie wykrywane dyski 4Kn, jednak nie mam żadnych informacji na ten temat i co jak z powyższymi numerami LBA.
Przy obecnych dyskach AF 512e (sektor 4k, emulacja sektora 512) nie ma konieczności specjalnego formatowania dysków, zarówno przy tablicy partycji MBR, ponieważ obecnie stosuje się wyrównanie do MiB. Pierwsza partycja zaczyna się od sektora LBA 2048 (czasami od 1024). Problemy z AF 512e wywołuje Windows XP i starsze systemy operacyjne które wyrównują do CHS - pierwszy sektor partycji od LBA 63, a nie od wyrównanego do 4k sektora LBA 64. Skutkuje to minimalnym obniżeniem wydajności dysku twardego.
Pojawia się problem z przejściówkami USB-SATA w postaci nieprawidłowego rozpoznawania sektora 512e jako 4kn. Powoduje to że odczyt zawartości dysku podłączonego z przejściówką USB a podłączonym z kontrolerem SATA płyty głównej staje się niemożliwy przez nieprawidłowe odczytanie rozmiarów partycji oraz adresowania poszczególnych sektorów.
Systemy operacyjne GNU/Linux.
Do obsługi dysków z partycjami GPT służą narzędzia gdisk, parted oraz nakładka graficzna gparted. Przy korzystaniu z gparted praktycznie nie zauważa się różnic przy tworzeniu partycji w stosunku do MBR. Trzeba tylko zauważyć że stosowane jest wyrównanie do MiB - nie ma dzięki temu problemu z dyskami twardymi AF (512e). Partycje w Linuksie zaczynają się od sda1 (sdb1 itd.) w kolejności utworzenia (nie mamy zbytnio wpływu na ich kolejność), zalecane jest w przypadku montowania partycji korzystania z unikalnego numeru partycji UUID.
Istnieją trzy możliwości instalacji systemu operacyjnego. → Link
a) BIOS Boot.
Wymagany jest bootloader Grub2 (grub-pc) oraz dodatkowa partycja BIOS Boot → Wiki. Ponieważ na dyskach MBR Grub instaluje się w wolnym miejscu pomiędzy MBR a pierwszą partycją, a w dyskach GPT obszar ten jest zajęty, trzeba zarezerwować wydzieloną partycję na obraz Gruba. Rozmiar partycji to minimum 32 kiB, lecz w przypadku gparted minimalny rozmiar to 1 MiB, należy wybrać brak systemu plików oraz flagę "BIOS_GRUB". Partycja ta otrzymuje we wpisie partycji numer GUID 21686148-6449-6E6F-744E-656564454649 (o treści "Hah!IdontNeedEFI"). Instalacja Grub2 przebiega automatycznie i nie trzeba dodatkowej konfiguracji. W MBR zostaje zapisany bootloader, na partycji BIOS Boot jądro Guba, a w katalogu /boot/grub/ reszta konfiguracji Gruba.
b) UEFI Boot.
Wymagany jest bootloader EFI (grub-efi) oraz partycja systemowa EFI → Wiki. Wymagania przy tworzeniu partycji systemowej EFI:
- Zalecany rozmiar 100-250 MB, system plików FAT32. Moim zdaniem może być mniejszy, lecz z powodu ograniczeń FAT32 nie może być mniejszy niż 32 MiB i 256 MiB dla dysków 4Kn.
- Włączona flaga "BOOT". Dodaje w chronionym MBR flagę "BOOT" oraz zmienia typ partycji na typ EFh.
- Miejsce montowania /boot/efi.
W przypadku istniejącej partycji systemowej EFI z Windows nie jest konieczne zakładanie nowej, wystarczy dodać miejsce montowania /boot/efi.
Osobiście nie przetestowałem jeszcze tej metody, jednak przy instalacji np. Ubuntu 12.04 LTS nie powinno być żadnych problemów, jednak aby Ubuntu zainstalowało się z trybem bootowania UEFI, instalator Ubuntu musi być także uruchomiony w trybie UEFI.
c) Secure Boot.
Wymagania są podobne jak w przypadku bootowania przez UEFI, jednak dodatkowo wymaga podpisanego bootloadera, jądra oraz w przypadku dystrybucji Ubuntu pakietu shim który zawiera certyfikat od Microsoftu. Niestety w wersji 12.04 LTS funkcja Secure Boot nie działa, pojawiła się dopiero w 12.10. Obecna wersja 14.04 LTS działa prawidłowo w moim przypadku, jednak w na niektórych komputerach mogą być problemy z certyfikatem. Ubuntu posiada w tym celu bootloadery z własnym kluczem Canonical oraz kluczem Microsoft.
Uwagi.
Nie jest możliwe używanie bootowania BIOS oraz UEFI jednocześnie. Wynika to z konieczności przeinstalowywania GRUB-PC i GRUB-EFI. Istnieje jednak pewne obejście w postaci zainstalowania drugiego systemu Linuksowego w trybie BIOS na partycji GPT, z osobną partycją /boot i BIOS-GRUB.
Systemy operacyjne Microsoft Windows.
Obsługa dysków GPT w systemach Windows została opisana na stronie Wikipedii: →Wiki
Dual Boot - Windows i Linux.
Większość fabrycznie instalowanych systemów operacyjnych począwszy od Windows 8 jest instalowanych w systemie UEFI oraz Secure Boot, z tego powodu Linux musi być także zainstalowany w trybie UEFI.
Jeżeli jednak systemy z rodziny Microsoft Windows zostały zainstalowane na tablicy MBR (np. przez zgodność z XP), Linux oczywiście instalowany jest w trybie BIOS na tablicy MBR.
W przypadku włączonego Secure Boot rodzą się znaczne problemy z uruchomieniem innych systemów operacyjnych zgodnych z Secure Boot. Oczywiście zawsze jest możliwość zainstalowania Linuksa w zwykłym UEFI, lecz przełączanie pomiędzy systemami wymaga włączenia lub wyłączenia Secure Boot. Uruchomienie np. częściowo wspieranego Ubuntu 12.04 LTS może zależeć od danego komputera, lub konieczności modyfikacji w firmware UEFI komputera.
W przypadku pudełkowego Win 8 Pro udało mi się dokonać dual boot poprzez Grub.
W Windows 8.1 Preview bootloader Grub secure boot działa do czasu uruchomienia Windowsa 8.1, który z jakiś powodów usuwa bootloader Grub z kluczem Microsoftu. Ponowne uruchomienie Linuksa wymaga wyłączenia Secure Boot i włączenia UEFI, po czym trzeba wgrać ponownie GRUB z opcją Secure Boot.
Jako że na elektrodzie mało jest szczegółowych informacji na ten temat, postanowiłem rozpocząć dyskusję na ten temat aby rozwiać wątpliwości oraz przekonania co do partycji GPT. Wolałbym ten temat w dziale "Komputery serwis" a nie "Komputery FAQ".
Dlaczego GPT.
Wady partycji MBR:
- Ograniczenie pojemności partycji do 2 TiB (teoretycznie 16 TiB w dyskach 4Kn). Oznacza to że na dyskach twardych o pojemności większej niż 2TiB wymagane jest utworzenie dwóch partycji. Niektóre starsze systemy operacyjne mogą mieć kłopot z bootowaniem systemu umieszczonego na tak skonfigurowanych dyskach twardych (nie czytają powyżej 2 TiB), także z tym czy system jest zainstalowany na partycji podstawowej czy logicznej (w przypadku wielu systemów na jednym dysku). Także niektóre stare kontrolery SATA mogą mieć problem z obsługą dysków o pojemności powyżej 750 GB.
- Ograniczenie do 4 partycji podstawowych (lub 3 partycje podstawowe i 1 partycja rozszerzona).
Zalety wynikające z użycia partycji GPT:
- Praktycznie brak ograniczeń co do pojemności dysku (limity rzędu eksabajtów).
- Możliwość utworzenia do 128 partycji.
- Brak utrudnień związanych z tworzeniem partycji rozszerzonych - po prostu w GPT występują wyłącznie partycje podstawowe.
- Możliwość przypisania poszczególnym partycjom indywidualnych nazw (prócz etykiet dostępnych przez systemy plików), co ułatwia identyfikację poszczególnych partycji.
Wady partycji GPT:
- Nie jest zgodny ze wszystkimi systemami operacyjnymi rodziny Microsoft Windows (dostęp do danych począwszy od XP w wersji 64-bitowej).
- Uruchamianie systemów operacyjnych rodziny Microsoft Windows (począwszy od Vista) na dyskach twardych z tablicą GPT wymaga komputera wyposażonego w system UEFI.
* Systemy operacyjne rodziny Linux i FreeBSD mają możliwość uruchomienia systemu na komputerze wyposażonym zarówno w system UEFI jak i w stary BIOS - patrz "BIOS boot"
Opis partycji GPT → wiki.
Sektor LBA 0 - MBR.
W dalszym ciągu MBR jest tworzony metodą tradycyjną, jednak wyłącznie w celu ochrony dysku przed nadpisaniem w przypadku użycia w systemie operacyjnym nieobsługującym GPT. Jest to tzw. ochronny MBR, który zawiera jedną partycję o rozmiarze całego dysku (ograniczone do 2 TiB w dyskach o większej pojemności), o typie EEh. Bootloader domyślnie nie jest tworzony.
Sektor LBA 1 - nagłówek tablicy GPT.
Zaczyna się od sygnatury "EFI PART", zawiera adresy LBA tego nagłówka GPT, zapasowego nagłówka GPT, początku i końca obszaru przeznaczonego dla partycji oraz numer unikalny GUID (UUID) dysku twardego. Dodatkowo nagłówek GPT zabezpieczony jest sumą kontrolną CRC32, zapisaną w tym samym obszarze nagłówka GPT. Przy tworzeniu tablicy partycji GPT tworzony jest także zapasowy nagłówek tablicy GPT oraz zapasowe wpisy partycji - zazwyczaj na samym końcu dysku.
Sektory LBA 2-33 - wpisy partycji.
Jeden wpis partycji zawiera typ partycji (numer GUID), unikalny numer partycji (UUID), adres LBA64 początku i końca partycji, atrybuty partycji oraz nazwę partycji (36 znaków w kodzie UTF-16). Jeden wpis partycji zajmuje 128 bajtów. Numery typu partycji (GUID) są praktycznie z góry ustalone przez system operacyjny, zależne od zastosowania - zastępuje on typ partycji stosowany w stylu partycji MBR, który miał wielkość jednego bajtu. Atrybuty partycji chyba nie są jeszcze wykorzystywane przez wszystkie systemy operacyjne.
Dla zrozumienia zamieszczam załącznik z przykładową tablicą GPT (sektory 0-33) z bootloaderem BIOS Grub w MBR.
Advanced Format.
Dzięki GPT będą automatycznie wykrywane dyski 4Kn, jednak nie mam żadnych informacji na ten temat i co jak z powyższymi numerami LBA.
Przy obecnych dyskach AF 512e (sektor 4k, emulacja sektora 512) nie ma konieczności specjalnego formatowania dysków, zarówno przy tablicy partycji MBR, ponieważ obecnie stosuje się wyrównanie do MiB. Pierwsza partycja zaczyna się od sektora LBA 2048 (czasami od 1024). Problemy z AF 512e wywołuje Windows XP i starsze systemy operacyjne które wyrównują do CHS - pierwszy sektor partycji od LBA 63, a nie od wyrównanego do 4k sektora LBA 64. Skutkuje to minimalnym obniżeniem wydajności dysku twardego.
Pojawia się problem z przejściówkami USB-SATA w postaci nieprawidłowego rozpoznawania sektora 512e jako 4kn. Powoduje to że odczyt zawartości dysku podłączonego z przejściówką USB a podłączonym z kontrolerem SATA płyty głównej staje się niemożliwy przez nieprawidłowe odczytanie rozmiarów partycji oraz adresowania poszczególnych sektorów.
Systemy operacyjne GNU/Linux.
Do obsługi dysków z partycjami GPT służą narzędzia gdisk, parted oraz nakładka graficzna gparted. Przy korzystaniu z gparted praktycznie nie zauważa się różnic przy tworzeniu partycji w stosunku do MBR. Trzeba tylko zauważyć że stosowane jest wyrównanie do MiB - nie ma dzięki temu problemu z dyskami twardymi AF (512e). Partycje w Linuksie zaczynają się od sda1 (sdb1 itd.) w kolejności utworzenia (nie mamy zbytnio wpływu na ich kolejność), zalecane jest w przypadku montowania partycji korzystania z unikalnego numeru partycji UUID.
Istnieją trzy możliwości instalacji systemu operacyjnego. → Link
a) BIOS Boot.
Wymagany jest bootloader Grub2 (grub-pc) oraz dodatkowa partycja BIOS Boot → Wiki. Ponieważ na dyskach MBR Grub instaluje się w wolnym miejscu pomiędzy MBR a pierwszą partycją, a w dyskach GPT obszar ten jest zajęty, trzeba zarezerwować wydzieloną partycję na obraz Gruba. Rozmiar partycji to minimum 32 kiB, lecz w przypadku gparted minimalny rozmiar to 1 MiB, należy wybrać brak systemu plików oraz flagę "BIOS_GRUB". Partycja ta otrzymuje we wpisie partycji numer GUID 21686148-6449-6E6F-744E-656564454649 (o treści "Hah!IdontNeedEFI"). Instalacja Grub2 przebiega automatycznie i nie trzeba dodatkowej konfiguracji. W MBR zostaje zapisany bootloader, na partycji BIOS Boot jądro Guba, a w katalogu /boot/grub/ reszta konfiguracji Gruba.
b) UEFI Boot.
Wymagany jest bootloader EFI (grub-efi) oraz partycja systemowa EFI → Wiki. Wymagania przy tworzeniu partycji systemowej EFI:
- Zalecany rozmiar 100-250 MB, system plików FAT32. Moim zdaniem może być mniejszy, lecz z powodu ograniczeń FAT32 nie może być mniejszy niż 32 MiB i 256 MiB dla dysków 4Kn.
- Włączona flaga "BOOT". Dodaje w chronionym MBR flagę "BOOT" oraz zmienia typ partycji na typ EFh.
- Miejsce montowania /boot/efi.
W przypadku istniejącej partycji systemowej EFI z Windows nie jest konieczne zakładanie nowej, wystarczy dodać miejsce montowania /boot/efi.
Osobiście nie przetestowałem jeszcze tej metody, jednak przy instalacji np. Ubuntu 12.04 LTS nie powinno być żadnych problemów, jednak aby Ubuntu zainstalowało się z trybem bootowania UEFI, instalator Ubuntu musi być także uruchomiony w trybie UEFI.
c) Secure Boot.
Wymagania są podobne jak w przypadku bootowania przez UEFI, jednak dodatkowo wymaga podpisanego bootloadera, jądra oraz w przypadku dystrybucji Ubuntu pakietu shim który zawiera certyfikat od Microsoftu. Niestety w wersji 12.04 LTS funkcja Secure Boot nie działa, pojawiła się dopiero w 12.10. Obecna wersja 14.04 LTS działa prawidłowo w moim przypadku, jednak w na niektórych komputerach mogą być problemy z certyfikatem. Ubuntu posiada w tym celu bootloadery z własnym kluczem Canonical oraz kluczem Microsoft.
Uwagi.
Nie jest możliwe używanie bootowania BIOS oraz UEFI jednocześnie. Wynika to z konieczności przeinstalowywania GRUB-PC i GRUB-EFI. Istnieje jednak pewne obejście w postaci zainstalowania drugiego systemu Linuksowego w trybie BIOS na partycji GPT, z osobną partycją /boot i BIOS-GRUB.
Systemy operacyjne Microsoft Windows.
Obsługa dysków GPT w systemach Windows została opisana na stronie Wikipedii: →Wiki
Dual Boot - Windows i Linux.
Większość fabrycznie instalowanych systemów operacyjnych począwszy od Windows 8 jest instalowanych w systemie UEFI oraz Secure Boot, z tego powodu Linux musi być także zainstalowany w trybie UEFI.
Jeżeli jednak systemy z rodziny Microsoft Windows zostały zainstalowane na tablicy MBR (np. przez zgodność z XP), Linux oczywiście instalowany jest w trybie BIOS na tablicy MBR.
W przypadku włączonego Secure Boot rodzą się znaczne problemy z uruchomieniem innych systemów operacyjnych zgodnych z Secure Boot. Oczywiście zawsze jest możliwość zainstalowania Linuksa w zwykłym UEFI, lecz przełączanie pomiędzy systemami wymaga włączenia lub wyłączenia Secure Boot. Uruchomienie np. częściowo wspieranego Ubuntu 12.04 LTS może zależeć od danego komputera, lub konieczności modyfikacji w firmware UEFI komputera.
W przypadku pudełkowego Win 8 Pro udało mi się dokonać dual boot poprzez Grub.
W Windows 8.1 Preview bootloader Grub secure boot działa do czasu uruchomienia Windowsa 8.1, który z jakiś powodów usuwa bootloader Grub z kluczem Microsoftu. Ponowne uruchomienie Linuksa wymaga wyłączenia Secure Boot i włączenia UEFI, po czym trzeba wgrać ponownie GRUB z opcją Secure Boot.