ファイルシステム – USBフラッシュドライブでUDFを使用する

filesystems operating-systems udf usb usb-flash-drive

4G より大きいファイルを 8G の USB フラッシュドライブ にコピーするのに失敗した後、私はそれを ext3 としてフォーマットしました。これは今のところ私のために正常に動作していますが、私はLinuxを使用していない誰かにファイルをコピーするためにそれを使用したい場合、それは問題が発生します

代わりに UDF という形式にしようと考えています。これなら、余分なドライバをインストールすることなく、3つの最も人気のあるオペレーティングシステム (Windows、MacOS、Linux) で読み書きできるようになるといいなと思っています。しかし、私がすでにウェブ上で見つけたものからは、ファイルシステムを作成するためにどのパラメータが使用されるかに関連して、いくつかの小さなゴチャがあるようで、それは互換性を低下させることができます(しかし、私が見つけたページのほとんどは、USBフラッシュドライブではなく、光学メディアについてのものです)

知りたいですね

  • どのユーティリティを使ってファイルシステムを作成すればいいのでしょうか?(今のところmkudffsgenisoimageを見つけましたが、mkudffsが一番いいようです)
  • 最大限の互換性を得るためには、選択したユーティリティでどのパラメータを使用すればよいのでしょうか?
  • UDFは実際にこれらの3つのオペレーティングシステムの最も一般的なバージョンとどのように互換性がありますか?
  • UDFを使用することは実際には最良のアイデアなのでしょうか?FAT32 4Gのファイルサイズ制限のような問題のある制限がなく、それに触れるすべてのコンピュータに特別なドライバをインストールする必要がなく、より良い互換性を持つ他のファイルシステムはありますか?

  76  CesarB  2009-09-11


ベストアンサー

まず、UDFファイルシステムを作成する前に、ドライブを完全にゼロにしてからUDFファイルシステムを作成しました

dd if=/dev/zero of=/dev/sdx bs=512

これは、スーパーブロックやその他のメタデータが残っていて、オペレーティングシステムのファイルシステムタイプ検出を混乱させないようにするためです (パーティションテーブルを消去するために、少なくとも最初のセクタをゼロにする必要があります; 最初の数セクタは UDF によって使用されないので、パーティションテーブルが残っていると本当に混乱します)。最初の数セクタは UDF によって使用されず、残ったパーティションテーブルは本当に混乱させてしまいます。また、ドライブの最初の 512 バイト (通常 MBR が置かれている場所) だけをより迅速にゼロにするために、dd コマンドの count=1 スイッチを使うこともできます

ファイルシステムを作成するために、私が使用したコマンドは次のとおりです

mkudffs --media-type=hd --blocksize=512 /dev/sdx

mkudffs コマンドは、Debian ベースの Linux ディストリビューション (Ubuntu など) で udftools パッケージをインストールした後に利用できるようになります

sudo apt-get install udftools

mkudffsのデフォルトのブロックサイズは2048で、USBフラッシュドライブ(512バイトのセクタを使う)には不適切です。ブロックサイズはファイルシステムのメタデータを見つけるために使われるので、間違ったブロックサイズを使うとUDFファイルシステムとして認識されなくなる可能性があります (アンカーがファイルシステムドライバが期待している場所にないからです)。mkudffs の man ページが間違っていることに注意してください。ブロックサイズには 512 が有効な値です (コードでは明示的にそれを受け入れています)

また、私はパーティションの代わりにドライブ全体を使用しました

これまでの私のテストの結果です

  • 最新のカーネル(2.6.31、Ubuntu 9.10から)を使用したLinux:動作します
  • 古いカーネルを使用している Linux: デバイスのセクタサイズの代わりに 2048 を誤って使用していたため、bs=512 オプションを mount にする必要があります (commit 1197e4d で修正されています)
  • Windows Vista:動作します
  • 真新しいMac: works
  • Windows XP: 正常に読み込めますが、書き込みをしようとすると「アクセスが拒否されました」と表示され、ディスクが一杯になったと思われます

私はこれまでのところ、それに4Gよりも大きなファイルを作成しようとしていませんが、私はそれが動作しない理由を見ていません

