Comment formater un disque dur de secteur 4k?

12

J'ai acheté un disque dur Seagate ST3000DM001 de 3 To. Il a été vendu à l'intérieur d'une enceinte. J'ai formaté en ext4, copié des données dessus, puis je l'ai retiré du boîtier et connecté directement à la carte mère. Mes données n'étaient pas visibles pour le système d'exploitation (il voyait une partition ~ 300GiB inconnue et le reste comme espace libre), alors j'ai commencé à lire sur Advanced Drive et> 2TB.

J'ai à nouveau connecté le disque avec USB, copié toutes les données et branché à nouveau sur sata. J'ai utilisé gparted pour créer une table de partition GPT (l'utilitaire de disque ubuntu ne me le permettait pas Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0), j'ai créé une grande partition Ext4 de 3 To, laissé la Align tovaleur par défaut à MiBet formaté.

Le lecteur est reconnu correctement et se monte correctement. Les fichiers peuvent être copiés depuis et vers le lecteur avec succès.

Pourtant:

Gparted montre le disque ayant 512k secteurs que je sais n'est pas vrai 1

capture d'écran gparted

tandis que les cat /sys/block/sdb/queue/physical_block_sizerapports4096

J'ai trouvé certains rapports qui libpartedont un problème avec les secteurs non 512k 2 et d'autres 3 qui disent que l'alignement sur MiB est suffisant.

Parted rapporte que le lecteur est aligné lorsque je choisis minimal:

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

Ma configuration est-elle correcte? Ai-je une pénalité de performance parce que le disque est formaté avec 512k secteurs, gParted rapporte-t-il de fausses valeurs ou j'ai mal compris le tout?

  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
qwazix
la source
J'ai quelques-uns de ces disques Seagte ainsi que des disques WD et Fujitsu / HGST 3 To et ils fonctionnent tous sans problème. Vous avez peut-être raison sur GParted, car mon Seagate, qui est actuellement connecté via USB, affiche une taille de secteur de 4096 dans GParted. Ma version GParted est 0.12.1, la valeur par défaut de quantal.
LiveWireBT
Je crois qu'il affichera également 4096 ici si je le connecte via USB. Il y a de la magie dans le contrôleur USB-SATA.
qwazix
QA pertinent: superuser.com/questions/679725/…
qwazix

Réponses:

5

Il signale 512 octets car il s'agit de la taille de secteur logique pour la compatibilité descendante avec les anciens systèmes d'exploitation (Windows). (g) parted aligne les partitions à 1 Mio, ce qui est plus que suffisant pour fonctionner correctement avec des disques utilisant des secteurs physiques 4k, donc c'est bien comme ça.

psusi
la source
11

Premièrement, la plupart des disques au format avancé présentent une taille de secteur logique de 512 octets, même si la taille du secteur physique est de 4096 octets (4 Ko). Cela se fait en jonglant avec les données du micrologiciel du lecteur, et cela peut entraîner des problèmes de performances si les partitions ne sont pas correctement alignées. Il y a de fortes chances que ce ne soit pas la source de votre problème, et votre concentration sur l'alignement des partitions est mal placée. (Pour être sûr, l'alignement des partitions est important; ce n'est tout simplement pas la source de votre problème.)

Mon instinct me dit (et il estjuste un pressentiment) est que votre problème résulte de la commutation entre un boîtier USB et la connexion directe du disque. Certains boîtiers traduisent des secteurs logiques de 512 octets sur le disque en secteurs logiques de 4096 octets présentés à l'ordinateur, c'est-à-dire l'opposé de ce que fait le micrologiciel d'un disque au format avancé. Je ne suis pas positif, mais je soupçonne que certains boîtiers ne le font que sur des disques de plus de 2 To. Les schémas de partitionnement MBR et GPT font référence aux données par numéros de secteur, donc la modification de la taille du secteur invalide les données de partitionnement. Ainsi, si vous préparez le disque dans un boîtier USB qui se traduit de cette manière, puis essayez d'utiliser le disque directement (ou vice-versa), vous verrez des erreurs car les partitions (et même les données de sauvegarde GPT) ne seront pas où l'ordinateur s'attend à ce qu'il soit. Ce serait comme dire à une personne aux yeux bandés de "

La solution à ce problème consiste à préparer et à utiliser le disque dans une manière - soit utiliser le boîtier USB ou utiliser une connexion directe, mais pas les deux. Si les deux sont nécessaires pour une raison quelconque, vous devrez trouver une pièce jointe qui fonctionne sans appliquer ce type de traduction.

Pour tester mon hypothèse, vous pouvez utiliser un outil (comme parted) qui rapporte des tailles de secteurs logiques . Par exemple:

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

J'ai omis un tas d'informations de cette sortie. Le détail important se trouve dans la dernière ligne illustrée ici: Les tailles des secteurs logique et physique sont de 512 octets. Si vous exécutez ce test, puis rattachez le disque dans l'autre sens et réexécutez-le, vous pouvez comparer les résultats. Si la taille du secteur logique change en fonction de la façon dont vous attachez le disque, mon hypothèse est correcte et c'est la source de votre problème. Ou du moins, c'est un problème; il peut y en avoir d'autres aussi. En particulier, l' Error synchronizing after initial wipeerreur que vous avez mentionnée pourrait indiquer un autre problème. OTOH, cela pourrait être un effet secondaire departedessayer de lire les données de sauvegarde GPT au-delà de la fin du disque. Quoi qu'il en soit, si vous voyez un changement dans la taille du secteur logique, vous devez résoudre ce problème avant de traiter autre chose. Si vous souhaitez repartitionner le disque mais rencontrez des problèmes en raison de l' Error synchronizingerreur, essayez d'utiliser gdiskou cgdisk(dans le gdiskpackage) plutôt que partedou GParted; la gdiskfamille est plus robuste contre les erreurs que la partedfamille.

Rod Smith
la source
Je crois que le problème est dû au basculement entre USB et interne. En effet, c'était ma pensée initiale et c'est pourquoi j'ai recréé la table de partition après avoir remis le disque dans le PC et connecté avec sata. (Je l'ai retiré en premier lieu juste pour retirer mes données). Je ne veux pas le supprimer à nouveau pour tester le secteur logique signalé via USB, mais tous les faits le suggèrent.
qwazix
Je n'ai pas l'intention de garder les interfaces de commutation, le disque fonctionne tel qu'il est maintenant, préparé sous connexion SATA. Je m'inquiète simplement des pénalités de performance que vous avez mentionnées et je veux comprendre ce qui se passe réellement. parted /dev/sdb printrenvoie 512/4096donc il semble que gParted signale la taille du secteur logique, ce qui explique pourquoi @LiveWireBT voit 4096 pour le même disque (connecté via USB) et confirme également votre intuition comme ci-dessus.
qwazix
Eu le même problème avec un disque externe Verbatim Store'n'Go, la taille du secteur logique est 512 tandis que la taille physique est 4096.
gaborous
4

