Dlaczego na dysku MBR są tylko cztery partycje podstawowe?

23

Czytam dokumenty w CentOS.org .

W sekcji 25.1.2. Partycje: Zamieniając jeden dysk w wiele , istnieje następujące oświadczenie:

Tabela partycji jest podzielona na cztery sekcje lub cztery partycje podstawowe. Partycja podstawowa to partycja na dysku twardym, która może zawierać tylko jeden dysk logiczny (lub sekcję). Każda sekcja może zawierać informacje niezbędne do zdefiniowania pojedynczej partycji, co oznacza, że ​​tablica partycji może zdefiniować nie więcej niż cztery partycje.

Nie rozumiem, dlaczego mogą istnieć tylko cztery partycje. Czy to taki sposób, w jaki został zaprojektowany na początku? Czy naprawdę mogą istnieć tylko 4 partycje podstawowe?

Jongosi
źródło

Odpowiedzi:

36

Czy to taki sposób, w jaki został zaprojektowany na początku? Czy naprawdę mogą istnieć tylko 4 partycje podstawowe?

Tak, właśnie o to chodzi. Tabela partycji z przodu dysku MBR (w przeciwieństwie do dysku w stylu GPT) ma bardzo ścisłą strukturę danych, która pochodzi z lat osiemdziesiątych, kiedy przestrzeń była cenną, cenną rzeczą. W tamtych czasach decyzją projektową było dopuszczenie tylko czterech partycji, ale jedna z nich mogła być partycją „rozszerzoną”, która była wskaźnikiem do innego miejsca na dysku, które mogło zawierać o wiele bardziej „logiczne” partycje.

(To jest ten sam powód, dla którego dyski sformatowane w MBR mają problemy z dyskami 2 TB +. Klastry o wielkości 512 bajtów i pola 32-bitowe zawierające liczby klastrów dla rozmiaru partycji = maksymalny rozmiar dysku 2 TB. Rozmiar klastra 4KB w pewien sposób sprowadza problem na dalszy plan. )

GPT to zaktualizowana metoda obsługi partycjonowania, która nie ma tych ograniczeń.

sysadmin1138
źródło
1
Jest to również tylko ograniczenie dla płyt typu IDE. Na przykład SCSI mają 8, przy czym trzecia konwencja to nakładająca się partycja obejmująca całe urządzenie.
MadHatter obsługuje Monikę
18
@MadHatter sama tablica partycji jest agnostyczna typu pamięci. Wygląda na to, że opisujesz plastry Solaris, które są nieco inną koncepcją.
the-wabbit
3
Nie sądziłem, że tak jest, ale masz całkowitą rację, że większość moich doświadczeń z partycjonowaniem SCSI pochodzi z Solaris. Kłaniam się za twoją korektę i dziękuję!
MadHatter obsługuje Monikę
4
W rzeczywistości rozszerzone partycje pojawiły się znacznie później ; IBM PC DOS 2.0 wprowadził MBR w ramach obsługi HDD w marcu 1983 r., Ale dopiero w 3.3 (kwiecień 1987 r.) Udostępniono rozszerzone partycje .
CVn
W rzeczywistości „partycja rozszerzona” po prostu wskazuje inną tabelę partycji w stylu MBR, która z kolei może również zawierać tylko 4 wpisy (każda z nich może być rozszerzoną pozycją partycji, która wskazuje na inną tabelę partycji, która może również zawierać 4 wpisy ( każda z nich może być rozszerzoną partycją…)) W rzeczywistości niektóre systemy operacyjne zezwalają tylko na rozszerzone partycje w gnieździe 4, a jeśli istnieje, to szczeliny 2 i 3 muszą być puste, więc w praktyce kończy się to pojedynczo- połączona lista tabel partycji z podstawową w gnieździe 1 i link do następnej tabeli w gnieździe 4.
Jörg W Mittag
25

Są tylko cztery, ponieważ struktury danych dla tabeli partycji MBR pozwalają tylko na dokładnie cztery rekordy opisujące partycje:

Można utworzyć dodatkowe tabele partycji zagnieżdżone w definicjach tzw. „Partycji rozszerzonej”, ale zdefiniowane w nich partycje są tradycyjnie nazywane partycjami „logicznymi”. Należy pamiętać, że jest to ograniczenie tej konkretnej implementacji. Inne typy partycji, takie jak tabela partycji GUID , nie mają tego ograniczenia.

the-wabbit
źródło
3

Partycja podstawowa jest koncepcją niskiego poziomu - dotyczy początkowego procesu uruchamiania komputera i jest oparta na dobrze zdefiniowanym zestawie specyfikacji. Dlatego bardzo trudno jest zmienić liczbę partycji podstawowych, ponieważ wielu producentów dysków i płyt głównych musiałoby zgodzić się na wdrożenie nowego standardu.

Praktycznie rzecz biorąc, jest to kwestia sporna - ma to znaczenie w „czasie rozruchu” dla pierwszego uruchomienia systemu operacyjnego, ale o to chodzi. Istnieją rozszerzone partycje, które pozwalają na więcej partycji na dysku. Nie można ich jednak uruchomić.

Zasadniczo - większość systemów operacyjnych działa z większą abstrakcją dysku - menedżerami woluminów logicznych - co oznacza, że ​​faktyczna topologia dysku jest w dużej mierze nieistotna. (I rzeczywiście, często nie jest pożądane dzielenie puli pamięci)

Sobrique
źródło
1
Myślę, że się mylisz, że nie możesz go uruchomić; Myślę, że GRUB z przyjemnością uruchomi Linuksa z partycji rozszerzonej. Poza tym w większości się z tobą zgadzam.
MadHatter obsługuje Monikę
Sam GRUB musi jednak znajdować się na partycji podstawowej - bootstrap niskiego poziomu uruchamia grub, który następnie pozwala wybrać.
Sobrique
1
Moduł ładujący etapu 1 nie powinien w ogóle znajdować się na partycji; powinno być w MBR. Reszta kodu znajduje się wewnątrz /bootpartycji i, jak mówię, wierzę, że może to być z pewnością partycja rozszerzona.
MadHatter obsługuje Monikę
Słusznie. Pójdę poczytać i odrobić pracę domową. Ale przypuszczam, że nadal popiera to, że chociaż podstawowe partycje są ograniczone, to ograniczenie jest obecnie w dużej mierze nieistotne.
Sobrique
1
„... ponieważ wielu producentów dysków i płyt głównych musiało zgodzić się na wdrożenie nowego standardu”. Co? Jak to? Jest to całkowicie nieistotne dla dysku i nawet płyta główna nie powinna się tym przejmować. Wszystko, co musi zrobić płyta główna, to odczyt sektora 0 i wykonanie jego kodu. Rozpoznawanie partycji jest zadaniem tego kodu.
glglgl
0

Nie jestem pewien, czy spóźnię się na przyjęcie, ale oto:

Rozmiar tablicy partycji ma wynosić 64 bajty, a każda tabela partycji ma 16 bajtów. 16 * 4 = 64 i dlatego nie ma już miejsca na żadne inne wpisy w tablicy partycji.

W celu obejścia tego problemu czwarty wpis zawiera zapis dotyczący partycji rozszerzonej, który może zawierać sekwencyjne wskaźniki do innych partycji rozszerzonych.

https://docs.microsoft.com/en-us/windows/win32/fileio/basic-and-dynamic-disks

Guru
źródło