UDFはハードドライブフォーマットとして使用できますか?


32

最近、UDFがLinux、Mac OS X、Windows XP以上で使用されるドライブのクロスプラットフォームフォーマットのソリューションとして提案されているのを見てきました。

私はここで検索しましたが、同じ提案は見つかりませんでした(ほとんどは、費用がかかり、Macにプリインストールされていないntfs-3gを提案しています)。

だから私の質問は次のとおりです。これはどのように正しく行われ、誰もこれを行っていますか?ドライブを一杯にし、いくつかのファイルを削除して、主に一度だけの書き込み形式であるように見えても、すべてが実際のr / w形式のように機能することを確認しましたか?

私を夢中にさせますが、UDFシステムも自動マウントし、ログインしているユーザーが書き込みできるようにしたいのです。私がこれまでに試したこと(kicsyromyで言及されているudftoolsの書式設定)は、この要望に対応していません。


1
1つの説明:ntfs-3g無料です。そのソースコードは無償です(つまり、無料で入手できます)。また、自由のように無料です。ntfs-3gUbuntuのNTFSドライバーです!OS Xで手動でビルド/インストールするのは少し技術的です。Tuxera(開発者)は、ntfs-3gOS Xで簡単にインストールして使用できるようにビルドおよびパッケージ化された無料のドライバーである専用の有料版を提供します。アドオンドライバーなしでOS XはNTFSボリュームのみを読み取る(書き込みはしない)ため、別のファイルシステムを検討するのは正しいことです。
エリアケイガン

@EliahKaganでは、ntfs-3gが「無料」の場合、NTFSのr / wサポートを許可するためにAppleがそれを含めなかったのはなぜですか?
user29020 14

@ user29020 Appleがそれを含めないことを選択している間はわかりませんが、ソースコード(現在はこのファイル)をダウンロードして抽出し、COPYINGファイルがGNU GPLであることを確認することで、無料であることを確認できます。おそらく、Appleはそれを統合する作業を望まなかったので、Finderからシームレスに使用できます。tuxera.com/products/tuxera-ntf​​s-for-macおよびsourceforge.net/projects/catacombaeも参照してください。
エリアケイガン

1
@ user29020サポートコスト(少しバグがある場合)法的制限?GNU GPLライセンスの下で無料とは、既存のソース/バイナリにのみ追加できることを意味し、GPLの下でも利用可能です。(LGPLでは、他の非GPLコードがライブラリとして使用できるようにします)。アップルのコードの大部分は専有のものであり、それ以外の点ではGPL互換ライセンスではないAPSLの下にあるため、従わなければならない制限です。gnu.org/philosophy/apsl.html
dlamblin 14

回答:


14

いや

この返信の時点では、2015年です。Mactelマシン(Macmini 7,1)上の企業向けに、OSX Yosemite、Ubuntu 14.10、およびWindows 10テクニカルプレビューを使用しています。

UDFとexFatの両方を試しました。開発にはUbuntuを使用していますが、Unixスタイルの権限が必要です。

以前のガイドはすべて適用されなくなりました。UDFドライバーは進化しており、すべてのオペレーティングシステムはUDFパーティションを受け入れます。

  • Mac OSでフォーマットされたUDFドライブ:Windows 10ではマウントできません。
  • LinuxでフォーマットされたUDFドライブ:Windows 10ではマウントできません。
  • Windows 10でフォーマットされたUDFドライブ:Linuxでは読み取り/書き込み、OSXでは読み取り専用でマウントします。

ただし、Windowsでは、UDFボリュームをフォーマットするときにブロックサイズを指定することはできません。その結果、論理ブロックサイズはパーティションの物理ブロックサイズと異なる場合があります。

これがOSXで読み取り/書き込みでマウントしていた問題と関係があるかどうかはわかりませんが、Linuxを使用して特定の数のファイルを削除した後、OSXでドライブを再びマウントすることはできませんでした。

システムはカーネルパニックに陥り、不意にクラッシュします。

これと、主題に関するさまざまな回答は、この時点でのこの形式の一貫性のないサポートを示しています。

NTFSボリュームを使用して、最新のファイルシステムの機能、Unixスタイルのアクセス許可(それらを設定できる場合があります)、およびすべてのオペレーティングシステムでの読み取り/書き込みマウントのバランスをとる方法があるようです。


1
OSXはBSDに基づいています。そのため、カーネルパニックが発生するのはOSX Yosemite(10.10.2)です。最終的には、NTFS、およびOSX用のNTFS 3dを使用しました。
マウロコレッラ


1
@Argoの2番目のリファレンスには、「-b 512は、UDF仕様で要求されているように、USBスティックの物理ブロックサイズにファイルシステムのブロックサイズを強制的に設定することです。より適切なブロックサイズ。」そのため、ブロックサイズを指定できますが、必要な値として指定する必要があります。
JDługosz

