web-dev-qa-db-ja.com

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

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

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

だから私の質問は次のとおりです。これはどのように正しく行われ、誰もこれを行っていますか?ドライブを一杯にしてファイルを削除して、すべてが実際にr/w形式のように動作することを確認するためにファイルを削除しましたか?

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

31
dlamblin

番号。

この返信の時点では、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スタイルのアクセス許可のバランスをとる方法があるように思えます-それらを設定できる可能性があります-すべてのオペレーティングシステムでマウントを書き込みます。

13
Mauro Colella

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

  • 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 script または Bash script

15
Dan Benamy

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はパーティション番号のプレースホルダーです

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

12
kicsyromy