Come formattare un disco rigido settoriale 4k?


12

Ho comprato un hard disk Seagate ST3000DM001 da 3 TB. È stato venduto all'interno di un recinto. Ho formattato in ext4, copiato alcuni dati su di esso e quindi li ho rimossi dal contenitore e li ho collegati direttamente alla scheda madre. I miei dati non erano visibili al sistema operativo (vedevo una partizione ~ 300GiB sconosciuta e il resto come spazio libero), quindi ho iniziato a leggere su Advanced Format e> 2 TB.

Ho nuovamente collegato il disco con USB, copiato tutti i dati e ricollegato a sata. Ho usato gparted per creare una tabella delle partizioni GPT (l'utilità del disco Ubuntu non mi avrebbe permesso di farlo Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0), ho creato una grande partizione Ext4 da 3 TB, lasciato il Align tovalore predefinito MiBe formattato.

L'unità è riconosciuta correttamente e si monta correttamente. I file possono essere copiati da e sull'unità correttamente.

Tuttavia:

Gparted mostra il disco con 512k settori che so non è vero 1

screenshot di Gparted

mentre cat /sys/block/sdb/queue/physical_block_sizesegnala4096

Ho trovato alcuni rapporti che libpartedhanno un problema con settori non 512k 2 e altri 3 che affermano che l'allineamento al MiB è sufficiente.

Parted riporta che l'unità è allineata quando scelgo minimal:

(parted) align-check 
alignment type(min/opt)  [optimal]/minimal? min                           
Partition number? 1                                                       
1 aligned
(parted)    

La mia configurazione è corretta? Devo penalizzare le prestazioni perché il disco è formattato con 512k settori, gParted riporta valori falsi o ho capito tutto nel modo sbagliato?

  1. http://www.storagereview.com/seagate_barracuda_3tb_review_1tb_platters_st3000dm001
  2. http://ubuntuforums.org/showthread.php?t=1536933&p=9754234#post9754234
  3. http://wdc.custhelp.com/app/answers/detail/a_id/5655

Ho alcune di queste unità Seagte e WD e Fujitsu / HGST da 3 TB e funzionano tutte senza problemi. Potresti avere ragione su GParted, perché il mio Seagate attualmente collegato tramite USB si presenta con dimensioni del settore 4096 in GParted. La mia versione GParted è 0.12.1, il valore predefinito da quantale.
LiveWireBT

Credo che mostrerà 4096 anche qui se lo collego tramite USB. C'è un po 'di magia nel controller USB-SATA lì.
qwazix,

Risposte:


5

Riporta 512 byte perché questa è la dimensione del settore logico per la compatibilità con i sistemi operativi precedenti (Windows). (g) parted allinea le partizioni a 1 MiB, che è più che sufficiente per funzionare correttamente con le unità che utilizzano settori fisici 4k, quindi va bene così.


11

Innanzitutto, la maggior parte delle unità di formattazione avanzata presenta una dimensione del settore logico di 512 byte, anche se la dimensione del settore fisico è 4096 byte (4KiB). Questo viene fatto attraverso la manipolazione dei dati nel firmware dell'unità e può causare problemi di prestazioni se le partizioni non sono allineate correttamente. È probabile che questo non sia la fonte del tuo problema, tuttavia, e il tuo focus sull'allineamento delle partizioni è fuori luogo. (A dire il vero, l'allineamento delle partizioni è importante; non è solo la fonte del tuo problema.)

Il mio sospetto (e lo èsolo un sospetto) è che il tuo problema deriva dal passaggio tra un contenitore USB e la connessione diretta del disco. Alcuni allegati traducono settori logici da 512 byte sul disco in settori logici da 4096 byte presentati al computer, ovvero l'opposto di ciò che fa il firmware in un disco di formato avanzato. Non sono positivo, ma sospetto che alcuni enclosure lo facciano solo su dischi oltre 2 TB. Entrambi gli schemi di partizionamento MBR e GPT si riferiscono ai dati per numero di settore, quindi la modifica della dimensione del settore invalida i dati di partizionamento. Pertanto, se si prepara il disco in un contenitore USB che si traduce in questo modo e quindi si tenta di utilizzare il disco direttamente (o viceversa), verranno visualizzati errori perché le partizioni (e persino i dati di backup GPT) non saranno dove il computer si aspetta che sia. Sarebbe come dire a una persona bendata di "

La soluzione a questo problema è quello di preparare e utilizzare il disco in un modo - sia utilizzare il diffusore USB o utilizzare una connessione diretta, non entrambi. Se entrambi sono necessari per qualche motivo, dovrai trovare un allegato che funzioni senza applicare questo tipo di traduzione.

Per verificare la mia ipotesi, è possibile utilizzare uno strumento (come parted) che riporta le dimensioni del settore logico . Per esempio:

sudo parted /dev/sda print
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B

Ho omesso un sacco di informazioni da questo risultato. Il dettaglio importante è nella riga finale mostrata qui: le dimensioni del settore logico e fisico sono entrambe di 512 byte. Se si esegue questo test, quindi ricollegare il disco nell'altro modo ed eseguirlo nuovamente, è possibile confrontare i risultati. Se la dimensione del settore logico cambia a seconda di come si collega il disco, la mia ipotesi è corretta ed è l'origine del problema. O almeno, è un problema; potrebbero essercene anche altri. In particolare, l' Error synchronizing after initial wipeerrore che hai citato potrebbe indicare un altro problema. OTOH, potrebbe essere un effetto collaterale dipartednel tentativo di leggere i dati GPT di backup oltre la fine del disco. Ad ogni modo, se vedi un cambiamento nella dimensione del settore logico, dovresti affrontare quel problema prima di affrontare qualsiasi altra cosa. Se si desidera ripartizionare il disco ma si verificano problemi a causa Error synchronizingdell'errore, provare a utilizzare gdisko cgdisk(nel gdiskpacchetto) anziché partedGParted; la gdiskfamiglia è più robusta contro gli errori rispetto alla partedfamiglia.


Credo che il problema sia dovuto al passaggio da usb a interno. In effetti quello era il mio pensiero iniziale ed è per questo che ho ricreato la tabella delle partizioni dopo aver rimesso il disco nel pc e collegato con SATA. (L'ho estratto in primo luogo solo per estrarre i miei dati). Non voglio rimuoverlo di nuovo per testare il settore logico segnalato tramite USB, ma tutti i fatti suggeriscono questo.
qwazix,

Non intendo mantenere le interfacce di commutazione, il disco funziona come è ora, preparato con connessione SATA. Sono solo preoccupato per le penalità di prestazione che hai citato e voglio capire cosa succede davvero. parted /dev/sdb printritorna 512/4096quindi sembra che gParted riporti la dimensione del settore logico, il che spiega perché @LiveWireBT vede 4096 per lo stesso disco (collegato via USB) e conferma anche il tuo sospetto come sopra.
qwazix,

Ha avuto lo stesso problema con un'unità esterna Store'n'Go Verbatim, la dimensione del settore logico è 512 mentre la dimensione fisica è 4096.
gaborous

4

Sono state apportate modifiche sia al kernel che alle utility Linux per supportare le unità Advanced Format. Queste modifiche assicurano che tutte le partizioni sulle unità di formattazione avanzata siano allineate correttamente sui confini del settore 4K. Il supporto del kernel per le unità Advanced Format è disponibile nelle versioni 2.6.31 e successive del kernel. Il supporto per il porzionamento e la formattazione delle unità di formato avanzato è disponibile nelle seguenti utilità di Linux:

Fdisk: GNU Fdisk è un'utilità della riga di comando che partiziona i dischi rigidi. Le versioni 1.2.3 e successive supportano le unità Advanced Format.

Parted: GNU Parted è un'utilità grafica per il partizionamento di dischi rigidi. Le versioni 2.1 e successive supportano unità di formattazione avanzata.

I dischi 4K nativi (4Kn) hanno una dimensione del settore logico di 4 KB. I moderni sistemi operativi possono archiviare dati su questi dischi, ma generalmente non possono avviarsi da questi dischi. Questi dischi sono comunemente unità esterne con connessione USB.

Per creare una partizione utilizzata come dispositivo di archiviazione multimediale, basta premere Ctrl+ Alt+ Tsulla tastiera per aprire Terminale. Quando si apre, esegui i seguenti comandi:

sudo mkfs.ext4 -m 0 /dev/sdb1

La maggior parte dei dischi 4K ha una dimensione del settore fisico di 4096 byte in modo che 3 TB possano adattarsi ai piatti, ma hanno ancora una dimensione del settore logico da 512 B per la compatibilità con i sistemi operativi che prevedono un settore da 512 B. Ecco perché quando si utilizza il comando di stampa in parte per stampare i dettagli, si dice dimensione del settore logico / fisico 512B / 4096B. È normale.

Questa "conversione" viene eseguita dall'intelligence sul disco stesso ed è normale. È come dovrebbe funzionare.

Se non riesci a vedere l'intero 3 TB, controlla prima nel BIOS che non limiti le dimensioni del disco. Forse hai bisogno di un aggiornamento del BIOS per supportare il disco.

Anche l'utilizzo di parted per creare partizioni a partire da 0, che è un errore. È necessario avviare la prima partizione sul settore 2048 che equivale a 1 MiB in modo che le partizioni sul disco siano allineate per prestazioni ottimali.

Quindi, cambia l'unità in MiB, stampa i dettagli del disco che stamperanno anche le dimensioni del disco in MiB e crea la partizione (se vuoi solo una singola partizione) a partire da 1 MiB e terminando all'ultimo MiB (o uno prima dell'ultimo) .

Ad esempio, un disco da 3 TB dovrebbe avere in realtà qualcosa come 2.861.022 MiB. Quindi creare una singola partizione che copra l'intero disco su un dispositivo disco chiamato / dev / sdX sarebbe come (sostituire la X con la lettera corretta):

sudo parted /dev/sdX
unit MiB
mklabel gpt
print (to see the total size in MiB)
mkpart primary 1 2861022
quit

Se le dimensioni del disco sono pochi MiB in più o in meno di 2861022, regolare la posizione finale.

Questo è tutto. Successivamente crea il filesystem che desideri sulla partizione.

Fonti e letture extra

Unità settoriali 4K e Linux

Controllo errori e installazione di unità 4k in Linux

Forum di Ubuntu


Grazie per la risposta, ma in realtà non risponde alla mia domanda. Ho capito che il kernel riconosce le dimensioni del settore dell'unità e che anche gparted dovrebbe riconoscerlo, ma riporta diversamente e sono curioso di sapere se c'è una spiegazione, se si tratta di un bug o se ho fatto qualcosa di sbagliato .
qwazix,

0

Finché allinei le tue partizioni su un multiplo di 4KB, stai bene. Altrimenti non devi fare nulla di speciale per le unità con settori fisici 4KB.

Il vecchio software di partizionamento allineava le partizioni su un multiplo di settori 63x512B, il che comporterebbe cattive prestazioni se l'unità ha settori fisici 4KB perché questo è 31 KiloByte e mezzo, NON un multiplo di 4KB.

Praticamente nessun software di partizionamento disponibile ora in Ubuntu lo farà più (a meno che tu non lo richieda espressamente in qualche modo). La maggior parte si allinea a un multiplo di 1 MiB (settori 2048x512B, che è anche settori 256x4 KB) per impostazione predefinita.

Cosa accadrebbe se non lo allineassi?

Se non si allineano le partizioni a multipli di 4KB, il peggio che accadrà è una perdita di prestazioni (abbastanza significativa per file di piccole dimensioni). Le unità con settori 4KB tendono ad emulare settori 512B per la compatibilità con i sistemi esistenti. Quindi funzionano perfettamente se li consideri semplicemente come un'unità settoriale da 512B. Ma quando scrivi in ​​una singola area da 512B, riscriverà un intero settore 4KB.

Pertanto, per motivi di prestazioni, è importante assicurarsi che i cluster 4KB utilizzati nel file system si allineino con i settori 4KB sull'unità, in modo che la scrittura di un singolo cluster non comporti la necessità di scrivere due settori 4KB sull'unità.

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.