So erstellen Sie eine Partitionstabelle auf einem Laufwerk mit einem Dateisystem, das das gesamte Laufwerk belegt

884
jtbr

Ich habe eine 4-TB-Festplatte / dev / sdb, die ein formatiertes NTFS-Dateisystem enthält, das die gesamte Festplatte belegt. Es hat anscheinend keine Partitionstabelle, wenn nicht, ist es veraltet oder beschädigt.

fdisk -l zeigt das:

Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes 255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x2052474d  This doesn't look like a partition table Probably you selected the wrong device.  Device Boot Start End Blocks Id System /dev/sdb1 ? 6579571 1924427647 958924038+ 70 DiskSecure Multi-Boot Partition 1 does not start on physical sector boundary. /dev/sdb2 ? 1953251627 3771827541 909287957+ 43 Unknown Partition 2 does not start on physical sector boundary. /dev/sdb3 ? 225735265 225735274 5 72 Unknown Partition 3 does not start on physical sector boundary. /dev/sdb4 2642411520 2642463409 25945 0 Empty  Partition table entries are not in disk order 

gdisk -l sagt, dass nur eine MBR-Partitionstabelle vorhanden ist.

Das Laufwerk funktioniert gut unter Linux. Ich kann / dev / sdb ohne Probleme mounten. Aber ich möchte das Laufwerk mit einem Festplattenlaufwerk auf einem Windows-Computer laden, damit ich darauf laufen chkdskkann. Windows sieht jedoch diesen MBR wie in fdisk gezeigt und zeigt 4 Partitionen, von denen keine verwendbar ist (keine ist sogar als NTFS gekennzeichnet).

Ist es möglich, einfach eine Partitionstabelle auf dieses Laufwerk zu schreiben, ohne den Inhalt des NTFS-Dateisystems zu ändern, sodass Windows 7 als einzelne Partition darauf zugreifen kann, die das gesamte Laufwerk belegt? Wenn das so ist, wie?

Edit: Wenn es nicht möglich ist, einfach eine Partitionstabelle zu schreiben, gibt es eine nicht-destruktive Methode, um dasselbe Ziel der Verwendung des Laufwerks unter Windows zu erreichen, indem beispielsweise das Dateisystem um einige Kilobyte verkleinert und dann eine Partitionstabelle geschrieben wird? (dh mit gparted).

1
Sie haben das Laufwerk geklont, das ich vermute? Ramhound vor 7 Jahren 0
@Ramhound - Nein, ich habe es gerade von der Linux-Maschine entfernt und in ein Gehäuse gelegt, um es auf einer Windows-Maschine zu verwenden. jtbr vor 7 Jahren 0
Verwandte Themen: [Windows mounten USB NTFS-Superfloppy nicht] (https://superuser.com/q/1060252/432690), [Verwendet Festplattenkonfiguration mit einer Partition] (https://superuser.com/q/1181320/432690) ). Kamil Maciorowski vor 7 Jahren 1
Die fdisk-Ausgabe sieht genauso aus wie die Antwort auf [Windows mounten USB NTFS-Superfloppy nicht] (https://superuser.com/questions/1060252/windows-does-not-mount-usb-ntfs-superfloppy), wie von @KamilMaciorowski vorgeschlagen , gleiche Namen, Anfang, Ende, Blöcke, Id ... wäre ein Duplikat, es sei denn, es wird kein neuer MBR / GPT erstellt - Kamil. Es scheint, als wäre Platz vorhanden, um einen regulären MBR über die VBR des Superflopys zu schreiben (beide 512 Bytes), gibt es, und würde das Dateisystem nicht beschädigen? Xen2050 vor 7 Jahren 0
@ Xen2050 Ich denke es würde dem Dateisystem schaden. Soweit ich weiß, speichert NTFS einige Metadaten in VBR. Sie könnten nur das Partitionstabellenfragment ändern, und dies würde den NTFS-Bootstrap-Code beeinträchtigen (und ich denke, man könnte damit leben, da dort Textzeichenfolgen vorhanden sind. Überprüfen Sie meine Antwort auf die verknüpfte Frage). Das Problem ist, dass die Festplatte hier 4 TB hat und wahrscheinlich GPT benötigt. und GPT erfordert (glaube ich) einen vollständigen Sektor als alten MBR und gleich 33312 Bytes sowie einen ähnlichen Speicherplatz am Ende der Festplatte. Kamil Maciorowski vor 7 Jahren 0
@ KamilMaciorowski Ich habe deine andere Antwort "überarbeitet" ;-) Ich dachte, VBR sei vom NTFS getrennt, aber ich denke, es ist ein Teil davon. Ich bin mir ziemlich sicher, dass ich 32 GB USB-Laufwerke mit MBRs habe, also sollte dies mit einem MBR in Ordnung sein, schade, dass es nicht ein paar freie Blöcke hinterlassen hat, bevor das NTFS offiziell gestartet wurde (oder da ist). Xen2050 vor 7 Jahren 0
Sie können die Größe der Partition mithilfe von Linux etwas (oder mehr als ein bisschen, je nachdem, wie leer sie ist) ändern. Machen Sie dann ein Image auf ein anderes Laufwerk, überspringen Sie jedoch ein paar Sektoren, z. B. 4096 Byte, auf dem Ziellaufwerk (dh verschieben Sie die Kopie um diesen Betrag). Verwenden Sie dann Testdisk auf dem neuen Laufwerk, um die Partitionstabelle neu zu erstellen. :) Andrea Lazzarotto vor 7 Jahren 0

2 Antworten auf die Frage

3
pbies

In dieser speziellen Situation können Sie keinen MBR auf dieses Laufwerk schreiben, da dadurch alle Daten verloren gehen. Am besten kopieren Sie alle Daten an anderer Stelle und partitionieren das Laufwerk unter Windows mit diskmgmt.msc.

+1. Ich kann mir eine Lösung vorstellen (ungeprüft), die "ntfsresize", "ddrescue --reverse" und zB "gdisk" verwendet. Bevor Sie einen solchen Trick ausführen, sollten Sie die Daten sichern. Wenn ich meine Sicherung trotzdem habe, würde ich Ihre Lösung wählen, die so viel einfacher ist. Kamil Maciorowski vor 7 Jahren 0
Es besteht die Möglichkeit, dass GParted das macht, was Sie wollen, aber ich bin mir nicht sicher, ob Sie es versuchen müssten. Das Bewegen der Partition um 1 MB zu Beginn und die Verwendung von testdisk zum Schreiben von MBR sollte ausreichend sein. pbies vor 7 Jahren 0
Ich habe die Daten an verschiedenen Stellen gesichert, aber nicht geklont, und ich habe kein Ersatz-4-TB-Laufwerk herum, um sie zu klonen (und dazu sind viele Daten zu kopieren). Ich versuche dies in erster Linie, weil ich mir Sorgen um die Beschädigung des Dateisystems mache und das Kopieren möglicherweise ohnehin nicht funktioniert. Angesichts der Risiken denke ich, ich lasse die Dinge einfach stehen. Es scheint, dass die Lektion für immer _ immer _ Partitionierung ist, nur für den Fall. jtbr vor 7 Jahren 0
0
Rod Smith

Im Prinzip könnte man so etwas machen:

  1. Verwenden Sie ntfsresizediese Option, um das vorhandene Dateisystem um einen kleinen Betrag zu verkleinern (theoretisch sollten 2081 Sektoren ausreichen, aber ich würde mindestens 2 MiB tun, um sicherzugehen).
  2. Verschieben Sie das Dateisystem um einen bestimmten Betrag in die Festplatte. 1 MiB sollte optimal sein. Dies ist der knifflige Teil, da Sie von demselben Gerät lesen und auf dasselbe schreiben, und es ist unbedingt erforderlich, dass dies auf eine Weise geschieht, die keine Daten überschreibt, bevor sie kopiert werden. Mit anderen Worten, Sie müssten vom Ende des Dateisystems aus kopieren, anstatt den allgemeineren Ansatz, dies von Anfang an zu tun. Ich kenne kein Werkzeug, das dies tun kann, abgesehen von Tools zum Ändern der Partitionsgröße wie GParted - und AFAIK. Für alle diese Tools muss eine Partitionstabelle vorhanden sein. Ein Skript, das dddazu verwendet wird, wäre zwar möglich und nicht sehr schwer zu schreiben, erfordert jedoch sorgfältige Tests.
  3. Erstellen Sie auf dem Datenträger eine Partitionstabelle mit einer einzelnen Partition, die am neuen Startpunkt des Dateisystems beginnt und dort endet, wo das Dateisystem endet.

Wenn Sie kein Werkzeug finden können, das Schritt 2 mit etwas ähnlicher Sicherheit ausführt, ist das Kopieren der Daten von der Festplatte, das Erstellen von Partitionen und das Wiederherstellen der Daten, wie es von pbies vorgeschlagen wird, wahrscheinlich die beste Lösung. Dies kann sogar schneller sein als der Versuch, das gesamte Dateisystem zu verschieben, insbesondere wenn das Dateisystem meistens leer ist. Selbst wenn Sie ein Werkzeug finden, um Schritt 2 (oder die gesamte Prozedur) auf einmal auszuführen, würde ich dringend empfehlen, vor dem Fortfahren ein Backup zu erstellen, da die hier beschriebene Prozedur ziemlich gefährlich ist.

Als Nebenkommentar klingt das so, als hätten Sie diese NTFS-Diskette ausschließlich unter Linux verwendet. Sie haben einen zwingenden Grund gefunden, dies nicht zu tun: Die NTFS-Wartungstools von Linux sind bestenfalls rudimentär. Wenn Sie vorhaben, ausschließlich auf die Daten von Linux aus zuzugreifen, empfiehlt es sich, eine Sicherungskopie zu erstellen, Partitionen zu erstellen, Linux-native Dateisysteme zu erstellen und die Daten auf den neuen Linux-Native-Dateisystemen wiederherzustellen. Auf diese Weise können Sie Dateisystemschäden in Linux besser reparieren, ohne Windows zu involvieren.

Vielen Dank. Der Grund, warum ich NTFS verwende, ist der kleinste gemeinsame Nenner zwischen Linux und MacOS, den ich dual boote. Die Gefahren des plattformübergreifenden ... jtbr vor 7 Jahren 0
Für einen Linux / macOS-Dual-Boot empfehle ich HFS +. Dies ist das native Dateisystem des Mac, und Linux bietet eine wesentlich bessere HFS + -Unterstützung als die NTFS-Unterstützung. Die eine Komplikation dieses Ansatzes gegenüber NTFS sind Berechtigungen, die mit NTFS ironischerweise einfacher ist, da sie * weniger * mit * beiden * Betriebssystemen kompatibel ist, die Sie verwenden. Siehe [diese Askubuntu-Frage und meine Antwort darauf] (https://askubuntu.com/questions/315078/how-to-manage-permissions-on-a-shared-volume-for-osx-und-ubuntu) für weitere Einzelheiten wie man es zum Laufen bringt. Rod Smith vor 7 Jahren 0
Endlich bekam ich ein Ersatzlaufwerk und wollte wissen, ob ich das alte Laufwerk zum Laufen bringen kann (mein Plan lautete, "ddrescue --reverse" für Schritt 2 zu verwenden). Leider ist es in Schritt 1 fehlgeschlagen, weil ntfsresize Dateikonsistenzprobleme gefunden hat, die von ntfsfix nicht behoben werden können (es heißt "chkdisk / f"), weshalb ich es in erster Linie auf eine Partition verschieben wollte , keine rohen Laufwerke, und vermeiden Sie NTFS wenn möglich. jtbr vor 6 Jahren 0