2016/06/05

Win10アップグレードしようとしたりMBR→GPT変換を試みてみたり

 つい先日密林でSSD(Crucial BX200 240GB)を調達し、こないだ購入したBTOデスクトップPCにWin10仕込んでデュアルブート体制でも整えようとしたのだが、まあ色々とあったわけでして。
 備忘録がてら、雑記を少々。かなり長くなってしまったので縮めてあります。それでも一向に構わんッ!!!!、って方は続きをどうぞ。



 先ず初めに行ったのは、届いたSSDを外付け用ケースに入れてシステムドライブをクローンすること。クローニングには以前利用したことがあるEaseus Todo Backupを使用。なんも認識されとらん真っ更なSSDをGPTディスクに変換して、パーティション弄って、サクッとクローン完了。
 電源落としてから複製元のシステムドライブを一旦物理的に外して、UEFIの設定変えてクローン先からいざ起動

 ……出来たら良かったんだけどねぇ……

 どうやらブートドライブとして認識されてない模様。尤も原因はすぐに思い至った。複製元と先でパーティションテーブルが違っていたのである。
 元の方はMBRなのに、先の方はGPT。GPTディスクにMBRディスクのクローンを作ろうとしたのだからトラブるのも当たり前ってもの。後々複製先をMBRディスク変換してからクローニングしたところ、フツーに何とかなった。

 ただ、MBRとGPTについて調べる中で後者にはUEFI Fastbootという機能が使えるメリットが発覚し、Win7でも薄いながら多少の効果が見られると分かってしまった。
 この時点で複製元であるWin7システムドライブのGPT化を画策。複製先のBX200を試金石とすることを前提にGPT化の手段を探ってみることに。

 んで、以下の二つの方法が見付かった。
