web-dev-qa-db-ja.com

GDisk 16進コード

Gdiskの使用中に、16進コードを指定するオプションがあります。私はそれが何であり、なぜそれが必要なのかを知りたいです。以下を参照してください。たとえば、ドライブにソフトウェアRAIDを作成する場合、コードfd00が必要であると想定しています。しかし、なぜ?それは何ですか、それを使用する必要がありますか? 8300を使用してRAIDアレイを作成できないのはなぜですか(それはどういう意味ですか)。

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-5860533134, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-5860533134, default = 5860533134) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
4100 PowerPC PReP boot     4200 Windows LDM data      4201 Windows LDM metadata
7501 IBM GPFS              7f00 ChromeOS kernel       7f01 ChromeOS root       
7f02 ChromeOS reserved     8200 Linux swap            8300 Linux filesystem    
8301 Linux reserved        8302 Linux /home           8400 Intel Rapid Start   
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    a580 Midnight BSD data     a581 Midnight BSD boot   
a582 Midnight BSD swap     a583 Midnight BSD UFS      a584 Midnight BSD ZFS    
a585 Midnight BSD Vinum    a800 Apple UFS             a901 NetBSD swap         
a902 NetBSD FFS            a903 NetBSD LFS            a904 NetBSD concatenated 
a905 NetBSD encrypted      a906 NetBSD RAID           ab00 Apple boot          
af00 Apple HFS/HFS+        af01 Apple RAID            af02 Apple RAID offline  
af03 Apple label           af04 AppleTV recovery      af05 Apple Core Storage  
be00 Solaris boot          bf00 Solaris root          bf01 Solaris /usr & Mac Z
bf02 Solaris swap          bf03 Solaris backup        bf04 Solaris /var        
bf05 Solaris /home         bf06 Solaris alternate se  bf07 Solaris Reserved 1  
bf08 Solaris Reserved 2    bf09 Solaris Reserved 3    bf0a Solaris Reserved 4  
bf0b Solaris Reserved 5    c001 HP-UX data            c002 HP-UX service       
ea00 Freedesktop $BOOT     eb00 Haiku BFS             ed00 Sony system partitio
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition 
Press the  key to see more codes:  
fb00 VMWare VMFS           fb01 VMWare reserved       fc00 VMWare kcore crash p
fd00 Linux RAID            
1
john smith

kyodakeの答えは正しいですが、MBR中心でもあります。 GPTでは、同じ原則が適用されます。つまり、パーティションタイプコードは、パーティションの意図された目的を識別します。違いは、GPTタイプコードは128ビットGUIDであるのに対して、MBRで使用される8ビットコードであるということです。 GUIDの性質は、衝突を避けるために中央機関にコードを登録する必要がないことを意味します。 2つのGUIDが偶然に同一になる可能性は統計的に非常に低いです。

知る限り、GPTタイプコードの公式リポジトリはありませんが、GPTに関する Wikipediaページに文書化されています。 GPTタイプコードの欠点の1つは、GUIDとして、長いぎこちない-たとえば、Linuxファイルシステムデータの場合は0FC63DAF-8483-4772-8E79-3D69D8477DE4、MBRの場合は0x83。したがって、GPTディスクをパーティション分割するためのほとんどのツールは、ユーザーインターフェイスで何らかの「速記」または「自然言語の翻訳」を使用します。私はGPT fdiskの作者であり、執筆の目標は(MBR)fdiskにできるだけ近いものを作成することであったため、MBRコードをベースとして使用するアプローチをとりました。ただし、GPTタイプコードとMBRタイプコードの対応関係は1:1ではないため、MPTタイプコードに0x100を掛けて、GPTに相当するコードを取得しました。したがって、MBRの0x83は8300になりました。これにより、8301、8302など、MBRに存在しない関連する後続コードも有効になります。これらのコードは、MBRの同等物に既に精通している人にとって使いやすいですが、 'MBRコードを知らない人にとっては明らかにarbitrary意的です。内部的に、GPT fdiskはこれらのコードをGUIDに変換します。詳細なパーティション情報を表示すると、実際のGUIDを確認できます(たとえば、igdiskオプションを使用)。必要に応じて、またはGPT fdiskでサポートされていないコードを使用する必要がある場合は、GPT fdisk 4文字コードを使用する代わりに、任意のGUIDを入力することもできます。

