Perché ci sono solo quattro partizioni primarie su un disco MBR?


23

Sto leggendo i documenti su CentOS.org .

Nella sezione 25.1.2. Partizioni: trasformando una unità in molte , c'è la seguente dichiarazione:

La tabella delle partizioni è divisa in quattro sezioni o quattro partizioni primarie. Una partizione primaria è una partizione su un disco rigido che può contenere solo un'unità logica (o sezione). Ogni sezione può contenere le informazioni necessarie per definire una singola partizione, il che significa che la tabella delle partizioni non può definire più di quattro partizioni.

Non capisco perché ci possano essere solo quattro partizioni. È così che è stato progettato all'inizio? Possono davvero esserci solo 4 partizioni primarie?

Risposte:


36

È così che è stato progettato all'inizio? Possono davvero esserci solo 4 partizioni primarie?

Sì, è esattamente così. La tabella delle partizioni nella parte anteriore di un disco MBR (al contrario di un disco in stile GPT) ha una struttura di dati molto rigida che risale agli anni '80, quando lo spazio era una cosa preziosa e preziosa. La decisione di progettazione all'epoca era di consentire solo quattro partizioni, ma consentire a una di esse di essere una partizione "estesa" che era un puntatore a un altro punto del disco che poteva contenere molte più partizioni "logiche".

(Questo è lo stesso motivo per cui i dischi formattati MBR hanno problemi con dischi da 2 TB +. Cluster di dimensioni di 512 byte e campi a 32 bit contenenti conteggi dei cluster per dimensioni della partizione = dimensioni massime del disco 2 TB. Una dimensione del cluster 4KB risolve il problema lungo la strada. )

GPT è un metodo aggiornato di gestione del partizionamento che non presenta queste limitazioni.


1
È anche solo una limitazione per i dischi di tipo IDE. SCSI, ad esempio, ne ha 8, il terzo per convenzione è una partizione sovrapposta che si estende su tutto il dispositivo.
MadHatter supporta Monica il

18
@MadHatter la tabella delle partizioni da sola è di tipo agnostico. Sembra che tu stia descrivendo Solaris Slices, che sono un concetto leggermente diverso.
the-wabbit il

3
Non ho pensato che fosse così, ma hai perfettamente ragione che la maggior parte della mia esperienza di partizionamento SCSI proviene da Solaris. Mi inchino alla tua correzione e grazie!
MadHatter supporta Monica il

4
In realtà, le partizioni estese arrivarono molto più tardi ; IBM PC DOS 2.0 ha introdotto l'MBR come parte del suo supporto HDD nel marzo 1983, ma non è stato fino al 3.3 (aprile 1987) che sono diventate disponibili le partizioni estese .
un CVn il

In realtà, la "partizione estesa" punta semplicemente a un'altra tabella delle partizioni in stile MBR, che a sua volta può contenere anche solo 4 voci (ognuna delle quali potrebbe essere una voce di partizione estesa che punta a un'altra tabella delle partizioni, che può contenere anche 4 voci ( ognuna delle quali potrebbe essere una partizione estesa ...)) In realtà alcuni sistemi operativi consentono solo partizioni estese nello slot 4 e se ce n'è una, gli slot 2 e 3 devono essere vuoti, quindi quello che si finisce in pratica è un singolo- elenco collegato di tabelle delle partizioni con un primario nello slot 1 e un collegamento alla tabella successiva nello slot 4.
Jörg W Mittag

25

Ce ne sono solo quattro perché le strutture di dati per la tabella delle partizioni MBR consentono solo esattamente quattro record che descrivono le partizioni:

È possibile creare tabelle di partizione aggiuntive nidificate nelle definizioni di quella che viene chiamata "partizione estesa", ma le partizioni in essa definite sono tradizionalmente chiamate partizioni "logiche". Tieni presente che questa è una limitazione di questa specifica implementazione. Altri tipi di partizione, come la tabella delle partizioni GUID , non condividono questa limitazione.


3

Una partizione primaria è un concetto di basso livello: ha a che fare con il processo di avvio iniziale della macchina e si basa su un insieme ben definito di specifiche. È quindi molto difficile cambiare il numero di partizioni primarie, perché molti produttori di dischi e schede madri dovrebbero essere d'accordo nell'implementare un nuovo standard.

In pratica, però, questo è un punto controverso: è importante al momento dell'avvio per avviare il sistema operativo in primo luogo, ma questo è tutto. Esistono partizioni estese, che consentono più partizioni sul disco. Tuttavia, non è possibile avviarli.

Più fondamentalmente - la maggior parte dei sistemi operativi funziona con più astrazione del disco - gestori di volumi logici - il che significa che la topologia su disco effettiva è in gran parte irrilevante. (E in effetti, spesso non è desiderabile segmentare il pool di archiviazione)


1
Penso che ti sbagli di non essere in grado di avviarne uno; Penso che GRUB avvierà felicemente Linux da una partizione estesa. A parte questo, sono principalmente d'accordo con te.
MadHatter supporta Monica il

GRUB stesso deve trovarsi su una partizione primaria: il bootstrap di basso livello avvia grub, che ti consente di scegliere.
Sobrique,

1
Il caricatore di fase 1 non dovrebbe trovarsi su una partizione; dovrebbe essere nel MBR. Il resto del codice vive all'interno della /bootpartizione e, come ho detto, credo che possa essere felicemente una partizione estesa.
MadHatter supporta Monica il

Giusto. Vado a leggere e a fare i compiti. Ma suppongo che sostenga ancora il fatto che mentre le partizioni primarie sono limitate, quel limite è in gran parte irrilevante ora.
Sobrique,

1
"... perché molti produttori di dischi e schede madri dovrebbero accettare di implementare un nuovo standard." Che cosa? Come? È completamente irrilevante per il disco e anche la scheda madre non dovrebbe occuparsene. Tutto quello che la scheda madre deve fare è leggere il settore 0 ed eseguire il suo codice. Riconoscere le partizioni è il lavoro di quel codice.
glglgl,

0

Non sono sicuro se sono in ritardo alla festa, ma ecco qui:

La dimensione della tabella delle partizioni è progettata per essere di 64 byte e ogni tabella delle partizioni è di 16 byte. 16 * 4 = 64 e quindi non c'è più spazio per altre voci nella tabella delle partizioni.

Per ovviare a questo, la quarta voce ha una disposizione per una voce di partizione estesa che può avere puntatori sequenziali ad altre partizioni estese.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.