ハードドライブをUDFとしてフォーマットする必要があるツールは何ですか?


32

(これは、「UDFのパーティションID /ファイルシステムタイプは?」のフォローアップです。)

ハードドライブをUDFとしてフォーマットする2つの方法を知っています。

  • Windows Vista以降: " format x: /fs:UDF"(使用しないでください/q!)
  • Linux:「mkudffs --media-type=hd --blocksize=512 /dev/sdx

問題は、「他の」OSがディスクをフォーマット済みとして認識しないことです。どのコマンドを試しても、マウントを拒否するだけです。

WindowsとLinuxの両方が使用できるように、ハードドライブをUDFとしてフォーマットするにはどうすればよいですか?

編集:コマンドを更新し、結果はどちらのOSでも動作するようになりました。


UDFは光メディア用に設計されましたが、おそらくそれが問題ですか?
チョッパー3 09

1
あなたが与えるコマンドはLinuxでうまく機能します。Karmicでフォーマットし、Windows 7とKarmicの両方で読み書きできます。
マットジョイナー

4
MDFを最初にゼロにすることを忘れないでください(dd if = / dev / zero of = / dev / sdx bs = 512 count = 1)。残りのパーティションテーブルとの混乱を避けるため(UDFは最初のセクターを使用しないため)。
CesarB


1
Skolimaに感謝、これは素晴らしい。バイバイFAT32。UDFバージョン2.01と512ブロックサイズに固執するだけで、LinuxとWindowsで共有される完璧なハードディスクパーティションがあります。
行進

回答:


17

/q原因は、Windowsでスイッチを使用することが原因であることがわかりました。「クイックフォーマット」が有効になります。つまり、ディスクへの書き込みが行われるたびにフォーマットプロセスがバックグラウンドで続行されます。終了すると、ドライブはLinuxで正常に処理されます。


一方、Linuxのmkudffsによるフォーマットは数秒で正常に完了するようです。
行進

Linuxでmkudffsを使用してファイルシステムを作成した後、Win7でクイックフォーマットを実行する必要がありました。それがなければ、Windowsはドライブをフォーマットしたいだけでした。何らかの理由で、ドライブの最後に5MBの空きスペースが作成されました。ただし、少なくとも現在は両方のOSで動作します。
ダンマン

自分への返信:これらの5MBは、最近のUDFバージョンのメタデータブロックである可能性があります。
ダンマン

1
完全に間違っています!クイックフォーマットは「バックグラウンドでフォーマットを継続する」ものではありません。トラックをフォーマットせずにファイルシステムを初期化するだけです。
Anixx

6

UDFをフォーマットするとき、十分に強調できないことの1つは、UDFをフォーマットするときに適切なブロックサイズを使用することの重要性です。ここで説明したように、物理セクターサイズと一致しない構成済みブロックサイズを使用すると、一部のオペレーティングシステムがドライブを有効なUDFとして検出できなくなる可能性があります。

上記の回答(および他の調査/テスト)に触発されて、適切に検出されたセクターサイズを使用して、UDFでのフォーマットのプロセスを自動化するスクリプトを作成しました。GitHubのformat-udfを参照してください。注目すべき機能:

  • ユニバーサルディスクフォーマット(UDF)でブロックドライブ(ハードドライブまたはフラッシュドライブ)をフォーマットします。
    • 最大限の互換性のために使用されるUDFリビジョン2.01
    • 既存のMBRを消去するために、最初の4096セクターがゼロ化されます(適切なUDF検出に必要)
  • 結果のファイルシステムは、複数のオペレーティングシステムファミリ(Windows、OS X、およびLinux)で読み取り/書き込みが可能です
  • Bash環境を持つ任意のOSで実行

最後のポイントのため、私が書いたこのスクリプトはWindowsでは使用できません。ただし、スクリプトはOS XおよびLinuxで実行されます。そうすると、Windowsは新しくフォーマットされたUDFドライブを魔法のように検出できるはずです。

投稿された質問に直接答えるために、format-udfは以下を行います。

  • オペレーティングシステムと環境に基づいて、フォーマットに適したツールを選択します(mkudffsLinuxの場合)
  • 書式設定に必要なすべてのパラメーターを自動的に検出して入力します(などblocksize
  • OSの互換性を最大化する(互換性チャートについてはGitHubページを参照)
  • 質問者が探している最大の機能セット(および最小の制限)を得る

5

そのWindowsコマンド( "format x:/ fs:UDF")を使用して、前の質問(パーティションではなくディスク全体にUDFファイルシステムを作成する必要がある)の発見をどのように調整しましたか?私の試みでは、Windowsはパーティションにドライブ文字のみを与えます。

互換性のためのフォーマットに関しては、キーはブロックサイズにあると思います。ほとんどのハードドライブとUSBフラッシュスティックのブロックサイズは512バイトなので、そのブロックサイズのFSを作成する際に最も互換性がありました。format.comはそのブロックサイズを使用しており、mkudffsにはブロックサイズを変更するためのコマンドスイッチがあると思います。512バイトブロックを使用した場合にのみ、ファイルシステムをマウントするためにOS XとWindowsを取得できました。Linuxの古いバージョンは2048のブロックサイズを想定していましたが、「-o bs = 512」でいつでもマウントできます。

ディスク全体とパーティションの問題により、依然として互換性の問題が発生します。ディスク全体をフォーマットするとWindowsはマウントされず、OS Xはファイルシステムを決定するときにパーティションのタイプ番号を超えないため、手動でマウントする必要があります。Linuxは、適切なデバイス名(sdaとsda1)を付けている限り、気にしませんでした。

要約すると、私が見つけた最も互換性のあるセットアップは、ブロックサイズ512のUDFでフォーマットされたタイプ06(FAT16)の単一パーティションです。Windowsでは自動的に動作し、LinuxおよびOS Xではわずかな手動操作が行われます。


3
私は別の実験を試みました。今回は、ハードドライブの代わりにUSBフラッシュスティックを使用しました。「mkudffs --media-type = hd --blocksize = 512 / dev / sda」でフォーマットされており、Linux、OS X、およびVistaで簡単に機能します。残念なことに、WindowsはUSBスティックでパーティションレスフォーマットを許可していますが、ハードドライブは許可していないようです。
サイモン

フラッシュメモリの早すぎる摩耗を避けるために、必ず同じブロックサイズを維持する必要があります。lwn.net
Articles
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.