他のツールは他のアプローチを使用します。 libpartedライブラリ(したがって、parted、GParted、およびlibpartedに基づくその他のツール)は、someタイプコードを「フラグ」に変換し、完全に非表示にします。他のコード。これは一部のユーザーの作業を簡素化するのに役立ちますが、一部のタスクが不可能になります。たとえば、libpartedに基づくもので任意のタイプのコードを設定することはできません。 OS Xのディスクユーティリティは、既知のGUIDをプレーンテキストの説明に変換します。 (IIRC、パーティションを作成すると、パーティションに作成されたファイルシステムに基づいて適切なタイプコードが設定されます。これはGPartedの場合と同様です。)

ほとんどの場合、LinuxはMBRまたはGPTのどちらにもタイプコードを使用しません。つまり、標準のLinuxファイルシステムを(GPT fdisk)8300パーティションに配置するか、0700(過去に一般的だった)を使用するか、独自のランダムなGUIDを割り当てることができます。同様のコメントがRAID、LVM、スワップ、およびその他のパーティションタイプに適用されます。ただし、この規則にはいくつかの例外があります。 1つは、ディストリビューションインストーラーがタイプコードを調べて設定することが多いため、パーティションを適切に使用する前にパーティションに正しいタイプコードが必要になる場合があるためです。別の例外は、/etc/fstabが適切に設定されていない場合、systemdがフォールバックとして型コードを使用し始めていることです。 (これがGPT fdiskの830xコードの大部分の起源です-Freedesktop/systemdイニシアチブである Discoverable Partitions Specification の一部です。)現在、UbuntuはメインのLinuxを使用していますファイルシステムのファイルシステムタイプコード(GPT fdiskの8300)、およびLVM、RAID、スワップなどの適切なコード。「Linuxはタイプコードを使用しない」ルールの1つの大きな例外は、BIOSブートパーティションコード(21686148-6449 -6E6F-744E-656564454649; GPT fdiskのef02またはlibpartedのbios_grubフラグ)。このタイプコードは、GRUBが使用するパーティションを識別し、grub-installを実行すると、GRUBはそのパーティションに自身の一部をインストールします。 GPTディスクを搭載したBIOSブートシステムにGRUBをインストールする場合、通常はBIOSブートパーティションが存在する必要があります。 (ただし、このルールには回避方法があります。)さらに重要なことは、誤ってこのタイプコードを間違ったパーティションに設定した場合、GRUBをインストールするとそのパーティションが破損します!さまざまなオンラインフォーラムでかなりの数の人がその間違いを犯しているのを見てきました。

型コードがより重要になるのは、他のOSを扱うときです。たとえば、WindowsとOS Xは、認識できないタイプコードでパーティションに触れない傾向があります。タイプコードのリストには、一般的なLinux固有のタイプコードが含まれていないため、Linux固有のタイプコードを使用すると、WindowsまたはOS XがUbuntuインストールを破壊するリスクを軽減できます。ただし、これらのOSでは、GPT fdisk 8300またはfd00コードを使用してもかまいません。これらの他のOSによって認識されるコードを使用すると、問題が発生する可能性があります。たとえば、かつてLinuxファイルシステムタイプGUID(0FC63DAF-8483-4772-8E79-3D69D8477DE4)は存在しませんでした。 「Microsoft Basic Data」タイプコード(EBD0A0A2-B9E5-4433-87C0-68B6B72699C7)を使用する一般的な慣行がデュアルブートセットアップで問題を引き起こしていたため、私はそれを作成して自分のGPT fdiskとlibpartedの両方にプッシュしました。具体的には、特定のWindowsツールは、Linuxパーティションが破損しているか初期化されていないWindowsパーティションであると判断し、その準備を提案します。このプロンプトでのユーザーエラーは悲惨です。このテーマの詳細については、 mineのこのページ を参照してください。

6
Rod Smith

パーティションテーブルで使用される割り当てられたパーティションタイプのリストは、元々IBMおよびMicrosoftによって内部的に維持されていました。

PCオペレーティングシステムとディスクツールの市場が成長し解放されたとき、他のベンダーも製品に特別なパーティションタイプを割り当てる必要がありました。

1990年代にいくつかの業界の専門家が、業界の事実上の標準を文書化し、それによってさらなる競合のリスクを減らすために、パーティションタイプと公開されたパーティションタイプリストの調査を開始しました。

値の解釈方法は、オペレーティングシステムのブートローダーやカーネル次第です。そのため、この表では、元々IDを導入したオペレーティングシステムまたはディスク関連製品と、それをマッピングしたファイルシステムまたは特別なパーティションタイプを指定します。

パーティションID:83h。タイプ:ファイルシステム。起源:GNU/Linux。説明:ネイティブLinuxファイルシステム。

パーティションID:FDh。起源:GNU/Linux。サポート:Linux。説明:自動検出機能を備えたLinux RAIDスーパーブロック。

1
kyodake