Perché la fetta C o la fetta 2 coprono l'intero disco


14

Qualcosa di cui stavo discutendo con un paio di amici e non siamo riusciti a capirlo. In FreeBSD e OpenSolaris / Solaris quando si partiziona un'unità viene creata una partizione che copre l'intero disco:

da0s1c
c0d0s2

Ad esempio, l'output del mio disco rigido principale nel mio server OpenSolaris:

xistence@Keyhole.network.lan:/dev/rdsk# prtvtoc /dev/rdsk/c4d0s2
* /dev/rdsk/c4d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*    7296 cylinders
*    7294 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*           0     16065     16064
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00      16065 117145980 117162044
       2      5    01          0 117178110 117178109
       8      1    01          0     16065     16064

Qual è stato il ragionamento alla base dell'utilizzo della partizione 2? Perché non partizionare 0? Dove nella storia di Unix è stato deciso? Quale funzione legacy ha servito in quel momento? Con il partizionamento GPT che scompare del tutto (da quello che ho trovato).

Solo qualcosa di interessante ...

Dato che ParoX ha menzionato il partizionamento in stile GPT e come Solaris lo rappresenta in termini di layout vtoc, ecco l'output di uno dei miei dischi che è 1 TB ed è in un array ZFS ed è stato automaticamente impostato con GPT:

xistence@Keyhole.network.lan:~# prtvtoc /dev/rdsk/c5d0
* /dev/rdsk/c5d0 partition map
*
* Dimensions:
*     512 bytes/sector
* 1953520128 sectors
* 1953520061 accessible sectors
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*          34       222       255
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      4    00        256 1953503455 1953503710
       8     11    00  1953503711     16384 1953520094

Non ci ho mai pensato così tanto, ma è interessante ora che mi hai fatto pensare. Curioso di vedere se qualcuno risponde.
Milner,

hmmm. So che in Solaris è stata definita la sezione "backup". Mi chiedo se fosse un modo per eseguire il backup dell'intero disco, inclusa la mappa delle partizioni, in un dump? Ad esempio, dump / dev / rdsk / c0t0d0s2 in un file nastro e potresti ripristinare l'intera unità fisica, incluso il layout FS, in un solo ripristino? Solo una supposizione. Impossibile trovare altro su Google. Buona domanda!
jj33,

@ jj33: certo, compra perché slice 2 ? Perché non 0 o -1 o qualche altro valore distintivo?
Eddie,

Risposte:


7

Ai vecchi tempi avremmo fatto i backup usando "dd" dell'intero disco. Pertanto, abbiamo avuto la sezione "c" in modo da poter fare tutto con un solo comando.

Ecco perché esiste la sezione "c".

DD non è perfetto. Se un disco è pieno solo al 10%, si impiega il 90% del tempo a copiare blocchi "spazzatura" o (ad esempio) utilizzati per "scambio" (inutili per il backup). "dd" è una perdita di tempo a meno che il disco non sia quasi pieno o se, per qualche motivo, è necessaria una copia esatta, blocco per blocco.

Tutto questo prima che il mirroring del disco RAID-0 e i gestori dei volumi facessero tutto quel tipo di copia delle partizioni per te.

(Qualcuno ha citato "dump" sulla sezione "c". Non funzionerà. "Dump" è una copia file per file [in realtà, inode per inode] in modo che non funzioni.)

Qualcun altro ha chiesto "perché è c, non la prima partizione o l'ultima". La risposta è "tradizione". Posso solo supporre che Ken o Dennis (o forse Bill Joy o Kirk McKusick) abbiano avuto un buon motivo in quel momento. Presumo che abbiano usato le prime due etichette di partizione per le partizioni effettive. Quindi un giorno qualcuno ebbe l'idea della partizione sovrapposta per fare i backup e "c" era la successiva partizione disponibile. Dal momento che c'erano solo 2-3 macchine Unix al momento, farlo due volte può "stabilire lo standard" che viene utilizzato per il resto del tempo.

Un altro esempio di come gli incidenti storici diventano standard che non vanno mai di pari passo è descritto in questo articolo: Comprendere bin, sbin, usr / bin, usr / sbin split


