INDEX(Topページ) | News & Topics | Glossary | Column List | GuestBook | Link & Profile

第17回 Mac OS Xにおけるファイルシステム事情〜IntelベースMacintoshを支える「GUIDパーティションテーブル(GPT)」〜

「HFS Plus」「ジャーナリング」に続くファイルシステム関連の3回目に相当する今回は、Intelプロセッサへの移行に伴い新たに採用されたパーティション形式「GUIDパーティションテーブル(GPT)」を採り上げてみたいと思います。IntelベースMacintoshにおけるキーソリューションの一つとしても捉えられるであろう同テクノロジを、既存類似技術との比較等も含めながら紹介してみたいと思います。


●Mac OS環境において利用可能なその他のパーティション形式

今回テーマとして採り上げているGUIDパーティションテーブルは、特定デバイス上においてパーティション制御を司る「パーティション形式」の一つとして存在しており、Mac OS環境にて利用可能なその他の既存パーティション形式としては、 PC/AT互換機(Windows環境等)等で主流として採用されてきた「Master Boot Record(マスタブートレコード)」、或いはMac OSにおける「Appleパーティションテーブル」が挙げられます。まずはこれらの既存技術がどのような特徴を有しているのか、簡単に纏めてみたいと思います。

Master Boot Record(MBR、マスタブートレコード)

PC/ATアーキテクチャを採用したコンピュータにおける起動ボリューム、或いは同アーキテクチャ互換のボリュームを必要とするデバイスにおいて利用されるパーティション形式で「PC Partition Scheme」等とも称されており、各種Mac OSはアクセスのみを可能としている(起動は不可)。起動時において最初に読み込まれる情報としてハードディスク等の第1セクタに格納され、パーティション情報やインストールされている各種OSの起動方法等が記録されているレコード。名称自体もハードディスクにおける第1セクタの呼称に由来しており、パーティションテーブルサイズは64byte。16byteのパーティションテーブルを最大4パーティションまで設定可能(4つ以上のパーティションを必要とする際には、後に追加された拡張パーティション形式にて対応)となっており、「ブートストラップローダ」及び「0xAA55」という16進定数が格納されているシグニチャ領域「ブートシグニチャ」と共に構成されている。32bitのセクタアドレスを使用するため、サポート可能なボリュームサイズは2TBとなっており、前述の仕組みに由来して単一のディスクに最大4つのプライマリパーティション(或いは3つのプライマリパーティション、1つの拡張パーティション、任意の数の論理ドライブ)を作成可能としている。コンピュータ起動時には最初にBIOS(注1)によってMaster Boot Recordがメモリに読み込まれ、ブートストラップローダが動作。同プログラムはパーティションテーブルを参照しつつ、アクティブなパーティション(起動ボリュームとして設定されているパーティション)から「ブートセクタ」と称される領域を読み込み、同セクタに格納されたプログラム(ブートストラップコード)は該当パーティションに属するOSを起動する事となる。尚、ブートストラップローダもブートストラップコードと称される場合がある。

Appleパーティションマップ

PowerPCベースMacintoshの起動ボリューム、或いはMacintosh全般における非起動ボリュームにて利用されるパーティション形式で「Appleパーティション方式」「Appleパーティションテーブル」等とも表記される。2番目のセクタから開始される可変長の領域で、パーティション情報を番号付リストにて保持。自身を「パーティション1」として定義し、通常63セクタ(約32KB)にて構成されている。単一のパーティションテーブルには512byteの容量中に開始位置や終了位置、ファイルシステム種別等の各種情報が記録されており、多くのパーティションを格納可能とする等の柔軟性を備える一方、Mac OSによる独自仕様に起因して互換性等に問題を抱える事となる。尚、ブートローダが格納される「パーティション0」は「Open Firmware 1.0.5」「Open Firmware 2.0.x」をサポートする機種によって使用され、Classic Mac OSにおける「パーティション2」〜「パーティション8」はOSのパッチやデバイスドライバ等のために予約されている。前記に起因して、ユーザが定義したパーティションはClassic Mac OSでは「パーティション9」以降から、同OS以外(主にMac OS X)では「パーティション2」以降から利用される事となる。

上記中では、各パーティション方式における開始セクタ(Master Boot Record→第1セクタ、Appleパーテションマップ→第2セクタ)に注目して読み進めて頂けると幸いです。


●IntelベースMacintosh時代のパーティション形式「GUIDパーティションテーブル(GPT)」

2005年に開催された「Worldwide Developers Conference 2005(WWDC 2005)」において正式発表が行われたIntelプロセッサへの移行計画ですが、同計画においてAppleは、Macintoshに対してプロセッサ以外にも様々なアーキテクチャに大きな改革を行う事となります。そしてそれらには(数多のPC/AT互換機と異なり)過去の資産に囚われる事のない同社の立場を有効活用した結果として多くの最新技術が投入される事となり、代表格の一つとして「EFI」(注2)等と共に注目を集める存在が、今回のテーマとして採用しているGUIDパーティションテーブルではないかと思われます。

