Difference between revisions of "GUID Partition Table (日本語)"

From ArchWiki
Jump to: navigation, search
m
m
Line 16: Line 16:
 
{{Article summary end}}
 
{{Article summary end}}
  
GUID Partition Table (GPT) は [[Unified Extensible Firmware Interface (日本語)|Unified Extensible Firmware Interface]] の仕様に含まれる新しいパーティションスタイルで、デバイスに [[Wikipedia:Globally unique identifier |globally unique identifier]] を使います。多くの面で [[Master Boot Record (日本語)|Master Boot Record]] (一般的に使われるパーティションスタイル) と異なり様々な利点を持っています。
+
GUID Partition Table (GPT) は [[Unified Extensible Firmware Interface (日本語)|Unified Extensible Firmware Interface]] の仕様に含まれる新しいパーティションスタイルで、デバイスに [[Wikipedia:ja:GUID|globally unique identifier]] を使います。多くの面で [[Master Boot Record (日本語)|Master Boot Record]] (一般的に使われるパーティションスタイル) と異なり様々な利点を持っています。
  
 
GPT を理解するために、MBR とは何かを理解し、そしてそのデメリットを知るのが重要です。
 
GPT を理解するために、MBR とは何かを理解し、そしてそのデメリットを知るのが重要です。
Line 86: Line 86:
 
