情報技術の四方山話

AI、IoT、ヤマハルータ、VPN、無線LAN、Linux、クラウド、仮想サーバと情報セキュリティのよもやま話

MBRからGPTへの移行(1):大容量SSD/HDDでは何故MBRを捨てGPTで初期化するのか

2014-05-27 20:12:03 | Linux
匠技術研究所
MBRからGPTへの移行(1):大容量SSD/HDDでは何故MBRを捨てGPTで初期化するのか


こんにちは。匠技術研究所の谷山 亮治です。
今回から、Linuxのハードディスクや、SSD、それにUSBメモリーや、各種SDカード等を追加する手順をまとめます。初回では「何故MBRを捨てGPTで初期化するのか」を紹介します。

HDDの仲間にはSSD、USBメモリー、SDHC等様々なメモリーデバイスがあります。以下の記述では代表して「HDD」という言葉で説明します。

まず「MBR」や「GPT」とは何でしょうか?
これらはHDDの先頭に納められている「パーテーション・テーブル」を格納している場所の呼び名です。その場所の「形=フォーマット」は何種類もありますが、業界標準として、PCで使う「MBR」(DOS方式)と、Intelが定めMac OS Xで採用となり新しい業界標準として広まりつつある「GPT」が代表的です。MBRやGPTには、OSを起動するためのプログラムの位置や、ディスクがどのように分割されているかが記録されており、ここが壊れたら、一般的にはディスクにアクセスできなくなります。

「MBR = Master Boot Record」はまさに歴史的なフォーマットです。今のように一つのディスクが1T,2Tの容量になるとは、遙か未来のことと想像していた時代に考案されました。ところが、今や3T,4Tの時代です。MBRのフォーマットでは2T以上のディスクの位置の数字が大きすぎて、その数字を保存することができません。これでは困るのでGPTが登場しました。

「GPT = GUID Partition Table」では過去との互換性のためにMBRフォーマットの情報も保ちつつ遙かに大きな容量に対応できる、新たなフォーマットです。ディスクの安全性を高めるために、ディスクの変化によりGPTの内容が壊れていないことを確認するCRCチェックコードも持ちます。さらに、ディスクの先頭に加え、一番後ろの二カ所に記録されます。もしどちらかが壊れても、どちらかは読むことができるという案配です。

近年GPTを使うことができる基本ソフトが普及しています。ただ、各OS毎に対応状況が異なります。特に困るのは、フォーマット済みのディスクを異なる基本ソフトで使う時です。異なる基本ソフトではMBRおよびGPTの内容の解釈が異なり、そのままでは初期化すらできないこともあります。このような場合はMBRとGPTそのものを初期化し直すことになります。

GPTはある容量を超えたから使うのではなく、これからは小さな容量のディスクでも使った方が良いフォーマットです。しかしながらGPTを解釈できない機器、例えばデジカメなどもあることに注意が必要です。すなわち、MBRとGPT両方を使うことができる基本ソフトが一般化します。

私のLinux環境ではMBR対応は当然ながら、追加パッケージを導入することでGPTでディスクを初期化できるようになりました。

■Linuxでよく見かけるfdiskのGPT検出
LinuxではつながっているHDDの状況を確認するためにfdiskを使ってきた。以下の例では、fdiskコマンドはGPTを解釈できないため、GPTのディスクを検出した旨の"WARNIG"を表示している。

/dev/sdaはMBR。/dev/sdbはGPT。/dev/sdbはUSB接続の外付けHDDでGPTで初期化している。

taniyama@cinammon ~ $ sudo fdisk -l
[sudo] password for taniyama:

Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002d385

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 225183743 112590848 83 Linux
/dev/sda2 225185790 250068991 12441601 5 Extended
/dev/sda5 225185792 250068991 12441600 82 Linux swap / Solaris

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb1 1 1953525167 976762583+ ee GPT
taniyama@cinammon ~ $

■Linuxでgdisk -l
fdiskではGPTを作ることができないので、gdiskをインストールして/dev/sdbをGPTで初期化した。
gdiskはGPTを操作するコマンドの一つ。
gdisk -l デバイス名
で各ディスクのパーティション情報を表示した。/dev/sdaはMBR。/dev/sdbはGPT。

taniyama@cinammon ~ $ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
***************************************************************

Disk /dev/sda: 250069680 sectors, 119.2 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 6DBDC779-B197-43A7-B3C5-8F4D62EC9920
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2048-sector boundaries
Total free space is 4717 sectors (2.3 MiB)

Number Start (sector) End (sector) Size Code Name
1 2048 225183743 107.4 GiB 8300 Linux filesystem
5 225185792 250068991 11.9 GiB 8200 Linux swap

taniyama@cinammon ~ $ sudo gdisk -l /dev/sdb
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 044C1492-0729-43D7-9E0E-04BD47CAD3FD
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 3437 sectors (1.7 MiB)

Number Start (sector) End (sector) Size Code Name
1 2048 1953523711 931.5 GiB 8300 primary
taniyama@cinammon ~ $


続く。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 5月25日(日)のつぶやき | トップ | 5月27日(火)のつぶやき »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Linux」カテゴリの最新記事