・Win7デフォルトのシステムイメージ作成機能とcmdでのdiskpartコマンドを利用したGPT化
・フリーツールを利用することで別ドライブへのバックアップを不要としたGPT化(http://social.technet.microsoft.com/wiki/contents/articles/14286.converting-windows-bios-installation-to-uefi.aspx , 英文)

 先ずは前者だが、初っ端のシステムイメージのバックアップで躓いてしまった。先日マシンが届いた際、SSDの寿命延長の為ということでtempフォルダや個人用フォルダをHDDに移したことが原因だろうが、システムイメージの作成範囲にHDDが強制的に含まれてしまうのである。
 こういう特殊状況下でシステムドライブだけのイメージ作成などという器用な真似は純正ツールでは出来ないらしく、泣く泣く断念。

 もう一つのフリーツールを利用する方法だが、ぶっちゃけるとこっちもダメだった。BX200をMBRディスク化した後にクローニングを実行し、コレから起動出来ることを確認した上でツールを使ってみたのだが、ツール使用後にOSインストールディスクやシステム修復ディスクからcmdを開こうにもバージョンが違う云々で開けなかった。
 何故cmdが開けなくなったのかは不明。HDDにもシステムデータが含まれているせいなのだろうか…

 この時試そうと思っていたのは、
・一度BX200をGPTディスク変換した上でWin7をインストールし、Win7がインストールされているパーティションをシステムドライブのもので上書きしてしまう
・MBRディスク状態のBX200にWin7をインストールし、フリーツールによるGPT化に再挑戦する

 前者が通用する場合、そのまま逆のことをしてやれば万事解決する。これが一番楽っちゃ楽。
 フリーツールによるGPT変換手順を見るに、データが保存されているパーティションには手を加えず、あくまでも先頭とOSによる予約領域をMBRからGPT仕様に変えてるだけっぽいので、ひょっとしたら上手くいくんじゃないかなと。

 後者はフリーツールによるGPT変換の検証みたいなもん。一部システムデータを別のストレージに保存していたらダメなのかどうかを確かめたかった次第。
 もしこれでも失敗する場合原因は他にあると思われたので、そこんとこをもちっと掘り下げたかったというか。



 その後。
 色々と調べていたら、こんな情報が見付かった。

「GPTディスクにOSをインストールする場合、光学ドライブをUEFIブートさせる必要がある」

 ……cmdが開けなかった原因はそこかあああああ!
 成程、そういうことだったのね…

 だが色々と試行したり調べたりする内に段々疲れてきてしまい、
「いざとなりゃOSの再インストールも辞さない覚悟で望む他あるまい…」
 という本末転倒な思考に到達。BX200を試金石とすることを中断し、システムドライブにぶっつけ本番でフリーツールを使ってしまうことを決意。

 Win7インストールディスクを挿入した光学ドライブをUEFIブートすると、確かにcmdが起動して一安心。後はネットの情報通りにコマンドを打ち込んで無事GPT化完了

 ――すると思ったか?

 此処に来てまさかの容量不足が発覚。どうもシステムパーティション作製用に最低でも先頭から300MBくらいは空いてないとダメだったらしい。
 cmdを一旦閉じて電源を落とす傍ら、MBPでUbuntuのLiveDVDをダウンロード。開いているDVD+RWに焼いて光学ドライブへ挿入しブート後、GPartedを起動して容量を確保。ついでにパーティションアライメント(先頭からのオフセット値が2048か4096、もしくはその倍数になっているか)をチェック。……2048なので大丈夫。
 再起動してWin7インストールディスクを挿入、再度パーティション弄りを開始。ネットの記述に従ってシステムパーティションを作成していき、ブートローダーも設定(したのだが、結局エラーを吐かれて再起動後にスタートアップ修復を行う羽目になった)。

 そしてインストールディスクを抜いてからもう一度再起動。
 ……ログオン画面に到達を確認。おおおおお……(感涙



 ……というわけで、GPT化は何とか上手く行った。SSDの書き込み容量をかなり犠牲にしてしまったが、もうそこは気にしないことにする。気にしたら負けだ。
 いつぞやノートPCのHDD換装を記述して以来のやや濃い目なPCネタだが、今回も中々にスリリングな挑戦だった。まあ途中からデータドライブのHDDに目ぼしいデータを控えさせていざとなりゃ再インスコ、と割りきったのでちったあ楽になったが。

 しかし本番はこれからである。
 つーか元々の狙いはあくまでもWin10を調達したBX200に仕込んでデュアルブートすることなので、正直システムドライブのGPT化は完全にオマケというか、脱線もいいところである。

 想定されるデュアルブートまでの流れは、
・BX200にシステムドライブをクローン(GPT→GPT)
・システムドライブを外してBX200からブートし、事前に作っておいたUSBからWin10にアップグレード
・プロダクトキーを確認、控えておく
・控えたプロダクトキーを使ってWin10をクリーンインストール
・全てのシステムドライブやHDDを元に戻し、UEFIの起動オプションからOSを選択する
 こんな感じ。……まあ、GPT化で散々揉めたこと考えると、実際にはこんな上手くいくとは思い難いのだが。
 そもそもBX200にシステムドライブをどうクローンするかが悩みどころ。EaseUSやAOMEI、MiniToolといったフリーソフトはイマイチな感じがするので出来れば使いたくない。

 そこで考えたのが以下の方法。
・GPartedを使ってシステムドライブのパーティションをBX200にコピー、この際開始セクタ位置も合わせておく
・Win7のcmdからBX200のGPTシステムパーティションを上記と同じ要領で作成
・Win7が起動するかどうかを確認、大丈夫ならWin10アップグレードを進める
 システムドライブのGPT化でよく分かったが、結局OSがインストールされている(もとい、データが保存されている)パーティションそのものはMBR→GPTへのパーティションテーブル変換で何か書き込まれたり消えたりすることは(コマンドのミスさえ無ければ)皆無で、重要なのはWindows用のシステムパーティションがしっかり構築されているかどうかっぽい。
 なので、システムパーティションをきっちり作っといてやってWindowsとは関係ないLinux上でパーティションの編集やコピーをやってやればなんとかなるんじゃないかと思った次第。

 或いはいっそのこと割り切って、
・GPTディスク状態のBX200にWin7をクリーンインストールしてしまい、最低限のドライバを仕込んでからWin10にアップグレードする
 要はWin7のプロダクトキーを用いてアップグレードしたWin10のプロダクトキーが欲しいわけで、究極的にはこれさえ得られればBX200をどうしようがある意味知ったこっちゃないのである。
 ただそれにしたってHDDにシステムフォルダやファイルを保存してしまっている状態でWin10へのアップグレードを行うのは正直危険な気がしないでもない。そう考えると、GPT状態のBX200にWin7をクリーンインストールしてからアップグレードするのが一番妥当だろうか、という話。

 で、結局後者の案を採用してWin10の仕込みをやってみた。
 BX200以外のストレージを外した上でGPT状態のBX200にWin7をクリーンインストールし、マシン購入時に付属していた各種ドライバー・ユーティリティーメディアを使って最低限の環境を整え、Win10をアップグレードインストール。
 完了後、Win10のプロダクトキーをフリーソフト使って確認して、再起動してWin10インストール用USBをUEFIブート。アップグレードインストールしたWin10のパーティションを全て削除しクリーンインストールを実行。無事起動を確認。さてドライバー仕込まなあかんなあと思ってたらバックグラウンドで勝手にドライバーが入ったらしく、何時の間にか画面が綺麗になっていてびっくり。……フルオートでアプデ入るのを面倒が無いと見るべきか、それとも気味が悪いと思うべきか……
 何はともあれ、これで当初の目的も完遂。めでたしめでたし…

 ――ところがぎっちょん!!

 一応そういう症状が出ると知ってはいた「チェックディスクの頻発」が襲来。今度はそのトラブルシュートをする羽目に。
 ……三度目の正直というか、何と言うべきか……(遠目

 尤も、Win10の電源オプション内にある高速スタートアップをオフにすれば取り敢えず大丈夫ということは分かっている。早速Win10を立ち上げて高速スタートアップを解除。再起動。
 ……う〜〜〜む、チェックディスク始まろうとするね。何でだろうね?(溜息

 更に調べてみるとどうやら既にSSDやHDDにフラグが付いちゃってるみたいで、本格的に対策しようと思うとまぁたcmd呼び出したりとか面倒なことになりそうでうんざり。
 そこで、
・BX200を外してWin7システムのドライブ群だけにして、そのままフラグを消化
・Win7システムのドライブ群を全て外してBX200だけにして、同様にフラグを消化
 ということをやってみた。Win7のシステムでWin10のドライブをチェックする、或いはその逆をやることが危険なら、元々のシステムでチェックさせる分には余り問題はないはず。
 実際にやってみると、予感的中。Win7用ドライブ群とBX200をまとめて繋いでもチェックディスクが始まらなくなった。よっしゃ。



 とまあ、随分と手間食ったというか……慣れないことはやるもんじゃないと溜息な気分の一方で、でもまた一つ知識が深まったなあと嬉しさが少しあったり。
 コンピューターってのは奥が深いねえ…





 どうしても残った謎が一つ。

 BX200にWin7をクリーンインストール後、Win7システムドライブも繋いでからUbuntuで両者のシステムパーティションの開始セクタ数(オフセット値)を比較してみた。するとMSR(Windows予約領域)とEFI、Windowsデータの三つのパーティションについて二つのドライブ間で完全に開始セクタ数が一致していた。
 が、Windowsのコンピューターの管理からディスクの管理画面を出して、ディスクのプロパティを開くと、Win7システムドライブの未割当領域は1MBとなっているのに対し、BX200の未割当領域は2MBとなっていた。……どういうことだろう?

 GPartedで見た限り、Win7システムドライブとBX200のどちらも未割り当てで浮いている領域はない。加えて三つのパーティションの開始セクタ数が一致しているということは、少なくともMSRとEFIに関しては先頭からの位置と容量が完全一致していて、Windowsデータのパーティションも容量はさておき先頭からの位置は等しいわけで、パーティション間に何か微細な空き領域が生じていたり、先頭の空き具合が微妙に違うというわけではない。
 つまり、そもそも先頭からのオフセット値以外に未割当領域というものは無いはずなのだ。しかしWindowsではそれが確認されており、更に差異まであった。一体何が原因なのか?

 Win10のクリーンインストールが済んだ状態のBX200と、Win7システムドライブのプロパティをWindowsのディスク管理画面から開くと、やはり前者と後者でそれぞれ2MBと1MBの未割当領域の存在が確認出来た。しかしシステム情報から先頭パーティションのオフセット値を見ると、どちらも1048576で一致している。更に、cmdからdiskpartを呼んで各ドライブのオフセットやパーティションサイズを参照してみたが、やはりパーティション間に隙間のようなものはなかった。
 未割当領域が存在すること自体はまだいい。が、オフセット値が一致していてかつ未割り当てで浮いた領域が無いという状態にも関わらず、何故二つのドライブ間で未割当領域に差が生じたのか……?

 まーWin7もその内レジストリのクリーンアップを目的としてクリーンインストールすると思うので、そしたらまた気にしてみるかね…
 暫くはWin10を色々弄り回して楽しむとしましょう。



 蛇足。

 Win10にAOMEI Partition AssistantとAOMEI Backupperをインストールしてみたのだが、EaseUSと違って変な仕込みをしない模様で大変好感が持てた。
 Easeusは自社の新製品だか何だかの広告?のEXEを勝手にインストールして更にスタートアップ登録までやらかしてくれやがるのだが、AOMEIはどうもそういう余計なことをしないっぽい。良いねぇ〜。

0 件のコメント: