Mit welchem ​​Tool soll ich eine Festplatte als UDF formatieren?

32

(Dies ist eine Fortsetzung von " Was ist die Partitions-ID / der Dateisystemtyp für UDF? ")

Ich kenne zwei Möglichkeiten, eine Festplatte als UDF zu formatieren:

  • Windows Vista oder höher: " format x: /fs:UDF" (nicht verwenden /q!)
  • Linux: " mkudffs --media-type=hd --blocksize=512 /dev/sdx"

Das Problem ist, dass das 'andere' Betriebssystem die Festplatte überhaupt nicht als formatiert erkennt: Es weigert sich einfach, sie zu mounten, egal welche Befehle ich versuche.

Wie kann ich eine Festplatte als UDF formatieren, damit Windows und Linux sie verwenden können?

BEARBEITEN: Die Befehle wurden aktualisiert. Das Ergebnis sollte nun in beiden Betriebssystemen funktionieren.

Skolima
quelle
UDF wurde für optische Medien entwickelt, vielleicht ist das das Problem?
Chopper3
1
Der Befehl, den Sie eingeben, funktioniert unter Linux hervorragend. Ich habe auf Karmic formatiert und kann unter Windows 7 und Karmic lesen und schreiben.
Matt Joiner
4
Vergessen Sie nicht, den MBR zuerst auf Null zu setzen (dd wenn = / dev / null von = / dev / sdx bs = 512 count = 1), um Verwechslungen mit verbleibenden Partitionstabellen zu vermeiden (da UDF den ersten Sektor nicht verwendet).
CesarB
1
Danke Skolima, das ist großartig. Tschüss FAT32. Ich muss nur vorsichtig sein, um mich an die UDF-Version 2.01 und die Blockgröße 512 zu halten, und ich habe die perfekte Festplattenpartition für Linux und Windows.
MarcH

Antworten:

17

Es stellt sich heraus, dass die Verwendung des /qWindows-Schalters der Schuldige war: Er ermöglicht das schnelle Formatieren, dh der Formatierungsprozess wird bei jedem Schreibvorgang auf die Festplatte im Hintergrund fortgesetzt. Sobald es fertig ist, wird das Laufwerk von Linux einwandfrei gehandhabt.

Skolima
quelle
Andererseits scheint die Formatierung mit mkudffs von Linux in Sekundenschnelle erfolgreich abgeschlossen zu sein.
MarcH
Eigentlich musste ich in Win7 eine schnelle Formatierung vornehmen, nachdem ich das Dateisystem mit mkudffs unter Linux erstellt hatte. Ohne das wollte Windows das Laufwerk nur noch formatieren. Aus irgendeinem Grund wurde am Ende des Laufwerks ein 5-MB-Leerraum erstellt. Aber zumindest funktioniert es jetzt in beiden Betriebssystemen.
DanMan
Als Antwort auf mich selbst: Diese 5 MB sind möglicherweise der Metadatenblock in neueren UDF-Versionen.
DanMan
1
Total falsch! Schnelle Formatierung ist NICHT "Fortsetzung des Formats im Hintergrund". Es ist nur die Initialisierung des Dateisystems ohne Formatierung der Spuren.
Anixx
6

Bei der Formatierung von UDF kann nicht genug betont werden, wie wichtig es ist, die richtige Blockgröße für die Formatierung von UDF zu verwenden. Wie hier erläutert , bedeutet die Verwendung einer konfigurierten Blockgröße, die nicht mit der Größe des physischen Sektors übereinstimmt, wahrscheinlich, dass einige Betriebssysteme das Laufwerk nicht als gültige UDF erkennen können.

