Perché la partizione inizia nel settore 2048 anziché 63?


54

Avevo due unità partizionate uguali e in esecuzione due partizioni RAID su ciascuna.

Uno è morto e l'ho sostituito in garanzia per lo stesso modello.

Durante il tentativo di partizionarlo, la prima partizione può iniziare solo nel settore 2048, anziché 63 precedente. Le unità hanno una geometria diversa da quelle precedenti e rimanenti. (Meno teste / più cilindri)

Vecchia unità:

$ sudo fdisk -c -u -l /dev/sdb 

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aa189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   174080339    87040138+  83  Linux
/dev/sdb2       174080340   182482334     4200997+  82  Linux swap / Solaris
/dev/sdb3       182482335  3907024064  1862270865   fd  Linux raid autodetect

Unità rigenerata ricevuta dalla garanzia:

$ sudo fdisk -c -u -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d0b5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  ...

Perché?


1
L'uscita non indica che si tratta di un avanzato formato 4K unità: Sector size (logical/physical): 512 bytes / 512 bytes.
bwDraco,

1
Perché questo è stato downvoted?
bwDraco,

1
Non sono d'accordo con il downvote, non ero nemmeno a conoscenza del malinteso sull'allineamento della traccia e le informazioni di JdeBP sono utili e pertinenti a una domanda valida.
Garrett,


Utilizzando unità disco più recenti, si consiglia GPT che utilizza 2048come settore di avvio per impostazione predefinita. Il disco più vecchio è stato probabilmente formattato con un'utilità precedente e utilizzando un formato di tabella delle partizioni non GPT. Per partizionare i nuovi dischi "Advanced Format 4K", utilizzare GPT fdiskUtilities . Per RAID, assicurarsi di utilizzare il tipo fd00 Linux RAIDe l'etichetta delle partizioni in modo appropriato.
TrinitronX

Risposte:


44

Perché il tuo vecchio disco è stato partizionato con una vecchia utility, come Linux fdisk, che ha inutilmente implementato l'allineamento delle tracce usando la geometria del disco completamente falsa che vedi riportato, e il tuo nuovo disco è stato o è stato partizionato da una nuova utility che ( impostazione predefinita) si allinea invece ai limiti di 1 MiB.

Ulteriori letture


7
In altre parole, il numero di settore LBA 63 corrisponde al cilindro 0, testa 1, settore 1 nel formato CHS , che è il primo settore che è possibile utilizzare nel formato MBR. Tuttavia, il numero 63 non è divisibile per 8, il che causa un problema con le unità 4K, quindi alcuni strumenti moderni avvia la prima partizione al 2048 che fornisce anche la futura compatibilità GPT.
billc.cn,

8
Ci sono momenti in cui si brama un modo per annotare i commenti, in particolare i commenti in cui gli altri cercano di mettere apertamente errori in bocca. Quelle "altre parole" sono errate , motivo per cui non sono quelle che ho scritto . Il primo settore che si può usare (come molte persone hanno) per una partizione primaria con una tabella delle partizioni MBR è LB # 2, o anche LB # 1 se uno non ha bisogno di compatibilità con cose come LVM di IBM. E l'allineamento 1MiB non ha nulla a che fare con la compatibilità della tabella delle partizioni EFI.
JdeBP,

Bene, immagino di aver fatto un errore sulla prima parte, ma per il secondo bit intendevo dire che se inizi dal 2048, non avrai problemi a convertire l'unità in GPT in futuro, quindi la parola "anche" e "futuro" .
billc.cn

5
Questo è ancora errato. Uno non avrà alcun problema comunque . Fai l'aritmetica. Anche l'allineamento originale a un limite di traccia (falso) offre spazio più che sufficiente. Quei 60 settori da 512 byte possono contenere 240 voci della tabella delle partizioni EFI. Ancora una volta: l'allineamento di 1 MiB non ha nulla a che fare con la compatibilità della tabella delle partizioni EFI.
JdeBP,

4
fdisknon è una "vecchia utility", è attivamente mantenuta. Basta NON usare la "geometria del disco falso" via -c=dos(è disattivata per impostazione predefinita!). La manpage avverte esplicitamente di non farlo poiché CHS è morto come discoteca. Il link alla pagina di JdBP è morto, ma la storia dell'allineamento di 1MiB (settore 2048) può essere trovata nella voce Wikipedia Logical Disk Manager . È una verruca di Windows Vista: "L'uso di un limite di allineamento di 1 MiB consente una modifica più sicura della tabella delle partizioni con Vista Disk Mgt."
David Tonhofer,

