Nachdem ich eine Datei, die größer als 4G ist, nicht auf meinen 8G- USB-Stick kopiert habe , habe ich sie als ext3 formatiert. Während dies bisher für mich in Ordnung ist, wird es Probleme verursachen, wenn ich es verwenden möchte, um Dateien auf jemanden zu kopieren, der Linux nicht verwendet.
Ich denke darüber nach, es stattdessen als UDF zu formatieren. Ich hoffe, dass es auf den drei gängigsten Betriebssystemen (Windows, MacOS und Linux) gelesen (und möglicherweise sogar geschrieben) werden kann, ohne dass zusätzliche Treiber installiert werden müssen . Nach dem, was ich bereits im Web gefunden habe, scheint es jedoch mehrere kleine Fallstricke zu geben, die sich darauf beziehen, welche Parameter zum Erstellen des Dateisystems verwendet werden. Dies kann die Kompatibilität beeinträchtigen fährt).
Ich würde gerne wissen:
- Welches Dienstprogramm soll ich zum Erstellen des Dateisystems verwenden? (Bisher habe ich gefunden
mkudffs
undgenisoimage
, undmkudffs
scheint die beste Option.) - Welche Parameter sollte ich mit dem ausgewählten Dienstprogramm für maximale Kompatibilität verwenden?
- Wie kompatibel ist UDF mit den gängigsten Versionen dieser drei Betriebssysteme?
- Ist die Verwendung von UDF tatsächlich die beste Idee? Gibt es ein anderes Dateisystem, das ohne problematische Einschränkungen wie die Dateigrößenbeschränkung für FAT32 4G besser kompatibel wäre und auf jedem einzelnen Computer, der es berührt, keine speziellen Treiber installieren muss?
Antworten:
Zuerst habe ich das Laufwerk vollständig auf Null gestellt, bevor ich das UDF-Dateisystem erstellt habe:
Dies soll verhindern, dass Superblocks oder andere Metadaten übrig bleiben, die die Erkennung des Dateisystemtyps des Betriebssystems verwirren könnten (es sollte mindestens ein Nullabgleich des ersten Sektors erforderlich sein, um die Partitionstabelle zu verwischen; die ersten Sektoren werden von UDF nicht verwendet) Partitionstabelle könnte die Dinge wirklich verwirren). Sie können auch den
count=1
Schalter im Befehl dd verwenden, um nur die ersten 512 Byte des Laufwerks (in dem sich normalerweise der MBR befindet) schneller auf Null zu setzen, obwohl dies nicht getestet wurde.Um das Dateisystem zu erstellen, habe ich folgenden Befehl verwendet:
mkudffs
Befehl wird auf Debian-basierten Linux-Distributionen (wie Ubuntu) nach der Installation einesudftools
Pakets verfügbar :Die Standardblockgröße für
mkudffs
ist 2048, was für ein USB-Flash-Laufwerk (das 512-Byte-Sektoren verwendet) falsch ist. Da die Blockgröße zum Ermitteln der Metadaten des Dateisystems verwendet wird, kann die Verwendung einer falschen Blockgröße dazu führen, dass das Dateisystem nicht als UDF-Dateisystem erkannt wird (da der Anker nicht dort liegt, wo der Dateisystemtreiber ihn erwartet). Beachten Sie, dass diemkudffs
Manpage falsch ist. 512 ist ein gültiger Wert für die Blockgröße (und der Code akzeptiert ihn ausdrücklich).Ich habe auch das gesamte Laufwerk anstelle einer Partition verwendet. dies sollte kompatibler sein.
Das Ergebnis meiner bisherigen Tests:
bs=512
Optionmount
, da es 2048 anstelle der Größe des Gerätesektors falsch verwendete (behoben in commit 1197e4d ).Obwohl ich bisher nicht versucht habe, eine Datei größer als 4G darin zu erstellen, sehe ich keinen Grund, warum es nicht funktionieren würde.
Da es auf allen aktuellen Betriebssystemen einwandfrei funktionierte (nur manuell unter Linux zu mounten, was nicht mehr benötigt wird, sobald Ubuntu 9.10 und Fedora 12 herauskommen) und unter Windows XP schreibgeschützt funktionierte (was eine Überraschung war) Ich hatte erwartet, dass es das Dateisystem überhaupt nicht erkennt. Die Verwendung von UDF anstelle von FAT32 oder NTFS in großen USB-Flash-Laufwerken scheint eine gute Idee zu sein.
quelle
dd if=/dev/zero of=/dev/sdb bs=1M
es keine Partitionstabelle mehr enthält.CesarB hat großartige Arbeit geleistet, um den Kern des Problems zu erreichen. Eine Sache, die nicht genug unterstrichen werden kann, ist, wie wichtig es ist, die richtige Blockgröße beim Formatieren von UDF zu verwenden.
Inspiriert von CesarBs Beitrag (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:
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:
quelle
hdparm
als "logische Sektorgröße" bezeichnet wird, ist die vom SATA-Protokoll verwendete Adressierungseinheit, wohingegen "physikalische Sektorgröße" eine festplatteninterne Sache ist. Für mich ist es sinnvoller, dass die "physischen Blöcke" in der UDF-Spezifikation wirklich die "logischen Blöcke" von Linux bedeuten.mkudffs
direkt zu implementieren . Ich meine, eine neue--best-block-size
Option hinzuzufügenmkudffs
.Ich erinnere mich, dass ich das getan habe. Das Problem war, dass die Linux-Version, die ich gemountet hatte, nur lesbar war, da der Treiber nicht für R / W erstellt worden war. Es hat in Windows funktioniert, und ich denke, Mac.
Ja, eine gute Lösung ist schwer zu finden. Für eine Weile hatte ich ein externes Laufwerk mit einer Fat32-Partition, die Treiber für Win und Mac, eine Mac-Partition und eine große Ext3-Partition hatte. Es hat funktioniert, aber es bedeutete, Treiber zu installieren. Ein guter Trick war, dass es auch auf einem Mac bootfähig war (fw & usb). Sie müssen Platz lassen und einige Notizen machen, dann können Sie Partitionen über die Befehlszeile und eine Mac-Partitionstabelle hinzufügen.
Die Welt braucht ein freies, von allem nutzbares Dateisystem. ZFS wäre eine gute Wahl. :-)
quelle
Pieter Wuille schrieb ein Tool zum Partitionieren und Formatieren einer Festplatte, um ein UDF- Layout zu erstellen, das mit Windows (> = Vista, schreibgeschützt für XP), MacOS X 10.5 und Linux 2.6.30+ kompatibel ist:
Alternative:
quelle
Um maximale Kompatibilität zu erreichen, sollten Sie mkudffs von udftools project mindestens in Version 2.0 verwenden. Es sind keine speziellen Parameter erforderlich, alles wird automatisch erkannt.
Es gibt 3 große Einschränkungen:
Microsoft Windows-Systeme erkennen nicht austauschbare Festplatten nicht, wenn sie keine MBR- oder GPT-Partitionstabelle haben.
Apple Mac OS X-Systeme erkennen das UDF-Dateisystem auf partitionierten Festplatten nicht.
Wahrscheinlich erkennen alle Systeme (mit Ausnahme der neuesten Linux-Kernel) das UDF-Dateisystem nicht, wenn die UDF-Blockgröße nicht der logischen Sektorgröße der Festplatte entspricht.
Tool mkudffs seit Version 2.0 behandeln alle 3 Einschränkungen. Beim Formatieren von Festplatten wird eine "gefälschte" MBR-Tabelle erstellt, die bei Sektor 0 beginnt und die gesamte Festplatte umfasst. Somit kann das UDF-Dateisystem entweder von der ersten Partition (für Microsoft Windows erforderlich) oder von der gesamten Festplatte (für Apple Mac OS X erforderlich) gelesen werden. Weitere Informationen finden Sie in der Manpage zu mkudffs 2.0.
quelle
NTFS, mit NTFS-3G können Sie unter Linux darauf schreiben und http://macntfs-3g.blogspot.com/ für Ihren Mac aufrufen .
quelle
Es gibt Treiber für Windows (und Mac), die auf EXT3-Partitionen zugreifen können, sodass Sie diese in EXT3 formatieren und (mit Treibern) überall verwenden können. Eine andere Möglichkeit wäre, die große Datei mit einem Archiever in zwei oder mehr Dateien mit jeweils bis zu 4 GB zu speichern. Auf diese Weise können Sie das universelle FAT32-Dateisystem verwenden. Auf dem Host-Computer müssen Sie das Archiv extrahieren, um es verwenden zu können. Dies ist jedoch eine Möglichkeit, ohne Treiber zu arbeiten. Verwenden Sie einen Archivierer im RAR-Format, da er unter Windows, Linux und Mac funktioniert, obwohl ich denke, dass auch ein ZIP-Format funktionieren könnte. Aber ich würde mit den Fahrern gehen. Einmal installiert, können Sie alles ohne Einschränkungen tun. Auf dem PC habe ich Ext2Fsd für den vollständigen Zugriff auf EXT2, EXT3 und EXT4 und Macdrive für den vollständigen Zugriff auf das MacOS-Format verwendet. Sicherlich gibt es ähnliche Tools für Linux und MacOS, um vollständig auf NTFS-Partitionen usw. zuzugreifen. Wenn Sie nur Lesezugriff benötigen, benötigen Sie keine Treiber. Linux und MacOS unterstützen das Lesen von NTFS-Partitionen. Formatieren Sie den USB-Stick also als NTFS! Wenn sich alle diese Computer im selben Netzwerk befinden, ist es einfacher! Stellen Sie das USB-Format entweder und teilen Sie es im Netzwerk. Andere Computer sollten keine Probleme haben, darauf zuzugreifen!
quelle