Des modifications ont été apportées au noyau Linux et aux utilitaires pour prendre en charge les disques au format avancé. Ces modifications garantissent que toutes les partitions des disques au format avancé sont correctement alignées sur les limites des secteurs 4K. La prise en charge du noyau pour les disques au format avancé est disponible dans les versions 2.6.31 et supérieures du noyau. La prise en charge du partitionnement et du formatage des disques Advanced Format est disponible dans les utilitaires Linux suivants:

Fdisk: GNU Fdisk est un utilitaire de ligne de commande qui partitionne les disques durs. Les versions 1.2.3 et supérieures prennent en charge les lecteurs au format avancé.

Parted: GNU Parted est un utilitaire graphique pour partitionner les disques durs. Les versions 2.1 et supérieures prennent en charge les lecteurs Advanced Format.

Les disques 4K natifs (4Kn) ont une taille de secteur logique de 4 Ko. Les systèmes d'exploitation modernes peuvent stocker des données sur ces disques, mais ils ne peuvent généralement pas démarrer à partir de ces disques. Ces disques sont généralement des disques externes avec connexion USB.

Pour créer une partition utilisée comme périphérique de stockage multimédia, appuyez simplement sur Ctrl+ Alt+ Tsur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

sudo mkfs.ext4 -m 0 /dev/sdb1

