web-dev-qa-db-ja.com

UDFのパーティションID /ファイルシステムタイプは何ですか?

これはおそらく、UDFフォーマットのCD/DVD/Blu-Rayでcfdiskを使用して確認するのは簡単ですが、どちらも手元にありません。

LinuxとWindowsコンピューター間でデータを共有するためにUSBハードドライブにUDF形式のパーティションを作成しました(FATは4GBファイルを処理せず、NTFSアクセス権のサポートはLinuxでは安定していません)。現在、問題は1つだけです。ファイルシステムのタイプIDが「83」(「Linux」)に設定されているため、Windowsはパーティションのマウントを拒否します。私はかなり広範囲に調べましたが、そこに何番を置くべきかわかりませんか?

(フォローアップ: " ハードドライブをUDFとしてフォーマットする必要があるのはどのツールですか? ")

10
skolima

[〜#〜] udf [〜#〜]のパーティションテーブルがなく、パーティションがないことがわかりましたそれに割り当てられたID。このファイルシステムは、Windowsで認識されるように、ディスク全体にまたがる必要があります。 UDFとしてハードドライブをフォーマットしても、既存のパーティションテーブルには影響しません(注意してください。古い情報が含まれているため、それを使用してドライブをマウントすると、データが破壊されます!)。

好奇心として-UDF2.5以降では、メタデータ用に個別のパーティション(ディスクごとに1つまたは2つ)が作成されます。ただし、これらのパーティションは、標準のDOSパーティションテーブルにも表示されません。

6
skolima

答えはパーティションタイプ06(FAT16)です。理由を聞かないで、マイクロソフトに聞いてください。

9
user48160

簡単な答え:UDFパーティションにはMBR id0x07を使用することをお勧めします。


長い答え:

LinuxはMBRパーティションIDを考慮せず、無視します(*)。

Windows 2000以降では、IsRecognizedPartition(PartitionType)がtrueの場合に限り、IDPartitionTypeのパーティションにドライブ文字を割り当てることができます。 。さらに、非FTパーティションでは、IsFTPartition(PartitionType)がfalseである必要があります(それ以外の場合、そのパーティションはFTとして検出され、通常のFAT/NTFS/UDF/...ではありません)。

条件IsRecognizedPartition(PartitionType)&&!IsFTPartition(PartitionType)は、これらのMBRパーティションIDに適用されます:0x01、0x04、0x06、0x07、0x0B、0x0C 、0x0E(**)。つまり、MBRパーティションIDがUDFパーティションのいずれかである場合、Windows 2000(および新規)はUDFパーティションを認識して使用できます。おそらく他の制限はなく、サポートされているファイルシステムはこれらのMBRIDのいずれかを持つパーティションを受け入れます。つまり、これらのMBR IDはファイルシステムの検出に使用されません。

ただし、特定のPartitionTypeを使用する必要がある場合、Microsoftによるいくつかの推奨事項があります。

  • 0x01-FAT12プライマリパーティションまたは論理ドライブ(ボリューム内の32,680セクター未満)
  • 0x04-FAT16パーティションまたは論理ドライブ(32,680〜65,535セクターまたは16 MB〜33 MB)
  • 0x06-BIGDOS FAT16パーティションまたは論理ドライブ(33 MB–4 GB)
  • 0x07-インストール可能なファイルシステム(NTFSパーティションまたは論理ドライブ)
  • 0x0B-FAT32パーティションまたは論理ドライブ
  • 0x0C-BIOS INT 13h拡張機能を使用したFAT32パーティションまたは論理ドライブ(***)
  • 0x0E-BIOS INT13h拡張機能を使用するBIGDOSFAT16パーティションまたは論理ドライブ(***)

また、Microsoftによる意味

  • 0x01-12ビットのFATエントリを持つパーティションを指定します。
  • 0x04-16ビットのFATエントリを持つパーティションを指定します。
  • 0x06-MS-DOS V4の巨大なパーティションを指定します。
  • 0x07-IFSパーティションを指定します。
  • 0x0B-FAT32パーティションを指定します。
  • 0x0C-Windows 95/98:拡張INT13サービスを使用するパーティションを指定します。

ウィキペディアには、いくつかの推奨事項もあります。

  • 0x01-CHS/LBA-DOS 2.0 +-ディスクの最初の物理32MBのプライマリパーティションとしてのFAT12 ...(それ以外の場合は代わりに0x06を使用)
  • 0x04-CHS/LBA-DOS 3.0 + -65536セクター(32 MB)未満のFAT16 ...(それ以外の場合は代わりに0x06を使用)
  • 0x06-CHS/LBA-DOS 3.31+-65536以上のセクターを持つFAT16B。最初の物理的な8 GBのディスクに存在する必要があります...(そうでない場合は、代わりに0x0Eを使用してください)。プライマリパーティションのFAT12およびFAT16ボリュームが、最初の物理32 MBのディスクに存在しない場合にも、それらに使用されます。
  • 0x07-CHS/LBA-OS/2 1.2以降、Windows NT/CE-IFS/HPFS/NTFS/exFAT/QNX
  • 0x0B-CHS/LBA-DOS 7.1+-CHSアドレス指定のFAT32
  • 0x0C-LBA-DOS 7.1 + -LBAを使用したFAT32
  • 0x0E-LBA-DOS 7.0+-LBAを備えたFAT16B

IDのリストを完成させるために、UDFフォーマットのハードディスクパーティションをサポートしていない古いシステムに関する情報を以下に示します。

Windows NT 4.0以前では、MBR IDが0x01、0x04、0x06、0x07のパーティションにのみドライブ文字を割り当てることができます。

DOSベースのWindows(95、98、およびME)は、MBR IDが0x01、0x04、0x06、0x0B、0x0C、0x0Eのパーティションにのみドライブ文字を割り当てることができます。 MS-DOS自体は、MBR IDが0x01、0x04、0x06のパーティションのみにアクセスできます。これらのシステムは、ファイルシステムの検出にMBRパーティションIDを使用することに注意してください。 MBRパーティションIDは、パーティション上のファイルシステムと一致する必要があります。

結論:

パーティションサイズを確認します。0x01および0x04は、最初の32MBのディスクのパーティションにのみ使用する必要があります。 0x06はディスクの最初の8GBのみ。 0x0Bは8GBディスクに制限があるCHSアドレス指定用です。したがって、そのような制限がないのはIDのみです:0x07、0x0C、および0x0E。 0x0Cと0x0EがFATパーティションに使用されるため、0x07を選択することをお勧めします。これはIFS(Installable File System)パーティションを意味し、ウィキペディアによると、MicrosoftはWindows 2000 IFSAPIにUDFのサポートを追加しました。 0x0Cまたは0x0Eを使用すると、UDFとしてフォーマットされている場合でも、DOSベースのシステムはそのパーティションをFATとして表示します。 MBR id 0x07のパーティションは、これらのシステムでは非表示になっています。これらはUDFをサポートしていないため、0x0Cまたは0x0Eを選択することをお勧めします。

GPT:

GPTパーティションレイアウトはこの問題から外れていますが、MBRと同様の問題があります。 UDFに割り当てられたパーティションGUID(MBR idに相当するGPT)はありません。 Windows XP x64はUDFをサポートし、GPTデータパーティションはGUIDEBD0A0A2-B9E5-4433-87C0-68B6B72699C7(Microsoft Basic Data Partition)、これがGPTの唯一の可能な選択肢です。

出典:

(*)例外が1つあります。拡張MBRパーティションの検出には、MBR ID 0x05、0x0F、および0x85が使用されます。
(**)これら2つの呼び出しの定義は、Cマクロとして宣言されているため、WinIoCtl.hファイルにあります。
(***)BIOS INT 13h拡張は、CHSではなくLBAの使用を意味します。

3
Pali

私が扱っているCDとDVDには、パーティションテーブルがありません。 USBハードドライブで、パーティションテーブルをメディアに書き込みました。ドライブ全体をパーティションテーブルなしでUDFディスクとしてフォーマットすると、Windowsは問題なくマウントできると思います。

あなたはあなたのUSBドライブのサイズを言っていません、そしてあなたはUDFとしてドライブ全体を捧げることに消極的かもしれません、あなたはNTFSまたは他のMSがサポートするタイプの1つとしてfdiskでパーティションタイプを設定することを試みることができます。

2
codeDr

私も同じ問題を抱えています。私のUSBハードディスクは320GBです。パーティションテーブルは次のようになります。

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x44fdfe06

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       27963   224612766    c  W95 FAT32 (LBA)
/dev/sda2           27964       38913    87955875    5  Extended
/dev/sda5           27964       33366    43399566    7  HPFS/NTFS
/dev/sda6           33367       38913    44556246   83  Linux

パーティションsda5はUDFリビジョンです。 1.5およびshoulbはWindows XP以降で読み取り可能です。Linuxはもちろん正しく読み取ります。ただし、Windowsは混乱しています。パーティションをNTFSとして認識し、rawパーティションであると見なします。

ペンドライブでUDFを使った実験で、システムがUDFとFATを混同する傾向があることがわかりました。彼らはUDFをFATとして解釈します。ランダムな文字のディレクトリ構造を見ることができるので、それはかなり大きな類似点でなければなりません。 Linuxはディスクが破損していると言っていますが、使用を拒否していません。

UDF(少なくともrev 1.5)はUSBドライブで十分にサポートされていないと思います。

0
Patrick