Kann und soll UDF als Festplattenformat verwendet werden?

32

Vor einiger Zeit habe ich UDF als Lösung für ein plattformübergreifendes Format für ein Laufwerk gesehen, das unter Linux, Mac OS X und Windows XP und höher verwendet wird.

Ich habe hier gesucht und nicht den gleichen Vorschlag gefunden (die meisten schlagen ntfs-3g vor, was anscheinend Geld kostet und auf einem Mac nicht vorinstalliert ist).

Meine Frage lautet also: Wie wird das richtig gemacht und hat das jemand gemacht? Haben Sie dann das Laufwerk gefüllt und einige Dateien gelöscht, um festzustellen, dass alles wie ein echtes R / W-Format funktioniert, obwohl es anscheinend in erster Linie ein einmaliges Schreibformat war?

Nennen Sie mich verrückt, aber ich würde es wirklich mögen, wenn das UDF-System auch automatisch bereitgestellt und vom angemeldeten Benutzer beschreibbar wäre. Was ich bisher versucht habe (udftools Formatierung wie von Kicsyromy erwähnt), geht diesen Wunsch nicht an.

dlamblin
quelle
1
Eine Klarstellung: ntfs-3gist kostenlos. Der Quellcode ist kostenlos (dh kostenlos verfügbar). Es ist auch frei wie in Freiheit . ntfs-3gist der NTFS-Treiber in Ubuntu! Die manuelle Erstellung / Installation unter OS X ist etwas technisch und Tuxera (sein Entwickler) bietet eine proprietäre Payware-Version an, die im Wesentlichen den kostenlosen ntfs-3gTreiber enthält, der für die einfache Installation und Verwendung unter OS X entwickelt und verpackt wurde Da X nur NTFS-Volumes liest (nicht schreibt), ist es richtig, ein anderes Dateisystem in Betracht zu ziehen.
Eliah Kagan
@EliahKagan Wenn ntfs-3g also "kostenlos" ist, warum hat Apple es dann nicht eingebunden, um die R / W-Unterstützung für NTFS zu ermöglichen?
user29020
@ user29020 Ich weiß nicht, ob Apple es nicht einbindet, aber Sie können überprüfen, ob es kostenlos ist, indem Sie den Quellcode (derzeit diese Datei ) herunterladen , ihn extrahieren und feststellen, dass es sich bei der COPYINGDatei um die GNU GPL handelt . Vielleicht wollte Apple die Arbeit nicht machen, um sie zu integrieren, damit sie nahtlos im Finder verwendet werden kann. Siehe auch tuxera.com/products/tuxera-ntfs-for-mac und sourceforge.net/projects/catacombae .
Eliah Kagan
1
@ user29020 Supportkosten (was ist, wenn es ein bisschen fehlerhaft ist)? Rechtliche Beschränkungen? Kostenlos unter der GNU GPL-Lizenz bedeutet, dass es nur zu vorhandenen Quellen / Binärdateien hinzugefügt werden kann, die wiederum auch unter der GPL verfügbar sind. (LGPL würde es ermöglichen, dass es von anderen Nicht-GPL-Codes als Bibliothek verwendet wird). Angesichts der Tatsache, dass der Code von Apple weitgehend proprietär ist und ansonsten unter der APSL, die keine GPL-kompatible Lizenz darstellt, eine Einschränkung darstellt, die eingehalten werden muss. gnu.org/philosophy/apsl.html
dlamblin

Antworten:

14

Nein.

Wir sind zum Zeitpunkt dieser Antwort im Jahr 2015. Ich verwende OSX Yosemite, Ubuntu 14.10 und die technische Vorschau von Windows 10 für Unternehmen auf einem Mactel-Computer (Macmini 7,1).

Ich habe sowohl UDF als auch exFat ausprobiert. Ich benutze Ubuntu für die Entwicklung und benötige Unix-Berechtigungen.

Alle früheren Anleitungen gelten nicht mehr: Die UDF-Treiber wurden weiterentwickelt und alle Betriebssysteme akzeptieren eine UDF-Partition mit mehr Problemen und Instabilitäten, als ich nennen kann.

  • Unter Mac OS formatiertes UDF-Laufwerk: Kann unter Windows 10 nicht gemountet werden.
  • Unter Linux formatiertes UDF-Laufwerk: Kann unter Windows 10 nicht gemountet werden.
  • Unter Windows 10 formatiertes UDF-Laufwerk: Bereitstellen von Lese- / Schreibzugriff unter Linux, schreibgeschützt unter OSX.