Sì, ma perché c e non una ?
Cristian Ciupitu,

1
Perché è stata scelta quella lettera? Non lo so. O Ritchie, Thompson o forse Bill Joy potevano rispondere. La mia ipotesi è che abbiano usato 0, quindi 1, quindi qualcuno ha questa brillante idea di un'etichetta di partizione sovrapposta. Lo slot successivo era disponibile e molto più sicuro rispetto allo spostamento delle partizioni. Ricorda ... questo era quando intere università avevano 1 o 2 computer. Raramente hai apportato importanti modifiche al sistema. Non era come oggi in cui se facessi un cambiamento del genere, ripenseresti liberamente alle tue macchine. Con 50 persone che condividono tutti un computer, gli aggiornamenti attendono che tutti siano pronti.
TomOnTime,

4

È il risultato delle sezioni tradizionalmente disposte come segue:

s0: root
s1: swap
s2: bkup

Hanno assegnato la cosa più importante alla prima sezione e hanno continuato con importanza decrescente :) (Chi ha bisogno di scambiare se non si dispone di una partizione di root? Inoltre, chi ha bisogno di eseguire il backup di qualcosa se non si dispone di dati.)

Non so quando sia stato deciso esattamente questo (probabilmente abbastanza presto; ogni volta che gli sviluppatori di Solaris hanno deciso di utilizzare identificatori e slice di dischi in stile Solaris).

Il problema scompare con GPT poiché lo schema di partizione in stile MBR non è applicabile. (Anche se personalmente non ho familiarità con il modo in cui Solaris rappresenta le partizioni GPT ...)

Spero che questo abbia aiutato XD


================
Modifica:
ora mi hai interessato. Pubblicherò alcuni link che ho trovato poco prima di andare al lavoro.

Libro delle risposte su Sysadmin di Solaris 2.4: sezioni personalizzate
Guida dell'utente di Solaris 2.4: amministrazione periferica

Entrambi questi documenti risalgono al 1994 circa e definiscono la creazione di s2 come integrata nel "formato" anche allora. Devo continuare a scavare XD!


Aiuta, ma non è ancora la risposta concreta che stavo cercando :-) Sapevo già possibili ragioni sul perché e il layout predefinito della sezione. Vorrei prove o prove solide!
X-Istence,

Felice di trascinare qualcun altro nella follia che è questa domanda :-).
X-Istence,

Ok ... Il concetto di slice sembra aver avuto origine da qualche parte intorno alle versioni di BSD 4.2 e Unix System V.4 (1984-1989) ... Tempo di accedere alla libreria>. <(Non c'era molta registrazione su Internet in quel momento per ovvi motivi.)
ParoX,

docsrv.sco.com/cgi-bin/man/man?vtoc+7 Apparentemente UnixWare usa s0 come l'intera partizione con s1 e s2 rispettivamente come root e swap. Interessante ...
ParoX,

1
Lo sto restringendo all'introduzione di UFS nel 1982 nell'albero BSD. Ora sono abbastanza fiducioso che SVR abbia preso in prestito il concetto da BSD nella sua versione 4.2 (dopo aver rovistato attraverso una tonnellata di riferimenti di vecchi programmatori.) Domani tornerò in biblioteca lol
ParoX

1

Maggiori informazioni su questa domanda:

Secondo http://en.wikipedia.org/wiki/BSD_disklabel su FreeBSD la partizione c su un disco che è anche in uso da altri sistemi operativi si estenderà solo sull'intera porzione di FreeBSD, e la partizione d sarebbe l'intero disco rigido !

La partizione c indirizza l'intero disco in modalità dedicata, o l'intera porzione di FreeBSD in modalità fetta. Le altre partizioni sono per uso generale.

Aggiunta manuale del disco di FreeBSD vedi 18.3.1 numero 3.


0

Perché scsi id 3 era il disco di avvio predefinito nel sistema operativo Sun vintage?

Tutti quei momenti andranno persi nel tempo, come lacrime nella pioggia.

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.