* [[GRUB (日本語)|GRUB]] は BIOS 環境では {{ic|core.img}} ファイルを埋め込むための 1007 [[Wikipedia:ja:KiB|KiB]] の [[GRUB (日本語)#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] (gdisk ではタイプコード {{ic|EF02}} GNU Parted では bios_grub フラグ) を必要とします、GPT ディスクでは MBR の後ろに埋め込む領域が存在しないためです。GRUB のランタイム GPT サポートは {{ic|part_gpt}} モジュールによって提供されています。
 
* [[GRUB (日本語)|GRUB]] は BIOS 環境では {{ic|core.img}} ファイルを埋め込むための 1007 [[Wikipedia:ja:KiB|KiB]] の [[GRUB (日本語)#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] (gdisk ではタイプコード {{ic|EF02}} GNU Parted では bios_grub フラグ) を必要とします、GPT ディスクでは MBR の後ろに埋め込む領域が存在しないためです。GRUB のランタイム GPT サポートは {{ic|part_gpt}} モジュールによって提供されています。
  
* [[Syslinux]] は 440 バイトの MBR ブートコード {{ic|gptmbr.bin}} が Syslinux のブートファイルを含むパーティションを判別するために ({{ic|/boot}} パーティションが分割されているかどうかに関わらず) {{ic|/boot/syslinux/ldlinux.sys}} を含むパーティションを "Legacy BIOS Bootable" GPT 属性 (GNU Parted では ''legacy_boot'') としてマークする必要があります。詳細は [[Syslinux#GUID Partition Table aka GPT]] を見て下さい。MBR ディスクの "boot" フラグと同じです。
+
* [[Syslinux]] は 440 バイトの MBR ブートコード {{ic|gptmbr.bin}} が Syslinux のブートファイルを含むパーティションを判別するために ({{ic|/boot}} パーティションが分割されているかどうかに関わらず) {{ic|/boot/syslinux/ldlinux.sys}} を含むパーティションを "Legacy BIOS Bootable" GPT 属性 (GNU Parted では ''legacy_boot'') としてマークする必要があります。詳細は [[Syslinux#GUID partition table aka GPT]] を見て下さい。MBR ディスクの "boot" フラグと同じです。
  
 
* [[GRUB Legacy]] は GPT ディスクをサポートしていません。Fedora のパッチがあてられた GRUB Legacy フォーク {{AUR|grub-legacy-fedora-git}} には Intel による GPT パッチが含まれています (Fedora ではテストされていますが、Arch ではテストされていません)。Fedora はバージョン F16 からデフォルトの BIOS ブートローダーとして GRUB を使っているのでこのフォークはすでにメンテナンスされていません。代わりに GRUB や Syslinux に移行することが推奨されています。
 
* [[GRUB Legacy]] は GPT ディスクをサポートしていません。Fedora のパッチがあてられた GRUB Legacy フォーク {{AUR|grub-legacy-fedora-git}} には Intel による GPT パッチが含まれています (Fedora ではテストされていますが、Arch ではテストされていません)。Fedora はバージョン F16 からデフォルトの BIOS ブートローダーとして GRUB を使っているのでこのフォークはすでにメンテナンスされていません。代わりに GRUB や Syslinux に移行することが推奨されています。
Line 97: Line 97:
 
=== GPT fdisk ===
 
=== GPT fdisk ===
  
GPT fdisk is a set of text-mode utilities for editing GPT disks. It consists of gdisk, sgdisk and cgdisk which are equivalent to respective tools from util-linux fdisk (used for MBR disks). It is available in the [extra] repository as {{Pkg|gptfdisk}}.
+
GPT fdisk GPT ディスクを編集するためのテキストモードユーティリティのセットです。gdisk, sgdisk, cgdisk から成り (MBR ディスクで使われる) util-linux fdisk のそれぞれのツールと同じ機能を持っています。GPT fdisk は {{Pkg|gptfdisk}} として [extra] リポジトリから利用できます。
  
{{Note|The fdisk partitioning utilities from util-linux (i.e. fdisk, cfdisk and sfdisk) do not support GPT, and may damage the GPT header and partition table if used on a GPT disk.}}
+
{{Note|util-linux の fdisk パーティションユーティリティ (つまり fdisk, cfdisk, sfdisk) GPT をサポートしていないので、GPT ディスクで使うと GPT ヘッダやパーティションテーブルを破壊してしまう可能性があります。}}
  
 
==== MBR から GPT への変換 ====
 
==== MBR から GPT への変換 ====
Line 107: Line 107:
 
Just open the MBR disk using gdisk and exit with "w" option to write the changes back to the disk (similar to fdisk) to convert the MBR disk to GPT. '''Watch out for any error and fix them before writing any change to disk''' because you may risk losing data. See http://www.rodsbooks.com/gdisk/mbr2gpt.html for more info. After conversion, the bootloaders will need to be reinstalled to configure them to boot from GPT.
 
Just open the MBR disk using gdisk and exit with "w" option to write the changes back to the disk (similar to fdisk) to convert the MBR disk to GPT. '''Watch out for any error and fix them before writing any change to disk''' because you may risk losing data. See http://www.rodsbooks.com/gdisk/mbr2gpt.html for more info. After conversion, the bootloaders will need to be reinstalled to configure them to boot from GPT.
  
{{Note|Remember that GPT stores a secondary table at the end of disk. You must make sure that the last 1 [[Wikipedia:MiB|MiB]] of the disk is not used by any partition.}}
+
{{Note|GPT はディスクの最後に第二テーブルを保存することを覚えておいて下さい。ディスクの最後の 1 [[Wikipedia:ja:メビバイト|MiB]] はどのパーティションにも使われないようにしなくてはなりません。}}
  
{{Note|Keep in mind that if your Boot-Manager is GRUB, it needs a [[GRUB#GUID Partition Table (GPT) specific instructions|BIOS Boot Partition]]. If your MBR Partitioning Layout isn't too old, there is a good chance that the first partition starts at sector 2048 for alignment reasons. That means at the beginning will be 1007 [[Wikipedia:KiB|KiB]] of empty space where this bios-boot partition can be created. To do this, first do the mbr->gpt conversion with gdisk as described above. Afterwards, create a new partition with gdisk and manually specify its position to be sectors 34 - 2047, and set the {{ic|EF02}} partition type.}}
+
{{Note|Keep in mind that if your Boot-Manager is GRUB, it needs a [[GRUB (日本語)#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]]. If your MBR Partitioning Layout isn't too old, there is a good chance that the first partition starts at sector 2048 for alignment reasons. That means at the beginning will be 1007 [[Wikipedia:KiB|KiB]] of empty space where this bios-boot partition can be created. To do this, first do the mbr->gpt conversion with gdisk as described above. Afterwards, create a new partition with gdisk and manually specify its position to be sectors 34 - 2047, and set the {{ic|EF02}} partition type.}}
  
 
=== GNU Parted ===
 
=== GNU Parted ===
  
In GNU Parted >=3.0, the {{ic|parted}} command-line utility does not support any filesystem related operation, and most of the FS related code has been removed from the libparted, leaving only minimal code required by external applications like gparted. The upstream recommends using the filesystem specific tools or one of the parted's GUI wrappers like gparted (which calls these external tools) for filesystem related operations.
+
GNU Parted 3.0 以上では、{{ic|parted}} コマンドラインユーティリティはファイルシステムに関する操作をサポートしていません、FS に関するコードは libparted からほとんど削除され、gparted などの外部アプリケーションが必要とする最低限のコードだけが残されています。アップストリームでは、ファイルシステムに関する操作はファイルシステム固有のツールや gparted など parted GUI ラッパー (外部ツールを呼び出します) を使うことを推奨しています。
  
 
==参照==
 
==参照==

Revision as of 07:25, 6 September 2013

概要 help replacing me
GUID Partition Table の概要。
概括
Template:Boot process overview (日本語)
関連項目
Unified Extensible Firmware Interface (日本語)
Master Boot Record (日本語)
Partitioning (日本語)
Arch Boot Process (日本語)

GUID Partition Table (GPT) は Unified Extensible Firmware Interface の仕様に含まれる新しいパーティションスタイルで、デバイスに globally unique identifier を使います。多くの面で Master Boot Record (一般的に使われるパーティションスタイル) と異なり様々な利点を持っています。

GPT を理解するために、MBR とは何かを理解し、そしてそのデメリットを知るのが重要です。

どちらのパーティションスタイルでも、パーティションの数はパーティションテーブルに割り当てられた全ての容量とシングルパーティションの情報を保存するのに必要な容量に基づいて定義されます。

Master Boot Record

MBR のパーティションテーブルはハードディスクの最初のセクタにパーティション情報を以下のように保存します。

HDD での位置 コードの目的
最初の 440 バイト BIOS によって起動される MBR ブートコード。
441-446 バイト MBR ディスクシグニチャ。
447-510 バイト プライマリ・拡張パーティションの情報が入った実際のパーティションテーブル (論理パーティションはここに記載されないので注意してください)。
511-512 バイト MBR ブートシグニチャ 0xAA55。

プライマリパーティションについての全ての情報は割り当てられた64バイトに制限されています。これを拡張するには、拡張パーティションを使います。拡張パーティションは MBR 内のプライマリパーティションでありながら論理パーティションと呼ばれる他のパーティションのコンテナとしての役割を果たします。従って4つのプライマリパーティションか、3つのプライマリパーティションと (多数の論理パーティションが入る) 1つの拡張パーティションのどちらかに制限されています。

MBR の欠点

  1. 4つのプライマリパーティションか3つのプライマリ+1つの拡張パーティション (中には任意の数の論理パーティション) しか定義できません。3つのプライマリ+1つの拡張パーティションの場合、拡張パーティションの領域の外に空き容量がありますが、この空き容量を使って新しいパーティションを作ることはできません。
  2. 拡張パーティションの中で、論理パーティションのメタデータは連結リスト構造で保存されます。リンクがひとつでも消失すると、メタデータに続く全ての論理パーティションが喪失されます。
  3. MBR は1バイトのパーティションタイプしかサポートしていないのでタイプの重複が多数存在します。
  4. MBR はパーティションのセクタ情報を32ビットの LBA 方式で保存します。この LBA 値は (通常使われる) 512バイトのセクタサイズとディスクの最大アドレス容量を2 TiB に制限しています。MBR パーティションを使っている限り、2 TiB 以降の領域をパーティションとして定義することはできません。

GUID Partition Table

GUID Partition Table (GPT) は GUID (linux では UUID) を使ってパーティション、タイプ、そして名前を定義します。GPT は以下のように構成されています:

HDD での位置 目的
ディスクの最初の論理セクタもしくは最初の 512 バイト 保護 MBR - 通常の MBR と同じですが64バイトの領域にはディスクの全容量 (2 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 の利点

  1. GUID (UUID) を使ってパーティションタイプを判別します - タイプの被りはありません。
  2. ディスク固有の GUID とそれぞれのパーティションにパーティション固有の GUID を利用します - ファイルシステムから独立してパーティションやディスクを参照できます。
  3. パーティションの数が任意 - パーティションテーブルに割り当てられた容量に依存します - 拡張・論理パーティションは必要ありません。デフォルトでは GPT テーブルは 128 個のパーティションが定義できるスペースを含みますが、より多くのパーティションを定義したい場合、パーティションテーブルにさらに多くのスペースを割り当てることができます (現在 gdisk だけがこの機能をサポートしています)。
  4. セクタ番号の保存に64ビットの LBA を使います - 最大アドレスディスク容量は 2 ZiB です。
  5. ディスクの最後にバックアップのヘッダとパーティションテーブルを保存して、第一ヘッダ・パーティションが破壊された時にリカバリを援助します。
  6. CRC32 チェックサムによってヘッダやパーティションテーブルのエラーや破損を検知します。

カーネルのサポート

カーネルコンフィグの CONFIG_EFI_PARTITION オプションがカーネルの GPT サポートを有効にします (名前は EFI PARTITION ですが)。このオプションはカーネルに組み込む必要がありローダブルモジュールとしてコンパイルしてはいけません。GPT ディスクをデータストレージとして使っていて起動には使わない場合でもこのオプションが必要です。[core] リポジトリにある Arch の linuxlinux-lts カーネルはこのオプションをデフォルトで有効にしています。カスタムカーネルでこのオプションを有効にするには CONFIG_EFI_PARTITION=y を使って下さい。

ブートローダーのサポート

UEFI 環境

GPT は UEFI 仕様に含まれており UEFI ブートに必須なので全ての UEFI ブートローダーは GPT ディスクをサポートしています。詳しくは UEFI_Bootloaders を見て下さい。

BIOS 環境

Note: BIOS 環境によっては GPT ディスクから起動できないことがあります。詳細と回避方法は http://mjg59.dreamwidth.org/8035.htmlhttp://rodsbooks.com/gdisk/bios.html を参照してください。
  • GRUB は BIOS 環境では core.img ファイルを埋め込むための 1007 KiBBIOS Boot Partition (gdisk ではタイプコード EF02 GNU Parted では bios_grub フラグ) を必要とします、GPT ディスクでは MBR の後ろに埋め込む領域が存在しないためです。GRUB のランタイム GPT サポートは part_gpt モジュールによって提供されています。
  • Syslinux は 440 バイトの MBR ブートコード gptmbr.bin が Syslinux のブートファイルを含むパーティションを判別するために (/boot パーティションが分割されているかどうかに関わらず) /boot/syslinux/ldlinux.sys を含むパーティションを "Legacy BIOS Bootable" GPT 属性 (GNU Parted では legacy_boot) としてマークする必要があります。詳細は Syslinux#GUID partition table aka GPT を見て下さい。MBR ディスクの "boot" フラグと同じです。
  • GRUB Legacy は GPT ディスクをサポートしていません。Fedora のパッチがあてられた GRUB Legacy フォーク grub-legacy-fedora-gitAUR には Intel による GPT パッチが含まれています (Fedora ではテストされていますが、Arch ではテストされていません)。Fedora はバージョン F16 からデフォルトの BIOS ブートローダーとして GRUB を使っているのでこのフォークはすでにメンテナンスされていません。代わりに GRUB や Syslinux に移行することが推奨されています。
Note: Intel Desktop Board のマザーボードは保護の MBR パーティションに Boot フラグが設定されている GPT ディスクだけしか起動しないことがあります。このフラグは fdisk/cfdisk を使って GPT にダメージを与えないよう安全に設定することができます (ただしバックアップをとって、設定後の GPT が正しいか何度もチェックしましょう)。
  • LILO の GPT サポートはテストされていないので GPT ディスクを起動できるかどうか不明瞭な状態です。

パーティションユーティリティ

GPT fdisk

GPT fdisk は GPT ディスクを編集するためのテキストモードユーティリティのセットです。gdisk, sgdisk, cgdisk から成り (MBR ディスクで使われる) util-linux fdisk のそれぞれのツールと同じ機能を持っています。GPT fdisk は gptfdisk として [extra] リポジトリから利用できます。

Note: util-linux の fdisk パーティションユーティリティ (つまり fdisk, cfdisk, sfdisk) は GPT をサポートしていないので、GPT ディスクで使うと GPT ヘッダやパーティションテーブルを破壊してしまう可能性があります。

MBR から GPT への変換

One of the best features of gdisk (and sgdisk and cgdisk too) is its ability to convert MBR and BSD disklabels to GPT without data loss. Upon conversion, all the MBR primary partitions and the logical partitions become GPT partitions with the correct partition type GUIDs and Unique partition GUIDs created for each partition.

Just open the MBR disk using gdisk and exit with "w" option to write the changes back to the disk (similar to fdisk) to convert the MBR disk to GPT. Watch out for any error and fix them before writing any change to disk because you may risk losing data. See http://www.rodsbooks.com/gdisk/mbr2gpt.html for more info. After conversion, the bootloaders will need to be reinstalled to configure them to boot from GPT.

Note: GPT はディスクの最後に第二テーブルを保存することを覚えておいて下さい。ディスクの最後の 1 MiB はどのパーティションにも使われないようにしなくてはなりません。
Note: Keep in mind that if your Boot-Manager is GRUB, it needs a BIOS Boot Partition. If your MBR Partitioning Layout isn't too old, there is a good chance that the first partition starts at sector 2048 for alignment reasons. That means at the beginning will be 1007 KiB of empty space where this bios-boot partition can be created. To do this, first do the mbr->gpt conversion with gdisk as described above. Afterwards, create a new partition with gdisk and manually specify its position to be sectors 34 - 2047, and set the EF02 partition type.

GNU Parted

GNU Parted 3.0 以上では、parted コマンドラインユーティリティはファイルシステムに関する操作をサポートしていません、FS に関するコードは libparted からほとんど削除され、gparted などの外部アプリケーションが必要とする最低限のコードだけが残されています。アップストリームでは、ファイルシステムに関する操作はファイルシステム固有のツールや gparted など parted の GUI ラッパー (外部ツールを呼び出します) を使うことを推奨しています。

参照

  1. Wikipedia のページ GPTMBR
  2. Homepage of Rod Smith's GPT fdisk tool and its Sourceforge.net Project page - gptfdisk
  3. Rod Smith's page on Converting MBR to GPT and Booting OSes from GPT
  4. Rod Smith's page on the New Partition Type GUID for Linux data partitions
  5. System Rescue CD's page on GPT
  6. Wikipedia page on BIOS Boot Partition
  7. Make the most of large drives with GPT and Linux - IBM Developer Works
  8. Microsoft's Windows and GPT FAQ