2015年9月9日水曜日

Windows10でもやっぱり増殖する回復パーティション

サーバが死んで絶望の淵に立たされている間に、Windows10へのアップグレードは一応完了したみたいでした。ライセンスさえ取れればいいので、ライセンスが取れていることを確認した後は特に動作確認もしませんでした。

しかし、とても期待していることがあるので、ライセンスが取れているかどうかはそっちのけでまず確認したのが以下の画像です。

ご覧ください、この実にばかばかしいスバラシイ有様を。


回復パーティションが豪華三本立てですよ奥様!!!

300MBの回復パーティション: Windows8のクリーンインストール時に作成されます。
450MBの回復パーティション: Windows8.1からのアップグレード時に作成されます。
363MBの回復パーティション: Windows8からのアップグレード時に作成されます。

Windows8から素直にアップグレードを重ねると、今なら回復パーティションが、もれなくなんと3つもついてきてお得です!!!

・・・もう、あまりにあほらしくて何と言っていいのかわかりません。
今なら、というより、必ず、なんですけどね。回復パーティションが3つできちゃうのって。
(Windows8をインストールする段階からでかい容量を回復パーティションに割り当てている人にはこのような現象は起きないでしょうが、Windows8をクリーンインストールするなど最低限の回復パーティション容量でインストールした人は、こうなります。)

もう馬鹿馬鹿しいし、一度ライセンスされたらインストール時にあの長ったらしいライセンスキーを入れずに済むという話を検証したかったので、ライセンスが取れていることを確認した後、即、クリーンインストールを開始しました。

なお、同一の物理ディスクにCドライブとDドライブがあっても、
  • Windows8で作成された回復パーティション
  • EFI用パーティション
  • MSR(マイクロソフト予約)用パーティション(GUIではなぜか表示されませんが実際には存在します)
  • Cドライブに指定していたパーティション(ここにWindows10が入っています)
  • Windows10で作成された回復パーティション
  • Windows8.1で作成された回復パーティション
を削除して、手動でパーティションを切ればDドライブは無事なままWindows10をクリーンインストールできましたので安心してください。

言うまでもありませんが、クリーンインストールを前提としておりますので、Windows10が入っているCドライブを削除しますとアップグレードした結果はすべて失われます
失って困るデータやアプリがある場合には作業の前にバックアップを取るなどの準備が必要となりますし、後戻りはできませんので十分にご留意ください

それではパーティション整理の手順を書きます。

手順の前提として、UEFI経由でブートするシステムで、Windows10をインストールする予定のドライブがDISK0、GPT形式であると仮定します。
MBRな方はちょっとばかり手順が変わりますが、現在でも由緒正しいMBRからブートされているほどの気合が入った方にはこのような説明など不要でしょうから割愛します。

さて、まず、Dドライブの前に配置されているパーティションを全部削除します。
ツールは何でもいいのですが、この際は事前に焼いておいたWindows10のDVDなりなんなりで起動し、コマンドプロンプトを立ち上げ、diskpart.exeを起動します。
コマンドプロンプトを起動する手順はインストールメディアからコンピューターを起動して、「コンピューターの修復」を選択し、「トラブルシューティング」を選択することで可能です。

diskpart.exeが起動したら、select disk 0 と入力してDISK0を選択し、list partitionと入力すると、次のようになっているはずです。
DISKPART> select disk 0
ディスク 0 が選択されました。
DISKPART> list partition
Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    回復                 300 MB  1024 KB
  Partition 2    システム             100 MB   301 MB
  Partition 3    予約                 128 MB   401 MB
  Partition 4    プライマリ           230 GB   529 MB
  Partition 5    回復                 450 MB   231 GB
  Partition 6    回復                 363 MB   232 GB
  Partition 7    プライマリ           699 GB   232 GB

上記の例だと、 Partition 7がDドライブに相当します(ディスクアドミニストレータでは見えなかったMSRも、ここではPartition3として正しく表示されています)。
従って、Partition 1から6を削除します。なお、パーティション番号だけは他と違って1から開始されます。MS-DOSから連綿と続く、極めて長い伝統の名残がここにも残っていますねぇ。