Inspiriert von der oben genannten Antwort (und meinen anderen Nachforschungen / Tests) habe ich ein Skript geschrieben, um den Formatierungsprozess in UDF zu automatisieren - unter Verwendung der richtig erkannten Sektorgröße. Siehe format-udf auf GitHub . Bemerkenswerte Eigenschaften:

  • Formatiert ein Blocklaufwerk (Festplatte oder Flash-Laufwerk) im Universal Disk Format (UDF)
    • UDF Revision 2.01 für maximale Kompatibilität verwendet
    • Die ersten 4096 Sektoren werden auf Null gesetzt, um alle vorhandenen MBRs zu löschen (erforderlich für eine ordnungsgemäße UDF-Erkennung).
  • Das resultierende Dateisystem kann über mehrere Betriebssystemfamilien hinweg gelesen / geschrieben werden (Windows, OS X und Linux).
  • Läuft auf jedem Betriebssystem mit einer Bash-Umgebung

Wegen des letzten Punktes kann dieses Skript, das ich geschrieben habe, nicht unter Windows verwendet werden. Das Skript wird jedoch unter OS X und Linux ausgeführt. Danach sollte Windows das neu formatierte UDF-Laufwerk auf magische Weise erkennen können.

Um die gestellten Fragen direkt zu beantworten, wird format-udf:

  • Wählen Sie das geeignete Tool für die Formatierung basierend auf Betriebssystem und Umgebung ( mkudffsunter Linux).
  • automatisch alle für die Formatierung erforderlichen Parameter erkennen und ausfüllen (einschließlich blocksize)
  • Maximierung der Betriebssystemkompatibilität (Kompatibilitätstabelle siehe GitHub-Seite)
  • Geben Sie den maximalen Funktionsumfang (und die minimalen Einschränkungen) an, nach denen der Fragesteller sucht
j0nam1el
quelle
5

Wie haben Sie Ihre Entdeckung in der vorherigen Frage (dass das UDF-Dateisystem auf der gesamten Festplatte und nicht auf einer Partition erstellt werden soll) mit diesem Windows-Befehl ("format x: / fs: UDF") in Einklang gebracht? Bei meinen Versuchen vergibt Windows nur Laufwerksbuchstaben an Partitionen.

Was die Formatierung aus Kompatibilitätsgründen betrifft, liegt der Schlüssel meiner Meinung nach in der Blockgröße. Da die meisten Festplatten und USB-Flash-Sticks eine Blockgröße von 512 Byte haben, hatte ich die größte Kompatibilität, als ich die FS mit dieser Blockgröße erstellte. Ich denke, format.com verwendet diese Blockgröße und mkudffs hat einen Befehlsschalter zum Ändern der Blockgröße. Ich konnte OS X und Windows nur dazu bringen, das Dateisystem zu mounten, wenn ich 512-Byte-Blöcke verwendete. Ältere Versionen von Linux haben eine Blockgröße von 2048 angenommen, aber Sie können immer mit "-o bs = 512" mounten.

Das gesamte Problem zwischen Festplatte und Partition verursacht weiterhin Kompatibilitätsprobleme. Windows wird nicht gemountet, wenn ich die gesamte Festplatte formatiere, und OS X schaut bei der Ermittlung des Dateisystems nicht über die Typennummer der Partition hinaus und zwingt mich, sie manuell zu mounten. Linux war das egal, solange ich ihm den entsprechenden Gerätenamen gab (sda vs sda1).

Zusammenfassend ist das kompatibelste Setup, das ich gefunden habe, eine einzelne Partition des Typs 06 (FAT16), die mit UDF in Blockgröße 512 formatiert ist. Funktioniert automatisch unter Windows und einige manuelle Eingriffe unter Linux und OS X.

Simon
quelle
3
Ich habe ein anderes Experiment versucht. Diesmal habe ich einen USB-Stick anstelle einer Festplatte verwendet. Mit "mkudffs --media-type = hd --blocksize = 512 / dev / sda" formatiert, funktioniert problemlos unter Linux, OS X und Vista. Schade, dass Windows anscheinend partitionlose Formate auf USB-Sticks zulässt, aber keine Festplatten.
Simon
Sie möchten auf jeden Fall die gleiche Blockgröße beibehalten
MarcH