「GUID Partition Table」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リダイレクトに変更)
タグ: 新規リダイレクト
 
(2人の利用者による、間の4版が非表示)
1行目: 1行目:
  +
#redirect [[パーティショニング#GUID Partition Table]]
[[Category:ファイルシステム]]
 
[[el:Πίνακας Κατατμήσεων GUID]]
 
[[en:GUID Partition Table]]
 
[[es:GUID Partition Table]]
 
[[tr:Guid_Bölümledirme_Tablosu]]
 
[[zh-CN:GUID Partition Table]]
 
{{Related articles start}}
 
{{Related|Arch ブートプロセス}}
 
{{Related|Master Boot Record}}
 
{{Related|Unified Extensible Firmware Interface}}
 
{{Related|パーティショニング}}
 
{{Related articles end}}
 
 
GUID Partition Table (GPT) は [[Unified Extensible Firmware Interface|Unified Extensible Firmware Interface]] の仕様に含まれる新しいパーティションスタイルで、デバイスに [[Wikipedia:ja:GUID|globally unique identifier]] を使います。多くの面で [[Master Boot Record|Master Boot Record]] (一般的に使われるパーティションスタイル) と異なり様々な利点を持っています。
 
 
{{Warning|同じドライブで Windows とのデュアルブートをする場合、Windows は BIOS モードでは GPT ディスクを起動できないことに注意してください。既に Windows を BIOS で起動する MBR ドライブにインストールしているのならば、ドライブを GPT に変換してはいけません。Windows のチェインロードにどのブートローダを使っているかに関係なく Windows が起動できなくなります。GPT ドライブから起動するためには Windows を UEFI モードでインストールし [[ブートローダー|UEFI ブートローダ]]のどれかを使う必要があります。これは Windows の制限です。}}
 
 
GPT を理解するために、MBR とは何かを理解し、そしてそのデメリットを知るのが重要です。
 
 
どちらのパーティションスタイルでも、パーティションの数はパーティションテーブルに割り当てられた全ての容量とシングルパーティションの情報を保存するのに必要な容量に基づいて定義されます。
 
 
== Master Boot Record ==
 
MBR のパーティションテーブルはハードディスクの最初のセクタにパーティション情報を以下のように保存します。
 
 
{| class="wikitable"
 
! HDD での位置 !! コードの目的
 
|-
 
| 最初の 440 バイト || BIOS によって起動される MBR ブートコード。
 
|-
 
| 441-446 バイト || MBR ディスクシグニチャ。
 
|-
 
| 447-510 バイト || プライマリ・拡張パーティションの情報が入った実際のパーティションテーブル (論理パーティションはここに記載されないので注意してください)。
 
|-
 
| 511-512 バイト || MBR ブートシグニチャ 0xAA55。
 
|}
 
 
プライマリパーティションについての全ての情報は割り当てられた64バイトに制限されています。これを拡張するには、拡張パーティションを使います。拡張パーティションは MBR 内のプライマリパーティションでありながら論理パーティションと呼ばれる他のパーティションのコンテナとしての役割を果たします。従って4つのプライマリパーティションか、3つのプライマリパーティションと (多数の論理パーティションが入る) 1つの拡張パーティションのどちらかに制限されています。
 
 
=== MBR の欠点 ===
 
# 4つのプライマリパーティションか3つのプライマリ+1つの拡張パーティション (中には任意の数の論理パーティション) しか定義できません。3つのプライマリ+1つの拡張パーティションの場合、拡張パーティションの領域の外に空き容量がありますが、この空き容量を使って新しいパーティションを作ることはできません。
 
# 拡張パーティションの中で、論理パーティションのメタデータは連結リスト構造で保存されます。リンクがひとつでも消失すると、メタデータに続く全ての論理パーティションが喪失されます。
 
# MBR は1バイトのパーティションタイプしかサポートしていないのでタイプの重複が多数存在します。
 
# MBR はパーティションのセクタ情報を32ビットの LBA 方式で保存します。この LBA 値は (通常使われる) 512バイトのセクタサイズとディスクの最大アドレス容量を2 [[Wikipedia:ja:テビバイト|TiB]] に制限しています。MBR パーティションを使っている限り、2 TiB 以降の領域をパーティションとして定義することはできません。
 
 
== GUID Partition Table ==
 
GUID Partition Table (GPT) は GUID (linux では UUID) を使ってパーティション、タイプ、そして名前を定義します。GPT は以下のように構成されています:
 