1
OS XによってマウントされていないWindows 10 / OS Xがマウントされていないのは、各OSがパーティションテーブルを処理する方法の違いによるものです。Windows 10:1つ必要です。Mac OS X:ドライブパーティション全体として、ベアドライブにUDFが必要です。
DrYak

2
incosistenciesの世話をフォーマットするツールがあります:github.com/JElchison/format-udfは
velop

15

フラッシュドライブをできるだけ多くのオペレーティングシステムで使用できるように、UDFでフォーマットする方法について誰かが研究を行いました。彼の発見は次のとおりです(以前はそこにありましたが、現在はオフラインです)。

  • Windows 7は、UDF v2.6まで完全にサポートされていますが、UDFブロックサイズは、基になるデバイスのブロックサイズと一致する必要があります(USBスティックとほとんどのディスクの場合は512バイト、「高度なフォーマット」ディスクは4096バイト)。どうやらディスクをパーティション分割する必要があります。

  • Linux 2.6.30以降は、少なくともバージョン2.5までUDFを完全にサポートしています。

  • Mac OS X 10.5は、UDF 2.01までのUDFを完全にサポートしますが、フルディスクで使用する場合のみサポートされるため、パーティション化されません。

上記で説明したように、USBハードディスクの場合、Windowsではディスクをパーティション分割する必要があります。一方、UDFは、フルディスク(パーティション化されていない)で使用される場合にのみOS Xで機能します。どちらかと言えば驚くべきことに、両方に有効な解決策があります。ディスクをパーティション分割し、同時にパーティションを解除します。

DOSパーティションテーブルは、マスターブートレコードの446〜510バイトに格納されます。このマスターブートレコードは、ディスクの最初のセクター、セクター0に格納されます。通常、指定された最初のパーティションはさらに数キロバイト開始します。ただし、最初のパーティションがセクター0で始まるパーティションテーブルを構築することは可能だと思われるため、結果はパーティションテーブル自体を含むパーティションになります。パーティションエディタプログラムはそのようなテーブルの作成を拒否しているように見えますが、少なくとも最近のLinuxおよびWindowsカーネルは気にしません。

良い点は、UDFが配置されるパーティションまたはディスクの最初の数キロバイトを(意図的に)使用しないため、この場所は実際にレガシパーティションテーブルを格納するために使用でき、全体にまたがるパーティションを指しますディスク。いくつかのテストでは、これが実際にLinux、Windows、およびMac OS Xで機能することが示されています。

  • Linux 2.6.30 +、Mac OS X 10.5 +、Windows Vista +で自動的に読み書きをマウントします
  • Windows XPでは読み取り専用で使用でき、Linux 2.6.0以降ではコマンドラインマウント後に使用できます
  • 大きなファイル、UNIX許可、Unicodeファイル名、シンボリックリンク、ハードリンクなどをサポートします。

ディスクを適切にフォーマットするスクリプト:PerlスクリプトまたはBashスクリプト


12

VMでこれをテストしました。Windowsでパーティションを(再)作成する必要があるようです。ドライブ文字を割り当てますが、どのファイルシステムにもフォーマットしないでください。その後、Ubuntuを起動し、指示に従うだけで読み取り/書き込みが機能するはずです。

すべてのデータをバックアップすることを忘れないでください!

まずUDFツールをインストールします。

sudo apt-get install udftools

UDF ^にフォーマットするパーティションの最初のブロックを何も置き換えないでください:

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

最後にUDF ^にフォーマットします:

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

^ where by:

  • xは、hardiskに現在割り当てられている文字のプレースホルダーです

  • Nはパーティション番号のプレースホルダーです

幸運を祈ります。うまくいったかどうか教えてください。


ありがとう、これは方法に答えます。上記のシナリオで十分に機能するかどうかを確認したいと思っています。
dlamblin

これは私にとって完璧に機能しました。唯一の問題は、ディスクマネージャーを使用してWindowsでパーティションを手動でマウントする必要があることです。それ以外は、私はそれはハード・ディスクに複数のパーティションで動作するだけでなく(私は1udf + 2ext4使っている)ことを確認することができます
ニモ

ここで重要なのは、実際にパーティションを作成し、そこにUDFファイルシステムを作成することです。パーティションを作成しない場合、Linuxでは機能しますが、Windowsでは機能しません(7)。それが私の経験です。
ダンマン

@DanMan Danは、その問題を解決し、Linux、Mac、Windows 7用のUDFとWin XPの読み取り専用でディスク全体をフォーマットするためのスクリプトを提供する人を見つけたようです。
dlamblin

@kicsyromy:パーティション(sdxN)のUDFへのフォーマットが機能せず、実行するsudo mkudffs --media-type=hd --blocksize=512 /dev/sdd1と次のエラーメッセージが表示 trying to change type of multiple extents されます。 udf-on-a-usb-flash-drive
ティムバンチ14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.