データを残したままMBRからGPTに変換する

うっかりMBRで初期化してデータを入れちゃったディスクをGPTに変換して拡張する(2015/12/14)

背景

何を入れているかは別として、大容量HDDを使う場面は結構多い。
個人にしろ中小企業にしろ、ファイルサーバにそこそこの容量のデータを持っている昨今、2TBなんて珍しいものでも何でもない。
ただ、2TBというサイズは今でこそ珍しいものでもないが一昔前は「途方もない」サイズであったことは事実。
だから旧世紀の技術者たちが2TBというサイズを超えてくることを予想して規格を決めなかったのは致し方ない。

問題は、そういう制限があることをうっかり忘れて使っている現代人である自分である。
予算の都合で先に2台の2TB HDDを購入して2TBのミラーを作成し、次の予算でディスクを追加してからRAID5に変更で4TBに容量増やせばいいやと考えているなら、あとでディスクが増やせるようにしておけよ自分、ということ。
つまり、2TBまでしか使えないMBRという旧規格でディスクをフォーマットした挙句、データを入れてしまってからあとでディスクを増やしても使えないことに気付く、という失敗をやらかした。
公式の手順では、いったんデータを退避したうえでパーティションをすべて削除し、GPTに変更してからデータを書き戻せ、ということになっている。
そんなにディスクばかり買えるか!ということで、データを温存したまま形式変換を行うこととした。

実はサーバという壁

これが個人で使用しているWindows 7や8、10ならば、実はそんなに難しい話ではない。
無料で使用でき、しかもGUIでボタンをちょいちょいと押せばあっという間に作業が完了できるツールがいくつか公開されている。

苦労しないで済むならそのほうが良いので、それで済むならそれを使えよ、ということでリンクを張っておく。
AOMEI Partition Assistant
EaseUS Partition Manager
※どちらかといえばAOMEIのほうがおすすめ。EaseUSのほうは適当にインストールするといろいろゴミを一緒に放り込んでくる。

何が難しいかというと、これらのツールはサーバーでは使えないから。
「サーバは対応してないからサーバ版使って。有料だけど。(AOMEI)」
「サーバなんで有料版のトライアルモードでインストールするね。何もできないけど。(EaseUS)」
ということで、個人には無料で配ってくれるが、サーバOSを使うような法人にはただで使わせてくれない。ま、商売だから仕方がない。

しかしディスクすらあとから追加して予算をやりくりしてるのに、ディスクと同額以上の金なんか出せるかということで、無料でやれる方法を探す。

さすが無料のLinux

Linux上には、テキストベースではあるものの、やりたいことがタダでできるツールがある。
「GPT FDISK」というコマンドである。
つまりLinuxから起動して、オフラインの状態にできればすぐにでも無料で変換できる。
LinuxにはインストールしなくてもCDで起動できるディストリビューションがいくつかあるし、それも悪くない。
が、今回やろうとしているサーバはCD/DVDドライブがないのだ。OSはUSBメモリから入れたのでなくても困らなかったから。
じゃぁUSBから起動するLinuxで~、となるとそれはさすがに面倒くさい。USB起動できるLinuxもあるんだろうけど知らないし。やれる自信はあってもやりたくないし。
出かけようと思ったら足がなかったので自転車の組み立てから始めましょう、みたいな作業やだ。

というわけでWindows上からできる方法を探す。

Windows版もありました

なんてことない。 よくみたら「GPT FDISK」にはWindows版もあるではないか。
というわけで、Windows版をダウンロードして実行してみる。
使い方としては、ダウンロードしたZIPの中身を適当なフォルダに展開し、管理者権限のコマンドプロンプトから実行する。
コマンドラインでディスクの番号を渡してやる必要がある。
この番号はWindowsの「ディスクの管理」で、操作したいディスクの番号を控えておけばOK。「ディスク3」とあれば「3」が番号。
c:\gdiskに展開して実行した感じが以下。

C:\Users\Administrator> cd \gdisk
C:\gdisk> gdisk64.exe 3:    ← 3が番号。番号の後にコロン「:」をつける。
GPT fdisk (gdisk) version 1.0.1

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
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************

************************************************************************
Most versions of Windows cannot boot from a GPT disk except on a UEFI-based
computer, and most varieties prior to Vista cannot read GPT disks. Therefore,
you should exit now unless you understand the implications of converting MBR
to GPT or creating a new GPT disk layout!
************************************************************************

Are you SURE you want to continue? (Y/N): y    ←「y」を入力。

Command (? for help):     ←これがgdiskのコマンドプロンプト

いざ変換

大変に危険な手順を書いています。心臓が弱い方とお子様にはお勧めしません。
失敗するとデータ飛びます。かならずバックアップを取ってから実施してください。(え?)

とりあえず起動できることはわかったので、変換作業をやってみようではないか。
先ほどのプロンプトからの続きから。
ちょい緊張。
Command (? for help): r    ←「r」を入力。「r」は「recovery and transformation options (experts only)」

Recovery/transformation command (? for help): f    ←「f」を入力。「f」は「load MBR and build fresh GPT from it」

Warning! This will destroy the currently defined partitions! Proceed? (Y/N): y    ←「y」を入力

Recovery/transformation command (? for help): w    ←「w」を入力。「w」は「write table to disk and exit」

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y    ←「y」を入力。これを押したらもう戻れない。

OK; writing new GUID partition table (GPT) to \\.\physicaldrive3.
Disk synchronization succeeded! The computer should now use the new
partition table.
The operation has completed successfully.

C:\gdisk>
変更できたようなので、ディスクのプロパティを見てみると。

無事パーティションスタイルが「GPT」に変換されていることが確認できる。
ボリュームを右クリックすると、2TBいっぱい使用していて選択できなかった「ボリュームの拡張」が選択できるようになっている。


結論



あとから拡張予定のRAIDボリュームは容量が2TB未満でも最初からGPTにしておくこと。
あとから「こいつぁうっかりだ」に気が付いたらGPT FDISKで何とかなる。