そもそもGUIDとは「Globally Unique Identifier」の略称で、Uniqueとの呼称が示す通り、特定のアルゴリズムによって算出される一意な識別子を指しています。そして「Intel Architecture 64」をサポートするハードウェア用途に前述のEFIと共にIntelによって主導、推進されたのが、GUIDの特性をパーティションテーブルに応用したGUIDパーティションテーブルとなっており、前記の特性等に起因して、特定の中央集権的な環境を必要とする事なく、ローカルにおいて様々なデバイス、及びパーティション等を一意に識別可能としています(当該デバイスのインターフェイスを変更した際にも、オペレーティングシステムレベルでは同一のボリュームとして認識する事が可能)。尚、IntelベースMacintoshにおけるブートボリュームに対しては「GUIDパーティションテーブル」の適用が必須条件となっており、Mac OS X for Intelは同パーティションテーブルが適用されたボリュームに対してのみインストール可能となっています。そして、GUIDパーティションテーブルの特徴の一つとして第1セクタを敢えて未使用領域としている点が挙げられ、この仕組みによって前述の「Master Boot Record」との共存を実現。Apple純正デュアルブート支援ツール「Boot Camp(ブートキャンプ)」における「Boot Camp Assistant」は、パーティション分割時に「Master Boot Record」領域を作成する事により、Mac OS XとWindows XPのデュアルブートを実現しています。また、パーティションデータ構造の整合性を高めるために、GPTヘッダとパーティションテーブルを「プライマリパーティションテーブル」(第2セクタ〜)と「バックアップパーティションテーブル」(最後部)に格納する事によって一定レベルの冗長性も確保しています。

尚、GUIDパーティションテーブルによるパーティショニングでは、拡張パーティションリストを使用する事よって、Master Boot Recordによるパーティショニングに見られるようなパーティションのネストを必要としません。また、64bitセクタアドレスの使用に起因して理論上18EB(エクサバイト)までのボリュームサイズをサポートし、単一のディスクに対して最大128パーティションを作成可能とする他、36バイトのUnicodeパーティション名の適用も可能となっています。

実際の利用シーンにおける留意点は、PowerPCベースMacintoshやPC/AT互換機で利用していた外付けHDD(Master Boot Record、Appleパーティションマップ)の再利用、或いは新たなHDDの新規利用をIntelベースMacintoshにて試みる際等に生じる事が多いでしょう。データ保存用途等、単純にアクセスさせる事のみを目的とするならば、従来のパーティション形式での利用も可能ではありますが、ブートボリュームとしての利用を必要とする際等には前述通りGUIDパーティションテーブルの適用が必須となります。以下にApple純正「Disk Utility(ディスクユーティリティ、/Aplication/Utilities/Disk Utility.app)」を利用した際の適用手順を示します。

  1. Disk Utilityを起動
  2. 左側のソースリストより当該ディスクを選択(論理分割されたボリュームではなく物理的に存在するディスクを選択)
  3. 「パーティション」タブを選択
  4. 「オプション」ボタンをクリック
  5. 表示されたパーティション方式選択パネルより「GUIDパーティションテーブル」を選択

ディスクユーティリティを用いた「GUIDパーティションテーブル」の適用
↑Disk Utilityにおけるパーティション形式選択画面(クリックで拡大します)

※パーティショニングを行う際は初期化を伴うため、既存データは消去される事となります。

サードパーティアプリケーションでは、NetJapanより提供されているパーティショニングツール「iPartition」がVer.2.0よりGUIDパーティションテーブルの作成、及び編集等に対応しており、IntelベースMacintoshは、GUIDパーティションテーブルが適用されたUSB接続デバイスに対するMac OS X for Intelのインストールをサポートしています。


●各種パーティション形式に対する各アーキテクチャの対応状況

続いて、PowerPC→Intel Coreへの移行過渡期に相当する現状においては重要な要素の一つとも成り得る、各種パーティション形式に対する各アーキテクチャの対応状況等を纏めてみたいと思います。以下「アクセス」は当該ボリュームへのアクセス、「起動」は当該ボリュームからの起動の可否を各々表します。

IntelベースMacintosh(Mac OS X)

PowerPCベースMacintosh(Mac OS X)

PC/AT互換機(Windows etc...)

パーティション形式の適用は後の変更作業が概して容易とはいえないだけに、レガシなアーキテクチャとの互換性面が完全とはいえないGUIDパーティションテーブルの導入は、自らの環境や今後の利用用途等を熟慮しつつ、慎重に判断するべきかと思われます。しかしながら、IntelベースMacintoshへの移行が完了し、レガシな環境を必要としないMac OS Xユーザ等においては、同パーティションテーブルの導入を控える理由は考えづらいでしょう。現状では、Mac OS XにおけるGUIDパーティションテーブルに関する各種インターフェイスには幾つかの改善の余地が感じられるものの、数多の選択肢を有するUSB接続HDDへのMac OS Xのインストールを可能とする等、最新アーキテクチャが齎す様々なメリットには数多くの魅力が秘められているのではないかと思われます。個人的な見解ではありますが、移行のタイミングを逃さないためにも積極的な導入の検討を心掛ける事が肝要かと考える次第です。


●本文訳注

(注1)BIOS

「Basic Input/Output System」の略称。コンピュータに接続された各種デバイス等を制御するためのファームウェアの一つで、コンピュータの電源投入直後に実行され、ハードウェアと低レベルでの入出力を行うためのプログラム群。マザーボード上等に装着されたフラッシュメモリ等の不揮発性半導体メモリに記録する事により、アップデート等の更新作業を可能としている。

(注2)EFI

「Extensible Firmware Interface」の略称。柔軟な拡張性等を特徴としているファームウェアのインターフェイス仕様で、IntelよりBIOSの代替として提唱されている。Itaniumシリーズ等ではファームウェアレベルでの簡易的なコマンドインタプリタの制御や、FTPによるファイル取得まで実装されており、主としてIntel Architecture 64プラットフォームにて採用され、対応する64bit OSもEFIの利用を前提として設計されるケースが多い。各種Macintoshハードウェアは、Intelプロセッサへの移行に伴い「Open Firmware」からEFIへとファームウェアを変遷させた。


御意見、御感想はこちらまで
Topページへ


Created Date: 06/12/20
Modified Date: