解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

Windows を MBR・非GPT から UEFI・GPT に、データ削除なしに移行する方法

WindowsMBR から UEFI に、再インストールや復元作業なしに移行することに成功したので、メモ書きをします。 理解したうえで自己責任でやるべきなので、具体的なコマンドの詳細説明は書きません。

BitLocker を用いている場合はどうやったらいいか知りません。ブートが多段構造になっているからです。以下は、BitLocker 暗号化していないという前提です。

UEFI / GPT インストールWindowsパーティション構成

マイクロソフト予約済みパーティションって何?

BitLocker で 暗号化済のシステムをブートする際の踏み台です。暗号化されたパーティションからいきなり起動は不可能なので。 BitLocker の導入予定があるならば、置いておきましょう。

方針

  1. もしも GNU/Linux 環境がなければ、GParted Live などのライブディスクを作成します。 おそらく、SystemRescueCdClonezilla などでもかまわないでしょう。
  2. フルバックアップを行う
  3. システム修復ディスクまたはインストールメディア(書込可能DVDまたはUSBフラッシュメモリ)を作成する
  4. ディスクを GPT に変換する
  5. (無ければ)ディスク上に空き領域をつくる(既存パーティションの縮小)
  6. EFI システムパーティション(ESP)を作成する
  7. マイクロソフト予約済パーティションMicrosoft Reserved Partition ; MRP)を作成する
  8. ESP に Windowsブートローダを書き込む

上記1と2は、 WIndows 上で行います。コントロールパネルの、バックアップ(Windows7)のところでやります。

3~6は、システム修復ディスクまたはインストールメディアで起動しても可能ですが、GNU/Linux上でも可能で、その方がやりやすいと思います。なぜなら、 GUI もある&インターネット接続して調べながらでもやれるから。 GParted Live などの、パーティション編集用のディストリビューション(ライブイメージ)で起動するとよいかもしれません。

3の GPT への変換は GPT fdisk (gdisk)で行います。

4~6は、 GParted でも可能です(ただし、2は NTFS 編集用のソフトウェアも入っている必要がありますが、 GParted Live などではまずデフォルトで導入済でしょう)。

7は、システム修復ディスクまたはインストールメディアから起動してコマンドラインでやります。

フルバックアップ

フルバックアップしましょうWindows 標準の機能であります。ただし、 Windows 7 時代からの旧来の方式でやります。

同じディスクにある他のパーティションも、バックアップしておいたほうがよいです。 私は責任もちません。 GParted Live などで起動してパーティションごと他のディスクにコピーするなどしてもよいと思います。

システム修復ディスクまたはインストールメディアの作成

フルバックアップと同じところで、修復ディスクもつくれます

インストールメディアを作成する方法もあります。 その場合は、書込可能な空の DVD か、4GB以上の空の USB フラッシュメモリが要ります。 方法はマイクロソフトのウェブサイトに行ってください。

既にインストールメディアを買って持っているというならば、それを使う手もあります。

高速スタートアップを切り、完全シャットダウンする

とはいえ、「シャットダウン」でなく「再起動」なら済みますが。

あと、繰り返しますが、 BitLocker 使っていないのが前提です。

GPT への変換

GPT への変換をすると、 MBR が消えます。一旦はこのディスクからはブート不能な状態になります。 だから、バックアップしましたよね?

GParted Liveなどの GNU/Linux のライブディスクで起動します。

sudo gdisk -l で、 Windows の入っているディスクのブロックデバイス名を特定してください。たとえば /dev/sdb1 ならば、sudo gdisk /dev/sdb で入り、 w (書込むコマンドだけ)で GPT に変換されます。

空き領域をつくる

後記の、 ESP や MRP を作成するための領域が必要だからです。 容量は、 ESP が 100MB 以上、 MRP が 128MB 以上が目安ですから、その合計分を用意します。私としては、 256MB がおすすめです。

空き領域がなければ、システムパーティションを縮小するなりしてつくります。 GParted だと平易です。時間はそこそこかかります。

状況によっては Windows RE (修復作業用のパーティション)がつくられていることがありますから、不要ならば消して領域を空けるということも考えられます。 修復用ディスクなりインストールメディアなりがあれば代わりになりますので、Windows RE を削除してもどうにかなります。

EFI システムパーティションをつくる

100MB 以上の大きさパーティションをつくります。(きりがいいので、128MB がおすすめです。)

フォーマットは FAT32 です(ESP は FAT32 と決まっています)。

パーティションに適当なラベルをつけます。(Windows のデフォルトでは、 “System” のようです。)

パーティションのフラグを “esp” に設定します。

マイクロソフト予約済パーティション(MRP)をつくる

BitLocker を利用するときに使うパーティションです。BitLocker を金輪際つかわないのならば不要です。

つくるならば、128MB つくっておけば、前記 ESP と足して 256MB できりがいいです。

MRP にフォーマット形式はありません。

パーティションのフラグを “msftres” に設定します。

Windowsブートローダをインストール

システム修復ディスクまたはインストールメディアで再起動し、コマンドプロンプトに入ります。

  1. 言語、時刻、通貨、キーボード、入力方式を選択
  2. コンピューターの修復
  3. 修復したいオペレーティング システムを選択
  4. システム回復オプションを選択
  5. コマンド プロンプトを選択

以下、DOS/Windowscase insensitive なので、コマンドは大文字でも小文字でも構いません。

  1. DISKPART を実行します。
  2. LIST DISK で、該当する Windows のインストールされているディスクの番号を見つけます。
  3. SELECT DISK n で当該ディスクを選択します(例えば1番なら、SELECT DISK 1
  4. LIST PARTITIONパーティション一覧。ESP のパーティション番号と 、Windows 本体の入っているパーティション番号を把握します。
  5. SELECT PARTITION n で、ESPのパーティションを選択します(例えば0番なら SELECT PARTITION 0
  6. ASSIGN LETTER=S などとして、とりあえず空いている適当なドライブ記号を割り当てます(左記の例では S: ドライブになる)
  7. SELECT PARTITION n で、 Windows 本体のパーティションを選択します
  8. 例えば Windows のドライブが C: だったら ASSIGN LETTER=C
  9. EXIT で DISKPART を終了します、これで通常のコマンドプロンプトに戻ります。
  10. BCDBOOT で、 ESP にブートローダを書き込みます。たとえば、Windows 本体が C:\WINDOWS にあり、 ESP が S: ドライブならば、 BCDBOOT C:\WINDOWS /S S: /F UEFI で ESP に書き込みます
  11. EXIT で終了。マシンを再起動

参考