{| class="wikitable"
 
! HDD での位置 !! 用途
 
|-
 
| ディスクの最初の論理セクタもしくは最初の 512 バイト || 保護 MBR - 通常の MBR と同じですが64バイトの領域にはディスクの全容量 (2 [[Wikipedia:ja:テビバイト|TiB]] 以上の場合は最大パーティション容量の 2 TiB) を占める 0xEE タイプのプライマリパーティションだけが含まれています。
 
|-
 
| ディスクの2番目の論理セクタもしくは次の 512 バイト || 第一 GPT ヘッダ - Unique Disk GUID, 第一パーティションテーブルの位置, パーティションテーブルで利用できるエントリの数, 自分自身と第一パーティションテーブルの CRC32 チェックサム, 第二 (もしくはバックアップ) GPT ヘッダの位置を含みます。
 
|-
 
| ディスクの2番目の論理セクタの後の (デフォルトでは) 16 KiB
 
| 第一 GPT テーブル - 128 個 (デフォルト値、変更可能) のパーティションエントリ、それぞれのエントリのサイズは 128 バイト (従って 128 個のパーティションエントリで合計 16 KiB)。セクタ番号は64ビットの LBA として保存されパーティションそれぞれに Partition Type GUID と Unique Partition GUID が書き込まれます。
 
|-
 
| ディスクの最後の論理セクタの前の (デフォルトでは) 16 KiB || 第二 GPT テーブル - 第一テーブルとバイト単位で全く同じです。主として第一パーティションテーブルに障害が発生した場合にリカバリーとして使われます。
 
|-
 
| ディスクの最後の論理セクタもしくは最後の 512 バイト || 第二 GPT ヘッダ - Unique Disk GUID, 第二パーティションテーブルの位置, パーティションテーブルで利用できるエントリの数, 自分自身と第二パーティションテーブルの CRC32 チェックサム, 第一 GPT ヘッダの位置を含みます。このヘッダは第一ヘッダが壊れた時に GPT 情報の復旧に使われます。
 
|}
 
 
=== GPT の利点 ===
 
# GUID (UUID) を使ってパーティションタイプを判別します - タイプの被りはありません。
 
# ディスク固有の GUID とそれぞれのパーティションにパーティション固有の GUID を利用します - ファイルシステムから独立してパーティションやディスクを参照できます。
 
# パーティションの数が任意 - パーティションテーブルに割り当てられた容量に依存します - 拡張・論理パーティションは必要ありません。デフォルトでは GPT テーブルは 128 個のパーティションが定義できるスペースを含みますが、より多くのパーティションを定義したい場合、パーティションテーブルにさらに多くのスペースを割り当てることができます (現在 gdisk だけがこの機能をサポートしています)。
 
# セクタ番号の保存に64ビットの LBA を使います - 最大アドレスディスク容量は 2 [[Wikipedia:ja:ゼビバイト|ZiB]] です。
 
# ディスクの最後にバックアップのヘッダとパーティションテーブルを保存して、第一ヘッダ・パーティションが破壊された時にリカバリを援助します。
 