La plupart des disques 4k ont ​​une taille de secteur physique de 4096 octets afin que 3 To puissent tenir sur les plaques, mais ils ont toujours une taille de secteur logique de 512B pour la compatibilité avec les systèmes d'exploitation qui s'attendent à ce qu'un secteur soit 512B. C'est pourquoi lorsque vous utilisez la commande d'impression en partie pour imprimer les détails, c'est la taille du secteur logique / physique 512B / 4096B. C'est normal.

Cette "conversion" est effectuée par l'intelligence sur le disque lui-même, et c'est normal. C'est ainsi que cela devrait fonctionner.

Si vous ne pouvez pas voir l'ensemble des 3 To, vérifiez d'abord dans le BIOS que cela ne limite pas la taille du disque. Vous avez peut-être besoin d'une mise à jour du BIOS pour prendre en charge le disque.

Utiliser également parted pour créer une partition à partir de 0, ce qui est une erreur. Vous devez démarrer la première partition sur le secteur 2048 qui équivaut à 1 Mo afin que les partitions sur le disque soient alignées pour des performances optimales.

Donc, changez l'unité en MiB, imprimez les détails du disque qui imprimeront également la taille du disque en MiB, et créez la partition (si vous ne voulez qu'une seule partition) à partir de 1 Mo et se terminant au dernier MiB (ou un avant le dernier) .

Par exemple, un disque de 3 To devrait avoir en réalité quelque chose comme 2 861 022 MiB. Donc, créer une seule partition couvrant tout le disque sur un périphérique de disque appelé / dev / sdX serait comme (remplacer le X par la bonne lettre):

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

Si la taille du disque est de quelques Mio plus ou moins de 2861022, ajustez l'emplacement de fin.

C'est ça. Après cela, créez le système de fichiers que vous souhaitez sur la partition.

Sources et lectures supplémentaires

Lecteurs 4K et Linux

Vérification des erreurs et installation de lecteurs 4k sous Linux

Forums Ubuntu

Mitch
la source
Merci pour la réponse, mais cela ne répond pas vraiment à ma question. J'obtiens que le noyau reconnaît la taille du secteur du disque et que gparted est censé le reconnaître aussi, mais il signale le contraire et je suis curieux de savoir s'il y a une explication à cela, s'il s'agit d'un bogue ou si j'ai fait quelque chose de mal .
qwazix
0

Tant que vous alignez vos partitions sur un multiple de 4 Ko, tout va bien. Sinon, vous n'avez rien à faire de spécial pour les disques avec des secteurs physiques de 4 Ko.

Les anciens logiciels de partitionnement alignaient les partitions sur un multiple de secteurs de 63x512B, ce qui entraînerait de mauvaises performances si le lecteur a des secteurs physiques de 4KB car cela fait 31 kilo-octets et demi, PAS un multiple de 4KB.

Pratiquement aucun logiciel de partitionnement disponible actuellement dans Ubuntu ne le fera plus (sauf si vous le demandez spécifiquement d'une manière ou d'une autre). La plupart s'aligneront sur un multiple de 1 Mo (secteurs de 2048x512B, qui est également 256x4 Ko) par défaut.

Que se passerait-il si vous ne l'aligniez pas?

Si vous n'alignez pas les partitions sur des multiples de 4 Ko, le pire qui se produira est une perte de performances (assez importante pour les petits fichiers). Les lecteurs avec des secteurs de 4KB ont tendance à émuler des secteurs de 512B pour la compatibilité avec les systèmes existants. Ils fonctionnent donc parfaitement bien si vous les traitez simplement comme un lecteur de secteur 512B. Mais lorsque vous écrivez dans une seule zone 512B, cela réécrira tout un secteur 4KB.

Ainsi, pour des raisons de performances, il est important de s'assurer que les clusters de 4 Ko que vous utilisez dans votre système de fichiers s'alignent avec les secteurs de 4 Ko sur le lecteur, afin qu'une seule écriture de cluster n'entraîne pas la nécessité d'écrire deux secteurs de 4 Ko sur le lecteur.

thomasrutter
la source