削除の手順はパーティションを選択後、削除、を6回繰り返します。
なお、パーティション4はCドライブですが、特にシステムに保護されていないのでdelete partition時にoverrideは不要です。それ以外の1,2,3,5,6番目のパーティションはoverrideが必要です。
DISKPART> select partition 1
パーティション 1 が選択されました。
DISKPART> delete partition override
DiskPart は選択されたパーティションを正常に削除しました。
DISKPART> select partition 2
パーティション 2 が選択されました。
DISKPART> delete partition override
DiskPart は選択されたパーティションを正常に削除しました。
DISKPART> select partition 3
パーティション 3 が選択されました。
DISKPART> delete partition override
DiskPart は選択されたパーティションを正常に削除しました。
DISKPART> select partition 4
パーティション 4 が選択されました。
DISKPART> delete partition
DiskPart は選択されたパーティションを正常に削除しました。
DISKPART> select partition 5
パーティション 5 が選択されました。
DISKPART> delete partition override
DiskPart は選択されたパーティションを正常に削除しました。
DISKPART> select partition 6
パーティション 6 が選択されました。
DISKPART> delete partition override
DiskPart は選択されたパーティションを正常に削除しました。
先頭から削除しても再起動しない限りパーティション番号は変わりません。
繰り返しになりますが、パーティションの4はCドライブで保護されていないのでdelete partition時にoverrideは不要です。それ以外の1,2,3,5,6番目のパーティションはoverrideが必要です。

さて、余計なものどもを成敗しましたので、今度はパーティションを再分割してあげます。
必要なパーティションは、

  1. 回復パーティション
  2. EFI用パーティション
  3. MSR用パーティション
  4. Cドライブ用パーティション
の計4パーティションとなります。

以後は煩瑣になるといけませんから、diskpart.exe上で入力するコマンドだけを記述します。
インデントされている行がコマンドを表し、1行で1コマンドです。

まず先頭に回復パーティションを作成します。Windows10の場合、容量は450MB必要です。但し、この例では今後のこともあり、嫌な予感がするので50MBおまけしてsize=500としました。4コマンド(4行)あります。
create partition primary size=500
format quick fs=ntfs label="Recovery"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
なお、以後作成するパーティションに共通しますが、formatコマンドにおけるlabel=は特に必要がありません。打鍵が面倒なら省いても構いません。また、HDDのチェックも同時に行いたいならquickを省いてください。

MBR形式の人はidが27なので楽ですが、今回の例ではGPTっていうくらいですからGUID形式でidを指定するため強烈に長いですが、この値がPARTITION_MSFT_RECOVERY_GUIDを示し、とても重要なので気を付けて入力して下さい。
また、属性値もやたらとゼロが続きますが、GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER(0x8000 0000 0000 0000)と
GPT_ATTRIBUTE_PLATFORM_REQUIRED(1)のOR(論理和)値を表していて、これも重要なので気を付けて入力してください。4桁の数値が連続して4つあることを考慮に入れて入力すれば、単純にゼロの個数をカウントするよりもミスも少なくなるでしょう。

次はEFIパーティションを作成します。容量は100MB必要です。
create partition efi size=100
format quick fs=fat32 label="ESP"

これだけでいいです。
次はマイクロソフト予約パーティション(MSR)を作成します。容量は128MB必要です。
create partition msr size=128

さらに行数が減って1行だけです。
最後に、Windows10をインストールするためのCドライブとなるべきパーティションを作成します。
create partition primary
format quick fs=ntfs label="cdrv"
サイズを指定していないので、Dドライブまでに空いている残り容量のすべて(Dドライブがなければハードディスクの残り容量全て)がこのパーティションへ割り当てられます

この段階でlist partitionを行うと次のようになっています。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    回復                 500 MB  1024 KB
  Partition 2    システム               100 MB   501 MB
  Partition 3    予約                 128 MB   601 MB
  Partition 4    プライマリ              230 GB   729 MB
  Partition 7    プライマリ              699 GB   231 GB

パーティション番号の5,6が抜けていますが、気にすることはありません(Partition7は繰り返しになりますが温存しておいたDドライブです)。
なぜなら、この番号は現在起動中のシステムが認識した番号だからで、再起動してしまえば番号が振りなおされます。
つまり、この作業中に再起動してしまったらパーティション番号が変わるということです。ご留意ください。

こののちは、diskpartを終了しシステムを一度終了させ、再度Windows10のインストールメディアから起動して先ほど作成したCドライブの予定地を指定してインストールするだけです。

お疲れさまでした。

2 件のコメント:

  1. もう頭痛い。WIndowsを作ってる連中はバカですね。

    返信削除
  2. 回復パーティションの増殖、面白く拝見しました。同区画は、ビットロッカー機能未利用、市販のバックアップ/リストアツールを利用すると、GPT環境でも不要となると思考&試行中です。そもそもHDD障害時は同じHDD内に回復機能があっても利用できません。MSも考えるならそこまで考えてほしいです。

    返信削除