Ich habe eine 3-TB-Festplatte vom Typ Seagate ST3000DM001 gekauft. Es wurde in einem Gehege verkauft. Ich habe auf ext4 formatiert, einige Daten darauf kopiert und sie dann aus dem Gehäuse entfernt und direkt mit dem Motherboard verbunden. Meine Daten waren für das Betriebssystem nicht sichtbar (es wurde eine unbekannte ~ 300GiB-Partition und der Rest als freier Speicherplatz angezeigt), sodass ich anfing, mehr über Advanced Format und Laufwerke mit mehr als 2 TB zu lesen.
Ich habe die Festplatte wieder mit USB verbunden, alle Daten kopiert und wieder an SATA angeschlossen. Ich benutzen GParted eine GPT - Partitionstabelle zu erstellen (der ubuntu Festplatte - Dienstprogramm läßt mich nicht mit Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0
), erstellt eine große 3TB Ext4 - Partition, verließ den Standard Align to
auf Wert MiB
und formatierte.
Das Laufwerk wird korrekt erkannt und ordnungsgemäß aktiviert. Dateien können erfolgreich von und auf das Laufwerk kopiert werden.
Jedoch:
Gparted zeigt die Festplatte mit 512k Sektoren, von denen ich weiß, dass sie nicht wahr ist 1
während cat /sys/block/sdb/queue/physical_block_size
berichtet4096
Ich habe einige Berichte gefunden, libparted
die ein Problem mit Nicht-512k-Sektoren 2 und anderen 3 haben , die besagen, dass die Ausrichtung auf MiB ausreicht.
Parted meldet, dass das Laufwerk ausgerichtet ist, wenn ich "Minimal" wähle:
(parted) align-check
alignment type(min/opt) [optimal]/minimal? min
Partition number? 1
1 aligned
(parted)
Ist meine Konfiguration korrekt? Habe ich Leistungseinbußen, weil die Festplatte mit 512.000 Sektoren formatiert ist, gParted falsche Werte meldet oder ich das Ganze falsch verstanden habe?
quelle
Antworten:
Es werden 512 Byte gemeldet, da dies die logische Sektorgröße für die Abwärtskompatibilität mit älteren Betriebssystemen (Windows) ist. (g) parted richtet Partitionen auf 1 MB aus, was mehr als genug ist, um mit Laufwerken mit 4 KB physischen Sektoren ordnungsgemäß zu funktionieren. Es ist also in Ordnung, wie es ist.
quelle
Erstens weisen die meisten Advanced Format-Laufwerke eine logische Sektorgröße von 512 Byte auf, obwohl die physische Sektorgröße 4096 Byte (4 KB) beträgt. Dies geschieht durch Jonglieren von Daten in der Firmware des Laufwerks. Wenn die Partitionen nicht richtig ausgerichtet sind , kann dies zu Leistungsproblemen führen . Möglicherweise ist dies jedoch nicht die Ursache für Ihr Problem, und Ihr Fokus auf die Partitionsausrichtung ist falsch platziert. (Um sicher zu gehen, Partitionsausrichtung ist wichtig, es ist nur nicht die Ursache des Problems.)
Meine Vermutung (und es istnur eine Vermutung) ist, dass Ihr Problem durch den Wechsel zwischen einem USB-Gehäuse und dem direkten Anschluss der Festplatte entsteht. Einige Gehäuse übersetzen logische 512-Byte-Sektoren auf der Festplatte in logische 4096-Byte-Sektoren, die dem Computer angezeigt werden - das Gegenteil von dem, was die Firmware auf einer Advanced Format-Festplatte leistet. Ich bin mir nicht sicher, aber ich vermute, dass einige Gehäuse dies nur bei Festplatten mit mehr als 2 TB tun. Sowohl MBR- als auch GPT-Partitionierungsschemata beziehen sich auf Daten nach Sektornummern. Wenn Sie also die Sektorgröße ändern, werden die Partitionierungsdaten ungültig. Wenn Sie also die Festplatte in einem USB-Gehäuse vorbereiten, das auf diese Weise übersetzt wird, und dann versuchen, die Festplatte direkt zu verwenden (oder umgekehrt), werden Fehler angezeigt, da die Partitionen (und sogar die GPT-Sicherungsdaten) nicht vorhanden sind wo der Computer es erwartet. Es wäre, als würde man einer Person mit verbundenen Augen sagen "
Die Lösung für dieses Problem besteht darin, die Festplatte auf eine Weise vorzubereiten und zu verwenden: Verwenden Sie entweder das USB-Gehäuse oder eine direkte Verbindung, nicht beides. Wenn beide aus irgendeinem Grund erforderlich sind, müssen Sie ein Gehäuse finden, das ohne diese Art der Übersetzung funktioniert.
Um meine Hypothese zu testen, können Sie ein Tool (wie
parted
) verwenden, das logische Sektorgrößen meldet . Zum Beispiel:Ich habe eine Reihe von Informationen aus dieser Ausgabe weggelassen. Das wichtige Detail befindet sich in der letzten hier gezeigten Zeile: Die logischen und physischen Sektorgrößen betragen jeweils 512 Bytes. Wenn Sie diesen Test ausführen, schließen Sie den Datenträger erneut an und führen Sie ihn erneut aus, um die Ergebnisse zu vergleichen. Wenn sich die Größe des logischen Sektors in Abhängigkeit davon ändert, wie Sie die Festplatte anhängen, ist meine Hypothese korrekt und die Ursache für Ihr Problem. Oder zumindest ist es ein Problem; es kann auch andere geben. Insbesondere der von
Error synchronizing after initial wipe
Ihnen erwähnte Fehler könnte auf ein anderes Problem hinweisen. OTOH, das könnte eine Nebenwirkung von seinparted
versucht, Backup-GPT-Daten über das Ende der Festplatte hinaus zu lesen. In jedem Fall sollten Sie sich mit diesem Problem befassen, wenn sich die Größe des logischen Sektors ändert, bevor Sie sich mit etwas anderem befassen. Wenn Sie die Festplatte neu partitionieren möchten, aber aufgrund desError synchronizing
Fehlers Probleme haben , versuchen Sie,gdisk
odercgdisk
(imgdisk
Paket) anstelle vonparted
oder GParted zu verwenden. Diegdisk
Familie ist robuster gegen Fehler als dieparted
Familie.quelle
parted /dev/sdb print
gibt512/4096
anscheinend gParted die logische Sektorgröße zurück, was erklärt, warum @LiveWireBT 4096 für dieselbe Festplatte (über USB verbunden) erkennt und Ihre Vermutung wie oben bestätigt.Sowohl am Linux-Kernel als auch an den Dienstprogrammen wurden Änderungen vorgenommen, um Advanced Format-Laufwerke zu unterstützen. Diese Änderungen stellen sicher, dass alle Partitionen auf Advanced Format-Laufwerken ordnungsgemäß an 4K-Sektorgrenzen ausgerichtet sind. Die Kernel-Unterstützung für Advanced Format-Laufwerke ist in Kernel-Versionen 2.6.31 und höher verfügbar. Die Unterstützung für das Portionieren und Formatieren von Advanced Format-Laufwerken ist in den folgenden Linux-Dienstprogrammen verfügbar:
Fdisk: GNU Fdisk ist ein Befehlszeilenprogramm, das Festplatten partitioniert. Die Versionen 1.2.3 und höher unterstützen Advanced Format-Laufwerke.
Parted: GNU Parted ist ein grafisches Dienstprogramm zum Partitionieren von Festplatten. Ab Version 2.1 werden Advanced Format-Laufwerke unterstützt.
4K native (4Kn) Festplatten haben eine logische Sektorgröße von 4 KB. Moderne Betriebssysteme können Daten auf diesen Datenträgern speichern, können jedoch im Allgemeinen nicht von diesen Datenträgern booten. Diese Datenträger sind normalerweise externe Laufwerke mit USB-Anschluss.
Um eine Partition als Medienspeichergerät zu erstellen, drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus:
Die meisten 4-KByte-Festplatten haben eine physische Sektorgröße von 4096 Byte, sodass 3 TByte auf die Platten passen, aber sie haben immer noch eine logische Sektorgröße von 512 TByte, um mit Betriebssystemen kompatibel zu sein, die einen Sektor mit 512 TByte erwarten. Wenn Sie den Befehl print in parted verwenden, um die Details zu drucken, heißt das, dass die Sektorgröße logisch / physikalisch 512B / 4096B ist. Das ist normal.
Diese "Konvertierung" wird von der Intelligenz auf der Festplatte selbst durchgeführt und ist normal. So sollte es funktionieren.
Wenn Sie nicht alle 3 TB anzeigen können, überprüfen Sie zunächst im BIOS, ob die Festplattengröße dadurch nicht eingeschränkt wird. Möglicherweise benötigen Sie ein BIOS-Update, um die Festplatte zu unterstützen.
Verwenden Sie auch parted, um eine Partition ab 0 zu erstellen, was ein Fehler ist. Sie müssen die erste Partition auf Sektor 2048 starten, was 1 MB entspricht, damit die Partitionen auf der Festplatte für eine optimale Leistung ausgerichtet sind.
Ändern Sie also die Einheit in "MiB", drucken Sie die Datenträgerdetails, die auch die Datenträgergröße in "MiB" ausgeben, und erstellen Sie die Partition (wenn Sie nur eine einzelne Partition wünschen), beginnend mit 1 MB und endend mit der letzten (oder vorletzten) MiB. .
Zum Beispiel sollte eine 3-TB-Festplatte in Wirklichkeit etwa 2.861.022 MiB haben. Das Erstellen einer einzelnen Partition, die sich über die gesamte Festplatte erstreckt, auf einem Festplattengerät mit dem Namen / dev / sdX sieht folgendermaßen aus (ersetzen Sie das X durch den richtigen Buchstaben):
Wenn die Festplattengröße einige MiB mehr oder weniger als 2861022 beträgt, passen Sie die Endposition an.
Das ist es. Danach erstellen Sie das gewünschte Dateisystem auf der Partition.
Quellen und zusätzliche Lektüre
4K-Sektor-Laufwerke und Linux
Fehlerprüfung und Installation von 4k-Laufwerken unter Linux
Ubuntu-Foren
quelle
Solange Sie Ihre Partitionen auf ein Vielfaches von 4 KB ausrichten, ist alles in Ordnung. Ansonsten müssen Sie für Laufwerke mit physischen 4-KB-Sektoren nichts Besonderes tun.
Alte Partitionssoftware hat Partitionen auf einem Vielfachen von 63x512B Sektoren ausgerichtet, was zu einer schlechten Leistung führt, wenn das Laufwerk über 4 KB physische Sektoren verfügt, da dies 31,5 KB und NICHT ein Vielfaches von 4 KB sind.
In Ubuntu ist praktisch keine Partitionierungssoftware mehr verfügbar (es sei denn, Sie fordern dies ausdrücklich an). Die meisten werden standardmäßig auf ein Vielfaches von 1MiB (2048x512B Sektoren, also 256x4KB Sektoren) ausgerichtet.
Was würde passieren, wenn Sie es nicht ausrichten würden?
Wenn Sie die Partitionen nicht auf ein Vielfaches von 4 KB ausrichten, ist das Schlimmste, was passieren wird, ein Leistungsverlust (ein ziemlich schwerwiegender für kleine Dateien). Laufwerke mit 4-KB-Sektoren emulieren aus Kompatibilitätsgründen mit vorhandenen Systemen in der Regel 512-KB-Sektoren. Sie funktionieren also einwandfrei, wenn Sie sie nur als 512-B-Sektor-Laufwerk behandeln. Wenn Sie jedoch in einen einzelnen 512-KB-Bereich schreiben, wird ein ganzer 4-KB-Sektor neu geschrieben.
Aus Gründen der Leistung ist es daher wichtig, sicherzustellen, dass die in Ihrem Dateisystem verwendeten 4-KB-Cluster mit den 4-KB-Sektoren auf dem Laufwerk übereinstimmen, damit beim Schreiben eines einzelnen Clusters nicht zwei 4-KB-Sektoren auf das Laufwerk geschrieben werden müssen.
quelle