読者です 読者をやめる 読者になる 読者になる

ThinkpadのHDDからmSATAのSSDにクローン作製 その6

 「クローニングで発生した問題あれこれ」のその6です。ここでは、クローニングしたドライブ2台を同時接続した場合、具体的にどんなことが起こって問題が生じるのか、と言う事を示します。 

  ただし、一部推測でこうなるだろう、というのが混ざっていますし、記憶が多少あいまいな点もありますので、間違っていたら皆さん自身での検証結果の方を優先してください。コメントでご指摘などいただければ、可能な限り対応します。

 なお、以下の記述は、私の検証した結果を踏まえたものなので、HDDがSATA#0、SSDSATA#2のチャンネルにそれぞれ接続されている前提です。また、HDDはMBRディスクであるケースのみを取り扱ってます。さらに、クローン元がHDD、クローン先がSSDという状況です。

MBRディスクのWindowsブートシーケンスの推測】

  1. BIOSで最も優先されているドライブのMBRマスターブートレコード)を読み込む
  2. MBRの内容から、そのドライブのブートパーティションを特定し、そのパーティションのPBR(パーティションブートレコード)を読み込む
  3. PBRの内容から、そのパーティションのBOOTMGRを実行する
  4. BOOTMGRは、ディスク署名を元に起動するWindowsが格納されているドライブとパーティションを特定する(ここは推測です)
    (ブートドライブのシステムパーティションを必ず起動するわけではない)
  5. 特定されたパーティションWindowsが起動する

【同じ署名のHDDとSSDを接続したときに起こること】

  • BOOTMGRが、起動するためのWindowsパーティションを見失う。というか、どちらのドライブにそのパーティションがあるのかを決められなくなる
  • とは言え、そのままではどうにもならないので、何らかの基準で2つのドライブのどちらかを使用するかを決める。
    SATAドライブの場合、この基準は、BIOSのブートオーダーとは関係なく、SATAチャネルの番号が小さい方を優先して使用する(と思われる)。
    ThinkpadのHDDとSSDの場合HDDが♯0、SSDが♯2なので、どちらをブートドライブに指定しようとも、常にHDDの方が使われることになる
  • 結果として、署名が重複している場合は、ブートドライブにかかわりなく、常にHDD内のWindowsシステムパーティションが起動される
  • HDD内にWindowsシステムパーティションが無い場合、自動的にSSDWindowsシステムパーティションが使われることはなく、"inaccessible boot device"のエラーを出して起動が中止される

【HDDとSSDを同時接続し、SATA#0のHDDから起動した場合】

 この場合、見かけ上は「内蔵HDD内のMBR→PBR→BOOTMGR→Windowsパーティション」とシーケンスがつながっていくので、問題無く立ち上がったように見えるのでしょう。ただ、Windowsが起動した後、ディスク署名重複を防ぐため、SSD側がオフラインになる、ということだと思います。

 このSSDを使用するためにオンラインにすると、暗黙的にSSDのディスク署名が変更されてしまいます。そうすることで、SSDをスレーブ的に、データドライブとして使う場合は問題無く使えるようになります。ただ、実際にはそういう使い方をする人はあまりおらず、一般的にはSSD側をブートドライブに変更することになりますよね。

 ところが、この段階ではSSDのディスク署名が変更されているので、SSD内のブートパーティションに格納されているBCD情報と一致しなくなります。結果として、このSSDからブートしようとしてもブートできなくなります。しかもこれは、単独でSSDだけをつないだとしても、状況が改善しません。このため、困る人が多く発生することになります。

【HDDとSSDを同時接続し、SATA#2のSSDから起動した場合】

 

 この場合、「SSD内のMBR→PBR→BOOTMGR」までは同じSSD内で処理が進みますが、起動するWindowsパーティションは署名が重複しているため、SATAチャネル番号が低いHDDのパーティションが使われてしまいます。結果、通常考えていることとは別の現象が起こって、一見内蔵HDDからブートしたように見えてしまい、訳が分からなくなってしまいます。

 で、問題はこの後ですが、HDD内のWindowsシステムパーティションが起動しているので、HDDをオフラインにすることはできません。ただ、だからと言ってSSDがオフラインになるかどうかは、ちょっと記憶にないので分からないです。もしこの状態になってて、HDDとSSDの状況がわかる方がいたら、ぜひ教えてください。

 いずれにしても、この状態は署名が重複しているうえに、ブートドライブとWindows起動のドライブが分かれているという、非常に不安定な状態なので、何かの拍子にSSDがオフラインになったり、SSDの署名が書き換えられたりする、という状況が容易に起こると予想されます。そしてそうなった場合、急にSSDからの起動がうまくいかなくなるのではないかと考えられ、それで何が起こったかわからないという人が続出するのではないかと考えてます。

 

 以上が、クローニングした際に起こることとして私が考えている内容です。では、そういう問題が負った場合の解決策や、問題が起こらないようにする対策はどうなのか、ですが、それについてはその7で書くことにします。