36
fdisk -c=dos

È stata utilizzata la vecchia tabella delle partizioni DOS durante la creazione della partizione. Le versioni più recenti di fdisknon utilizzano la modalità di compatibilità DOS per impostazione predefinita.


3
La risposta accettata ha alcune informazioni preziose ma questa risposta ha la gemma di cui avevo bisogno per risolvere il mio problema.
jcbwlkr,

fdisk non mi permetterebbe di ricreare una partizione a partire dal settore 2048 senza questo argomento - I gotFirst sector (3072-314572799, default 3072):
tomfanning

5
Questo è fondamentale se stai cercando di ridimensionare una partizione, che con fdisk significa eliminarla e ricrearla; è necessario che la partizione inizi nello stesso posto.
mcr

non funziona più con fdisk from util-linux 2.28: /
akostadinov il

1
trovato fdisk -c=dos -u=cylinders /dev/sdbin gist - gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03
akostadinov

7

Forse sarà utile aggiungere un commento qui. Per la partizione LUKS, si dice che elimini e ricrea la partizione nello stesso posto, ma più grande prima di chiamare cryptsetup resize. Ma quando hai creato la tua partizione molto tempo fa, inizia nel settore 63. Usando fdisk, la partizione verrà ricreata con l'offset errato, risultando in una partizione persa.

Sono riuscito a recuperarlo usando fdisk -c=dosper essere in grado di creare partizioni dal settore 63, senza problemi.


1

Non so perché sia ​​iniziato il 63 in primo luogo, ma secondo fdisk, le dimensioni del tuo settore sono 512.

Quindi se vuoi che le tue partizioni, e quindi i cluster siano allineati, il tuo offset iniziale dovrebbe essere divisibile per 512. 2048 è abbastanza comune in questi giorni.

Se preferisci settori disallineati, puoi sempre far tornare GPart su 63.

Modificare:

Ooops. Non ho visto che hai un RAID. Probabilmente dovresti pubblicare il tuo RAID e le dimensioni dello stripe.


1
63 è 111111 in binario. Nel BIOS dei PC, il numero di settore è / è stato codificato in sei bit, risultando in un numero massimo di 111111 (63) settori per traccia. Questo massimo è ancora utilizzato per la geometria CHS virtuale.
Chris Reid,

1

Mentre mi rendo conto che alla domanda reale è stata data una risposta, una soluzione rapida per il problema del primo cilindro tra 63 e 2048 è qualcosa del tipo:

sfdisk -d /dev/sdb | sfdisk --force /dev/sda

(se sei sicuro di avere unità della stessa dimensione)

È quindi possibile procedere con l'aggiunta delle varie partizioni nei RAID in cui si è verificato un reclamo in merito al fatto che le partizioni non avessero le stesse dimensioni a causa della differenza del cilindro di avvio 63/2048 che eliminava le eventuali dimensioni della partizione.


dovresti spiegare cosa fa, destinazione sorgente?
Pawel Cioch,

0

La scelta di 1 MiB (2048 * 512 byte di dimensioni del blocco emulato) è un'ottima soluzione per varie configurazioni di archiviazione hardware. Poiché le strutture di dati del file system sono generalmente allineate con il punto iniziale della partizione, questo può essere importante per massimizzare la velocità di lettura / scrittura della memoria.

Per esempio:

RAID può utilizzare strisce di dati di dimensioni comprese tra 16 e 256 KiB. 1 MiB è un multiplo intero di questo, quindi l'avvio della partizione a 1 MiB è compatibile con il modello RAID sottostante.

Gli SSD hanno in genere una dimensione del blocco di cancellazione da 128 a 256 pagine NAND, che a seconda dell'unità potrebbe essere 256 KiB o 512 KiB. Quindi, anche in questo caso, l'avvio della partizione a 1 MiB è compatibile con le caratteristiche di archiviazione SSD sottostanti.

Gli HDD rotanti Advance Format 512e hanno una dimensione di blocco fisico di 4 KiB e, di nuovo, 1 MiB è un multiplo intero (anche se piuttosto grande) di questo.

Quindi, se hai un'unità AF e stai partizionando come GPT, potresti essere perfettamente soddisfatto della tua prima partizione a partire dal blocco LBA 40 (un multiplo intero degli 8 blocchi logici in ciascun blocco fisico del tuo HDD), quasi nessun reale- l'archiviazione mondiale viene persa appena iniziando dal blocco LBA 2048 (1 MiB), che è un valore più flessibile per il software di partizionamento di default poiché è adatto praticamente a qualsiasi configurazione hardware.

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.