In Windows können Sie jedoch beim Formatieren eines UDF-Volumes keine Blockgröße angeben. Infolgedessen weicht Ihre logische Blockgröße möglicherweise von der physischen Blockgröße für die Partition ab.

Ich bin nicht sicher, ob dies mit den Schwierigkeiten zu tun hat, die ich beim Einhängen von Lese- / Schreibzugriff auf OSX hatte. Nachdem ich jedoch eine bestimmte Anzahl von Dateien unter Linux gelöscht hatte, konnte ich das Laufwerk unter OSX nicht mehr einhängen.

Das System gerät in Kernel-Panik und stürzt in schändlicher Weise ab.

Dies und eine Vielzahl von Antworten zu diesem Thema deuten an dieser Stelle auf eine inkonsistente Unterstützung dieses Formats hin.

Es scheint, dass es Möglichkeiten gibt, ein NTFS- Volume zu verwenden, um ein Gleichgewicht zwischen den Funktionen eines modernen Dateisystems, Berechtigungen im Unix-Stil - möglicherweise können sie festgelegt werden - und Lese- / Schreibmounten auf allen Betriebssystemen herzustellen.

Mauro Colella
quelle
1
OSX basiert auf BSD. Also ja, es ist OSX Yosemite (10.10.2), das eine Kernel-Panik erlebt. Am Ende habe ich NTFS und NTFS 3d für OSX verwendet.
Mauro Colella
1
@Argo the second reference states: "Der -b 512 erzwingt eine Dateisystemblockgröße, die der physischen Blockgröße des USB-Sticks gemäß der UDF-Spezifikation entspricht. Passen Sie sie an, wenn Sie das Glück haben, einen USB-Stick mit einem zu haben geeignetere Blockgröße. " Sie können also die Blockgröße angeben , diese muss jedoch als erforderlicher Wert angegeben werden.
JDługosz
1
Das von OS X nicht gemountete Windows 10 / OS X ist darauf zurückzuführen, dass die einzelnen Betriebssysteme unterschiedliche Partitionstabellen handhaben. Windows 10: Benötigt eines. Mac OS X: UDF muss sich als ganze Laufwerkspartition auf dem leeren Laufwerk befinden.
DrYak
2
Es gibt ein Formatierungswerkzeug, das sich um die Inkosistenzen kümmert: github.com/JElchison/format-udf
velop
15

Jemand hat nachgeforscht, wie ein Flash-Laufwerk mit udf formatiert werden kann, damit es auf möglichst vielen Betriebssystemen verwendet werden kann. Hier sind seine Ergebnisse (früher da , jetzt offline):

  • Windows 7 bietet vollständige Unterstützung bis zu UDF v2.6, aber die UDF-Blockgröße muss mit der Blockgröße des zugrunde liegenden Geräts übereinstimmen (bei USB-Sticks und den meisten Datenträgern sind dies 512 Byte, bei Datenträgern im erweiterten Format 4096 Byte). Anscheinend muss die Festplatte partitioniert werden.

  • Linux 2.6.30 und höher unterstützt UDF mindestens bis zur Version 2.5.

  • Mac OS X 10.5 unterstützt UDF vollständig bis UDF 2.01, jedoch nur bei Verwendung auf einer vollständigen Festplatte, also nicht partitioniert.

Wie oben erläutert, muss die Festplatte für USB-Festplatten in Windows partitioniert sein. Auf der anderen Seite funktioniert UDF unter OS X nur, wenn es auf einer vollständigen Festplatte (nicht partitioniert) verwendet wird. Überraschenderweise gibt es eine Lösung, die für beide Fälle funktioniert: Partitionierung und Aufhebung der Partitionierung der Festplatte gleichzeitig.