# CRC32 チェックサムによってヘッダやパーティションテーブルのエラーや破損を検知します。
 
 
=== カーネルのサポート ===
 
 
カーネルコンフィグの {{ic|CONFIG_EFI_PARTITION}} オプションがカーネルの GPT サポートを有効にします (名前は EFI PARTITION ですが)。このオプションはカーネルに組み込む必要がありローダブルモジュールとしてコンパイルしてはいけません。GPT ディスクをデータストレージとして使っていて起動には使わない場合でもこのオプションが必要です。[core] リポジトリにある Arch の {{Pkg|linux}} と {{Pkg|linux-lts}} カーネルはこのオプションをデフォルトで有効にしています。カスタムカーネルでこのオプションを有効にするには {{ic|1=CONFIG_EFI_PARTITION=y}} を使って下さい。
 
 
== ブートローダーのサポート ==
 
 
=== UEFI 環境 ===
 
 
GPT は UEFI 仕様に含まれており UEFI ブートに必須なので全ての UEFI ブートローダーは GPT ディスクをサポートしています。詳しくは [[ブートローダー|UEFI ブートローダー]]を見て下さい。
 
 
=== BIOS 環境 ===
 
 
{{Note|Intel Desktop Board マザーボードなど、BIOS 環境によっては保護の MBR パーティションに Boot フラグを設定しないと GPT ディスクから起動できないことがあります。そのような時は、互換性維持のために GPT ではなく [[Master Boot Record|MBR]] (msdos パーティショニング) を使うことが推奨されています。詳細と回避方法は http://mjg59.dreamwidth.org/8035.html や http://rodsbooks.com/gdisk/bios.html を参照してください。}}
 
 
* [[GRUB|GRUB]] は BIOS 環境では {{ic|core.img}} ファイルを埋め込むための [[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] (2 [[Wikipedia:ja:メビバイト|MiB]]、ファイルシステムなし、gdisk ではタイプコード {{ic|EF02}} GNU Parted では bios_grub フラグ) を必要とします、GPT ディスクでは MBR の後ろに埋め込む領域が存在しないためです。GRUB のランタイム GPT サポートは {{ic|part_gpt}} モジュールによって提供されており、'''BIOS Boot Partition''' が必要なこととは関係がありません。
 
 
* [[Syslinux|Syslinux]] は 440 バイトの MBR ブートコード {{ic|gptmbr.bin}} が Syslinux のブートファイルを含むパーティションを判別するために ({{ic|/boot}} パーティションが分割されているかどうかに関わらず) {{ic|/boot/syslinux/ldlinux.sys}} を含むパーティションを "Legacy BIOS Bootable" GPT 属性 (GNU Parted では ''legacy_boot'') としてマークする必要があります。詳細は [[Syslinux#GUID パーティションテーブル]] を見て下さい。MBR ディスクの "boot" フラグと同じです。
 
 
* [[GRUB Legacy]] と [[LILO]] は GPT をサポートしていません。
 
 
== パーティションユーティリティ ==
 
=== GPT fdisk ===
 
 
GPT fdisk は GPT ディスクを編集するためのテキストモードユーティリティのセットです。gdisk, sgdisk, cgdisk から成り (MBR ディスクで使われる) util-linux fdisk のそれぞれのツールと同じ機能を持っています。GPT fdisk は {{Pkg|gptfdisk}} として [extra] リポジトリから利用できます。
 
 
==== MBR から GPT への変換 ====
 
 
gdisk の機能の一つとしてデータを喪失せずに MBR や BSD ディスクラベルを GPT に変換できることが挙げられます。変換時、全ての MBR のプライマリパーティションと論理パーティションは GPT パーティションになり、それぞれのパーティションには適切なパーティションタイプ GUID と Unique partition GUID が作られます。
 
 
MBR ディスクを GPT に変換するには MBR ディスクを gdisk を使って開き (fdisk と同じように) "w" オプションで変更をディスクに書いて終了するだけです。データを失う危険性があるので、'''ディスクに変更を書き込む前にエラーがないか確認して、エラーがあったらそれを修正してください'''。詳しくは http://www.rodsbooks.com/gdisk/mbr2gpt.html を参照してください。変換後、ブートローダを再インストールして GPT から起動するように設定する必要があります。
 
 
{{Note|
 
* GPT はディスクの最後に第二テーブルを保存することを覚えておいて下さい。このデータ構造はデフォルトで 33 512 バイトセクタが消費されます。MBR は同じようなデータ構造を最後に作らないので、MBR ディスク上の最後のパーティションがディスクの最後の最後まで使いきってしまい完全な変換ができなくなることがあります。こうなってしまったら、変換を一度止めて最後のパーティションのサイズを変更するか、最後のパーティションだけを変換から除いて下さい。
 
* ブートマネージャが GRUB の場合、[[GRUB#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] が必要なことに注意してください。MBR のパーティションレイアウトが古くなっていないのなら、最初のパーティションをセクタ 2048 にする良い機会になります。最初に bios-boot パーティションを作成できるように 1007 [[Wikipedia:KiB|KiB]] の空きスペースを作るためです。これを行うには、まず上述の通り gdisk で mbr->gpt の変換を行なって下さい。その後、gdisk で新しいパーティションを作成して手動で位置をセクタ 34 - 2047 に指定して、パーティションタイプ {{ic|EF02}} を設定してください。}}
 
 
=== Util-linux fdisk ===
 
 
util-linux の (util-linux に含まれる libfdisk ベースの) fdisk ユーティリティは GPT を部分的にサポートしていますが、今の所まだベータ段階です (2013年10月7日現在)。関連するユーティリティの cfdisk や sfdisk は GPT をサポートしていないため、GPT ディスクで使うと GPT ヘッダやパーティションテーブルを破壊してしまう可能性があります。
 
 
=== GNU Parted ===
 
 
GNU Parted 3.0 以上では、{{ic|parted}} コマンドラインユーティリティはファイルシステムに関する操作をサポートしていません、FS に関するコードは libparted からほとんど削除され、gparted などの外部アプリケーションが必要とする最低限のコードだけが残されています。アップストリームでは、ファイルシステムに関する操作はファイルシステム固有のツールや gparted など parted の GUI ラッパー (外部ツールを呼び出します) を使うことを推奨しています。
 
 
==参照==
 
# Wikipedia のページ [[Wikipedia:ja:GUIDパーティションテーブル|GPT]] と [[Wikipedia:ja:マスターブートレコード|MBR]]
 
# [http://rodsbooks.com/gdisk/ Homepage of Rod Smith's GPT fdisk tool] and its [http://sourceforge.net/projects/gptfdisk/ Sourceforge.net Project page - gptfdisk]
 
# Rod Smith's page on [http://rodsbooks.com/gdisk/mbr2gpt.html Converting MBR to GPT] and [http://rodsbooks.com/gdisk/booting.html Booting OSes from GPT]
 
# Rod Smith's page on the [http://www.rodsbooks.com/linux-fs-code/index.html New Partition Type GUID] for Linux data partitions
 
# [http://sysresccd.org/Sysresccd-Partitioning-The-new-GPT-disk-layout System Rescue CD's page on GPT]
 
# Wikipedia page on [http://en.wikipedia.org/wiki/BIOS_Boot_partition BIOS Boot Partition]
 
# [http://www.ibm.com/developerworks/linux/library/l-gpt/index.html?ca=dgr-lnxw07GPT-Storagedth-lx&S_TACT=105AGY83&S_CMP=grlnxw07 Make the most of large drives with GPT and Linux - IBM Developer Works]
 
# [http://www.microsoft.com/whdc/device/storage/GPT_FAQ.mspx Microsoft's Windows and GPT FAQ]
 

2020年7月16日 (木) 17:48時点における最新版