最近のすべてのオペレーティングシステムで完璧に動作し(Linuxでは手動でマウントする必要があるだけで、Ubuntu 9.10やFedora 12が出たらすぐに必要なくなります)、Windows XPでは読み取り専用で動作していたことを考えると(これは私にとっては驚きでした

57  CesarB  2009-09-28


CesarB は問題の核心に迫る素晴らしい仕事をしてくれました。UDFをフォーマットするときに適切なブロックサイズを使用することがいかに重要であるかを強調することはできません

CesarBさんの投稿(と私の他の研究/テスト)に触発されて、適切に検出されたセクタサイズを使ってUDFのフォーマット処理を自動化するスクリプトを書きました。format-udf on GitHubを参照してください。注目すべき機能

  • ブロックドライブ(ハードドライブまたはフラッシュドライブ)をユニバーサルディスクフォーマット(UDF)でフォーマットします
    • UDFリビジョン2.01は、最大互換性のために使用されます
    • 最初の4096セクタは、既存のMBRを消去するためにゼロアウトされます(適切なUDF検出のために必要です)
  • 結果として得られるファイルシステムは、複数のオペレーティング・システム・ファミリー(Windows、OS X、Linux)にまたがって読み書きすることができます
  • Bash環境を持つあらゆるOSで動作します

最後の点の関係で、私が書いたこのスクリプトはWindowsでは使えません。しかし、このスクリプトはOS XとLinuxで動作します。そうすると、Windowsは魔法のように新しくフォーマットされたUDFドライブを検出できるようになるはずです

投稿された質問に直接回答するには、format-udfが行います

  • OSや環境に応じて適切なフォーマットツールを選択してください
  • フォーマットに必要なすべてのパラメータを自動的に検出し、入力します
  • OS の互換性を最大化します (互換性チャートは GitHub のページを参照してください)
  • は、質問者が探している最大の特徴セット(および最小の制限)を生成します

7  j0nam1el  2014-08-29


私はそれを行ったことを覚えているようだ、私が見つけた問題は、ドライバがr/w用に構築されていなかったので、私がそれをマウントしていたlinuxのバージョンは、読み取り専用であるということです。それはWindowsで動作しましたが、私はmacだと思います

ええ、良い解決策を見つけるのは難しいですね。しばらくの間、私は外付けドライブにwinとmac用のドライバが入ったfat32パーティション、macパーティション、そして大きなext3パーティションを持っていました。それは動作しましたが、それはドライバをインストールすることを意味します。巧妙なトリックは、それがmac (fw&usb)でも起動可能であった、あなたはスペースを残し、いくつかのメモを取らなければならない、あなたはコマンドラインと同様にmacパーティションテーブルを介してパーティションを追加することができます

世の中には、自由で誰もが使えるファイルシステムが必要です。ZFSはいい選択だと思います。)

3  Ronald Pottol  2009-09-12


Pieter Wuille氏は、Windows (>= Vista、XPでは読み取り専用)、MacOS X 10.5、Linux 2.6.30+の両方と互換性のあるUDFレイアウトを作成するために、ディスクのパーティショニングとフォーマットを行うツールを書きました

Alternatively:

2  dolmen  2014-06-02


最大限の互換性を得るためには、少なくともバージョン2.0のudftoolsプロジェクトのmkudffsを使用する必要があります。特別なパラメータは必要ありません

大きく3つの制限があります

  1. Microsoft Windowsシステムは、MBRまたはGPTパーティションテーブルがない場合、リムーバブルでないハードディスクを認識しません

  2. Apple Mac OS Xシステムは、パーティション分割されたディスク上のUDFファイルシステムを認識しません

  3. UDF ブロックサイズがディスクの論理セクタサイズと一致しない場合、おそらくすべてのシステム(最近の Linux カーネルを除く)が UDF ファイルシステムを認識しません

バージョン2.0以降のツールmkudffsは3つの制限をすべて処理します。リムーバブルではないハードディスクをフォーマットするとき、セクタ0から始まりディスク全体に渡る “偽の “MBRテーブルを作成します。そのため、UDFファイルシステムは最初のパーティション(Microsoft Windowsでは必要)からでも、ディスク全体(Apple Mac OS Xでは必要)からでも読むことができます。詳細は mkudffs 2.0 のマニュアルページを参照してください

1  Pali  2018-01-13


NTFSは、NTFS-3Gでは、Linuxを使用してそれに書き込むことができ、あなたのMac用のhttp://macntfs-3g.blogspot.com/を見てみましょう

-2  user10547  2009-09-12


Windows(とMac)にはEXT3パーティションにアクセスできるドライバがあるので、それをEXT3にフォーマットして(ドライバを使って)どこでも使えるようになります。もう一つの方法は、アーキバーを使って、4GBまでの大きなファイルを2つ以上のファイルに分けて保存することです。この方法では、世界共通のFAT32ファイルシステムを使うことができます。ホストコンピュータでは、使用するためにアーカイブを解凍しなければなりませんが、ドライバなしでできる方法です。Windows、Linux、Macで動作するので、RAR形式のアーカイバを使用してください。しかし、私はドライバと一緒に行くでしょう。一度インストールされていると、制限なしで何をすることができます。PCでは、私は完全なEXT2、EXT3とEXT4アクセスのためにExt2Fsdを使用しており、MacOSフォーマットの完全なアクセスのためにMacdriveを使用しています。確かに同様のツールがLinuxやMacOSにも存在し、NTFSパーティションなどに完全にアクセスすることができます。読み取りアクセスだけが必要な場合、ドライバは必要ありません。LinuxとMacOSはNTFSパーティションの読み取りをサポートしているので、USBをNTFSとしてフォーマットしてください。これらのすべてのコンピュータが同じネットワークにある場合、物事は簡単ですUSBをどちらかのフォーマットにして、ネットワーク上で共有してください。他のコンピュータは、それにアクセスする問題を持っていないはずです

-2  spapakons  2013-02-23


タイトルとURLをコピーしました