DOS-Partitionstabellen werden in den Bytes 446-510 des Master-Boot-Datensatzes gespeichert. Dieser Master Boot Record wird im ersten Sektor auf der Festplatte, Sektor 0, gespeichert. In der Regel startet die erste angegebene Partition einige Kilobyte weiter. Es scheint jedoch möglich zu sein, eine Partitionstabelle zu erstellen, deren erste Partition bei Sektor 0 beginnt, sodass das Ergebnis eine Partition ist, die die Partitionstabelle selbst enthält. Partitionseditorprogramme scheinen sich zu weigern, eine solche Tabelle zu erstellen, aber zumindest neuere Linux- und Windows-Kernel scheinen sich nicht darum zu kümmern.

Das Schöne ist, dass UDF (ich nehme an, absichtlich) nicht die ersten paar Kilobyte der Partition oder des Datenträgers verwendet, auf dem es platziert ist, sodass dieser Ort wirklich zum Speichern einer älteren Partitionstabelle verwendet werden kann, die sich auf eine Partition bezieht, die sich über das Ganze erstreckt Platte. Einige Tests haben gezeigt, dass dies unter Linux, Windows und Mac OS X wirklich funktioniert:

  • Mounts mit Lese- und Schreibzugriff unter Linux 2.6.30+, Mac OS X 10.5+ und Windows Vista +
  • Kann in Windows XP schreibgeschützt und nach einer Befehlszeilenbereitstellung in Linux 2.6.0+ verwendet werden
  • Unterstützt große Dateien, UNIX-Berechtigungen, Unicode-Dateinamen, Symlinks, Hardlinks usw.

Skript zum korrekten Formatieren der Festplatte: Perl-Skript oder Bash-Skript

Dan Benamy
quelle
12

Ich habe das gerade in einer VM ausprobiert. Es scheint, dass Sie Ihre Partition in Windows (neu) erstellen müssen. Weisen Sie ihr einen Laufwerksbuchstaben zu, formatieren Sie sie jedoch nicht in einem Dateisystem. Danach starte Ubuntu und folge einfach den Anweisungen und es sollte für Lesen / Schreiben funktionieren.

Denken Sie daran, alle Ihre Daten zu sichern!

Installieren Sie zunächst die UDF-Tools:

sudo apt-get install udftools

Ersetzen Sie den ersten Block durch nichts in der Partition, die Sie in UDF ^ formatieren möchten:

sudo dd if=/dev/zero of=/dev/sdxN bs=512 count=1

Und zum Schluss das Format in UDF ^:

sudo mkudffs --media-type=hd --blocksize=512 /dev/sdxN

^ wo durch:

  • x ist ein Platzhalter für den Buchstaben, der Ihrer Festplatte momentan zugewiesen ist

  • N ist ein Platzhalter für die Partitionsnummer

Viel Glück und lassen Sie mich wissen, ob es für Sie geklappt hat.

kicsyromy
quelle
Danke das beantwortet das wie; Ich wäre immer noch daran interessiert herauszufinden, ob es mit dem obigen Szenario gut genug funktioniert.
Dlamblin
Das hat bei mir perfekt funktioniert. Das einzige Problem ist, dass ich die Partition in Windows manuell mit dem Disk Manager mounten muss. Ansonsten kann ich bestätigen, dass es auch mit mehreren Partitionen auf der Festplatte funktioniert (ich verwende 1udf + 2ext4)
Nemo
Der Schlüssel hier scheint darin zu liegen, eine Partition zu erstellen und dort ein UDF-Dateisystem zu erstellen. Wenn Sie keine Partition erstellen, funktioniert dies unter Linux, nicht jedoch unter Windows (7). Das ist meine Erfahrung.
DanMan
@DanMan Dan scheint jemanden gefunden zu haben, der dieses Problem gelöst hat und ein Skript zum Formatieren einer ganzen Festplatte mit UDF für Linux, Mac und Windows 7 sowie schreibgeschützt in Win XP bereitstellt.
Dlamblin
@kicsyromy: Das Formatieren einer Partition (sdxN) in UDF funktionierte nicht. Bei der Ausführung sudo mkudffs --media-type=hd --blocksize=512 /dev/sdd1wird die folgende Fehlermeldung angezeigt : trying to change type of multiple extents Es gelang mir jedoch, UDF wie hier beschrieben mit der gesamten Festplatte (sdd) zu formatieren: superuser.com/questions/39942/using- udf-on-a-usb-flash-drive
Tim Banchi