Windows 7インストール済環境を後からVHD Bootに切り替えてみる。(中編)

 前回に続いて作業ステップですよ。

 ◆Step:1

 まず、今使っている端末からHDDを取り外し、新しいHDDを接続する。
 今まで使っていたHDDは取り外して、取り敢えず置いておきましょ。

 ◆Step:2

 このHDDに対してHyper-V Server 2008 R2、Windows Server 2008 R2、Windows 7のどれかをインストールする。但しこの時、HDDは80GB程度を残して領域を確保し、残った「最後尾の領域」にこのOSをインストールする。

 ポイントは「わざと前を空けておく」ということ。
 一般にHDDは「前の方」がアクセスが高速なので、「普段使うVHD化されたWindows7」をその「前の方」に置くために空けておくんですな。

 一方、この時インストールされたOSは、VHDのメンテナンスが必要な時や、VHDが逝ってしまった時に使用するもの。
 なので、個人的にはHyper-V Serverの導入がお薦め。Windows 7が真っ当に動く環境ならほぼ確実にHyper-Vも真っ当に使えるので仮想環境でも遊べるし、おまけにタダ。
 Hyper-V Server 2008 R2ならば、一度設定を済ませてしまった後には他のWindows 7なPCからほぼGUIで管理出来るしね。

 #仕事等で2008 R2に触れる環境なら、ソレが一番便利だけど。
  これだけのために個人で買うには高過ぎるよ、Server OSは。

 まあ、緊急時にもWindows 7のGUIが使いたいというならば、ここにWindows 7を入れるというのもアリかね。

 ◆Step:3

 ここでHDDを再度古いモノに付け替える。
 そして、先ほどOSをインストールした新しいHDDも何らかの手法で接続する。

 一番簡単なのは端末内部にある増設用のコネクタを使って新旧2台接続状態にすることなのだが、最近の小型端末ではHDDの内部増設用コネクタが無いものもある。
 この場合、そこら辺に転がっているUSB変換アダプタを使って接続するのがオーソドックス。コネクタとケーブルがあればeSATAも便利。

 #アダプタが転がっていない人は買ってくるか、知人のツテで借りてくるか。
  新品でも¥3千とかそんな値段で買える程度のものだが、最近はこういうアクセサリも中古で出回っているようで、中古品があれば更にお手軽価格。

 ◆Step:4

 普段使っていたWindows 7を起動する。
 起動後、新しいHDDも認識されて、大きな空きドライブが見えていることをエクスプローラから確認、と。

 #「ドライブ~フォーマットしますか?」とか訊かれたら「はい」でフォーマットする。

 ついでに、これからVHD化する領域の全体容量を確認しましょ。
 通常はC:の、全容量。空き領域でも使用領域でもなく、全容量ね。これをメモっておくこと。

 ここで、Windows標準の「バックアップと復元」を起動する。
 「システムイメージの作成」を起動して「バックアップの保存先」に、先程の空きドライブを指定して、バックアップ開始。

 ◆Step:5

 暫く待っていれば、普段使いWindows 7のVHDが新しいHDDの上に作成される。

 #具体的には¥WindowsImageBackup¥マシン名¥バックアップを取った日付とシリアル番号¥管理ID.vhd。

 但し、目的にVHDの他にもイロイロと作成されるので、余計なモノは削除する。
 この作業中「このフォルダーにアクセスする許可が~アクセスを取得します」とか訊かれたら「はい」で続ける。

 そして余計なモノを削除していくと.VHDが2つ残るが、容量が小さい方は今回は必要無いので削除。

 #この小さいのはHDD先頭の100MB分のイメージ。
  ちなみに複数のドライブのバックアップを一気に取るとドライブの数だけVHDが増えまっせ。

 こうして最後に1つ残ったのが、普段使い環境がそのままイメージに変換されたVHDですよ。
 標準でついている名前はややこしいので、簡単な名前に変更して分かり易いフォルダに移動しておきましょ。

 #ルート直下とか。

 ◆Step:6

 再度古いHDDを取り外し、新しいHDDを本体内部に接続、端末起動。
 無事起動したら、VHDの入っているドライブをエクスプローラで開いて。

 VHDファイル本体サイズ+空き領域>Step:4でメモった容量

 であることを確認。
 もしこの法則が成り立っていない場合、このVHDから起動は出来ないので、諦めてもっと大容量のHDDを用意して作業を最初からやり直すこと。

 #何故かというと、このVHDは圧縮されているため。
  実際に起動してみると分かるが、起動中はこのVHDの圧縮は解除されて、VHD化する前と同じだけの容量を占有する(正確には「しているように見える」)。
  このため、圧縮解除出来るだけの空き領域が必要なんですな。

 ◆Step:7

 さて、ここからはコマンドラインでの操作。
 Windows 7ではAdministrator特権でコマンドプロンプトを開いてね、と。

 まずはこのコマンドを打って下準備。

 takeown /F (VHDファイル名)

 VHDファイル名、はドライブレターを含めたフルパスで。
 例えば E:¥Windows7.vhd が対象のVHDならば、こういうこと。

 takeown /F E:¥Windows7.vhd

 #この下準備、正確には「アクセス権を確保する」という作業を忘れるととっても悲惨なことになるので注意。具体的には、Step:1から全部の作業をやり直すハメになる。

 ◆Step:8

 準備が終わったら、いよいよbcdeditで起動パーティションに設定を突っ込みますよ。
 先程開いたコマンドプロンプトで引き続きコマンドを打ち込みます。

 ◇コマンドその1

 bcdedit /copy {current} /d “VHD Windows 7”

 ””の中はお好みに応じて変更可能。但し英語以外は使わない方が無難ではある。
 そしてコマンドラインの画面に注目。

 >エントリは{うだうだうだ}に正しくコピーされました。

 この中で{}で囲まれた部分が今回使うID。この後使う時は、マウスで範囲選択してコピペが一番簡単。

 ◇コマンドその2・その3

 コマンドを打つ前に、VHDが置いてある場所を確認。
 ここではE:¥Windows7.vhdということにするが、これは勿論環境次第なので、読み替えること。

 確認が出来たら、コマンドを打ちますよ。

 bcdedit /set {さっきのうだうだうだ} device vhd=[E:]¥Windows7.vhd
 bcdedit /set {さっきのうだうだうだ} osdevice vhd=[E:]¥Windows7.vhd

 2つのコマンドで途中の2文字以外違わないので、下のコマンドは上のコマンドの履歴を呼び出して修正して再度打てば簡単。

 ポイントはドライブレターを[](「角括弧、とか言うらしい」)で囲う必要があること。何でこんな仕様にしたんだろね、下逸クン。

 #言い忘れていたが、ここまでの記述は表記上¥が全て全角になっているのでコピペ注意。ホントは半角ね、当然。

 ◆Step:9

 コマンドを全部打ち終えたらここで 再起動。
 すると今まで出たことのない起動選択画面が表示されますよ。

 ここで画面上から「VHD Windows 7」(若しくは先程変更した文字列)を選択して、Enter。
 するとVHDからWindows 7を起動開始。
 ここですんなり起動出来れば、これでおしまい。

 ・・・が、イロイロやってみたが、大抵、一発目の起動はコケるのがお約束の模様。
 コケたら自動的に修復画面が表示されるので、この表示画面に従って再構成を行う。
 ハードウェアが違うとこう簡単ではないようだが、同一ハードウェア上でのVHDへの移行なら、ほぼこれで問題ない模様。
 自動的に再起動がかかりますよ。

 ◆Step:10

 そして再び、起動選択画面が表示・・・されるのだが、何故か画面が英語に。
 ・・・何でやねん。

 まあこれは後で直すので、取り敢えず再度「VHD Windows 7」を選択して起動してみる。大抵はまあここで起動する筈。

 #これで起動出来ない場合、あちこち手を入れれば起動出来る可能性はあるものの、正直簡単ではないので「環境そのままVHDに移行」は諦めた方が。
  多分新しくVHDを作ってインストールし直した方がラクでしょう。

 無事起動しても、初回の起動完了はやったら遅いのが普通のようなので、暫く待ってあげること。
 次からは通常の早さで起動するので気にする必要無し。

 ◆Step:11

 起動が終わったら、取り敢えず起動選択画面を日本語に戻しましょ。
 再び管理者権限でコマンドプロンプトを起動し、以下のコマンドを叩き込む。

 bcdedit /deletevalue {bootmgr} path

 #上は何故か追加されてしまう不要なパラメータを削除するコマンド。
  今のところKB等MSの情報には出ていない模様だが、世間では一般的。

 ここで再起動してみると、起動画面が日本語に戻っている筈。

 #極希にコレでは直らないこともあるらしい。
  その場合は、もう一回管理者権限でコマンドプロンプトを開いて、以下のコマンドを打ってみれば、確実に直る筈。・・・つか、これでダメなら起動エリアが壊れてしまっている可能性が高いので、作業は最初(Step:1)からやり直し。

  bcdedit /set {bootmgr} locale ja-JP

 ◆Step:12

 再度「VHD Windows 7」を選択して起動。

 この後、システムが無事に動いていることを確認出来たら、最後の作業。
 またまた管理者権限でコマンドラインを起動し、以下のコマンドを実行。

 bcdedit /default {current}

 これでおしまい。

 ◆

 以上。
 だ~いぶ長くなってしまったが、今のところコレが一番手間の少ない方法、だと思われる。

 この後の回で、ちょっと気づいたことなんかをまとめて、この続きモノも終了にしましょ。

Share

Windows 7インストール済環境を後からVHD Bootに切り替えてみる。(前編)

 さて、ここからは先日のHDDネタにも実は繋がっているお話。

 タイトルにも書いたが、以下は「普通にWindows7がインストールされている」端末を「VHDブートでWindows7が起動する」端末に変更する作業のメモ。

 具体的なメリットはというと「Windows7のいろんな環境を切り替えて使えるようになる」「(Hyper-V Serverを導入すれば)Hyper-V環境として使うことも出来る」。
 まあHyper-Vをガシガシ使うのはドライバ周りのこともあって特に廉価版端末ではキビシイことも多いが、複数のWindows7環境を切り替えて使えるというのは意外とメリットが多い。

 例えば、DTM・DTVといったメディア系の作業、コアなゲームのプレイ、或いはカーネルデバッガを使うようなプログラミングを行う場合、出来るだけ最適化された環境を使った方が幸せになれることが多い。
 ところが、従来は1台の端末で「普段のもの」「最適化されたもの」といった複数の環境を用意するのはかなりハードルが高い作業で、その上環境の特殊性故に発生する制限も多かったのであり。
 それ故、最終的には「カネで解決する」という究極手段、「もう一台端末を買う」(メディア作業・ゲーマー)とか「いっそシステム全体を仮想化してしまう」(開発系)ということに辿り着くことも多い。

 一方、Windows7でVHDブートを使うと、従来では考えられない程簡単に、且つ殆ど制限らしい制限も受けずに環境を切り替えることが出来る。
 そのため、1台の端末をいろんな状況に最適化して使い回すことが可能なのですよ。
 余計なカネもかからないし、追加の設置場所も必要無いし、とってもスマート。

 とまぁ、能書きはこんなところで。

 #え、何故「今ある環境に追加でVHDブートするWindows 7をインストールする」でなく、「今ある環境をVHDに変更する」のか、って?
  いやだってさ、どうせやるならVHDのメリットを享受しましょうよ。

 ◇

 ここからは実際の作業編ですよ・・・と思ったのだが、書いたら長くなってしまったので分割。
 取り敢えず、用意するモノだけ。

 ◆Step:0

 用意するモノ:新しい大容量HDD。作業対象の端末内蔵HDDより100GB以上大きいモノ。

 とはいえ、出来るだけ容量が大きい方が便利ですよ。
 今では2TBのHDDも特価品ならば¥1万を割ることすらあるので、いっそデカいのを用意してしまいましょうよ。

 どうせイロイロ環境を切り替えて使うならば、デカい容量が無駄になることも無いので。

 以降、実作業は次回へ。

Share

超個人的2009 PCトピック。

 さて、今年最後の更新となりました。
 ということで、今年を振り返って、超個人的PC関連トピックを5つ+α挙げてみようかと。

1◆64bit OSへの乗り換え。

 今年一番のトピックはこれでしょう。
 ついにクライアントOSが64bitになって、メモリ4GBの壁を突破。久々の「余裕のあるメモリ空間」を満喫しております。

 ・・・の筈が、最近ではVMwareが何故かいつも動いているせいで、8GBが窮屈です、はい。
 4GBメモリモジュール、もう少し頑張って値段下がってくれないかな・・・。
 
2◆SeagateのダメHDD騒ぎで大迷惑。

 Win7が無ければコレが今年の断然トップ。
 いやぁエラい目に遭いましたよ、ホントに。
 あと、コレのせいで当方の管理下HDDが「原則Seagate」から「原則WD」に切り替わったということもあったりとかしました、はい。

3◆Intel帝國の侵攻。

 Core i7、X58、そして41110。
 ミッドレンジより上に製品が存在しないという、AMDのあまりの不甲斐なさのため思わず買ってしまった、10年ぶりのIntel CPUはBloomfieldでした、と。

 今となっては単発ベンチではLynnfieldの方が価格性能比は上・・・に見えるが、足回りを考えたら正直ライバルにはなり得ない、ですな。

4◆eSATAが海を越えた。

 個人購入モノのサポートで海外まで荷物を送ったのは初めてですよ。
 AsusのGlobal Supportとメールで相談したのも初めてですよ。

 まあ結果的にどう頑張っても動かないというオチがついたのは・・・ねぇ。
 ちなみにブツはIntel Orientedなユーザの手に渡っていきました、はい。

5◆はぢめてのSSD、XPモバイル。

 そして最後にはコレ。LOOX Uの衝動買いとSSD換装。
 現在も普通に使っていますし、普通にプチフリってますが、やはり「振動を気にしなくて良いモバイル」というのは「本来これが当たり前」だということをホントに思います、はい。

番外◆ツクモのすったもんだ。

 去年から引っ張られたネタだが、これはメモっておこうかと。
 何故かあまり言われていないが、ヤマダ傘下に入って仕入方法が変わった影響、販売戦略と品揃えに確実に出ていますよ。
 具体的に言うと、価格対抗戦略で値引きが増えた、エッヂな(ヘンテコな)品物が入らなくなった、メーカプロモーション陳列※が増えたということ。
 ヤマダ電機vsビックカメラvsヨドバシカメラの(一部)代理戦争が、ツクモvsソフマップvsヨドバシカメラで繰り広げられております。

 ※特定ジャンルで特定メーカの製品ばかりを圧倒的多数で陳列する手法。ヤマダの各店舗では定番な、メーカから販促費を搾り取(以下略。

 ◇

 ま、こんな感じですかね。
 それなりにイロイロとあった1年だと思います、はい。

 さて、それでは来年は・・・
 まあ、「来年の事を言うと鬼が笑う」ということで。

 それでは、よいお年を。

Share

Wow64のお約束。

 知り合いが何か悩んでいたらしいネタなので、取り敢えずメモ。

 アプリがVista以降のWindows上で動作する場合、UAC絡みもありファイルアクセスがシステム側によって強制的にリダイレクトされる状況がしばしば発生する。
 そこで気をつけないといけないのが、リダイレクト先やアクセス先が、各種条件によって複数に分かれるということ。これとか。

 ¥User¥ユーザ名¥AppData¥Local¥VirtualStore 以下
 ¥User¥ユーザ名¥AppData¥Local¥Roaming 以下

 まあ、これは32bit版でも64bit版でも共通だから良いとして。
 64bit版OS上で32bit版プログラムを動かす時は、レジストリアクセスがリダイレクトされることもお忘れなく。
 プログラム側で開く→実際のアクセス場所で、こんな風に。

 HKEY_LOCAL_MACHINE¥SOFTWARE
 →HKEY_LOCAL_MACHINE¥SOFTWARE¥WoW6432Node

 32bitモノは引っ込んでろとばかり一段下にまとめられてしまいます、えぇ。
 更に、システムフォルダについても64bit版には一部ハードリンクが存在するんですな。
 ハードリンク元 → ハードリンク先、と書くと。

 ¥Windows¥SysWOW64
 → ¥Windows¥System32

 要するに、SysWOW64内のファイルはSystem32 というPathでも見える、見えてしまうということ。

 ◇

 まぁこんなこと、かなりシステム側に近いプログラムを相手にする場面でしか役に立たない知識だし、そういう情報が必要な人なら大抵はとっくに常識だろうが。
 古いソフトでは時々あるんですよ、この辺りのリダイレクトが原因で動かないって話が。

 何しろOS側が2000~2003/XPと殆ど変わらないまま長い間続いてしまったこともあり、この辺りのリダイレクトの存在を全く考慮しないままPath等を決め打ちにしている、ソースの中で直書きしている、そんな「ダメプログラム」が未だに結構存在して、しかもあちこちで動いているようなんですよ、これが。

 折角下逸が「SDK的に正しいアクセスをしていれば自動的にリダイレクトされて、アプリ側はそのことを意識する必要もない」ように、色々と面倒な仕掛けを仕込んでいるのに、ねぇ。
 やれやれと言うか、何と言いますかね。

Share

Vista x64から続くWin7 x64のファイル共有周りのバグ。

 ネットワーク経由でファイルハンドルを短期間に大量に開け閉めしていると、いつの間にか巨大ファイルがコピー出来なくなる「ことがある」。
 具体的なエラー番号は0x800705AA。システムリソース不足ってヤツが出てエラーになります。

 これ、Vista x64の頃から言われているバグなのですが。
 無事?Windows 7 x64に引き継がれております。

 面倒なのは、この症状が一定しないんですよ。

 ・大きなファイルをいくつか扱っても症状は出にくい
 ・バックアップツール等で小さなファイルを短時間に大量に扱った後は症状が出易い
 ・共有先にローカルのファイルをコピー或いは操作されても症状は出にくい
 ・ローカルのファイルを共有先にコピーと症状が出易い
 ・再起動すれば確実に直る
 ・暫く放置するだけでも直る、但し「暫く」の時間は運任せ
 ・エラーが出た時、共有先のPCから同一ファイルを一度開くと、何故かエラーが直ることがある

 ・・・ん~。
 根本的にシステムリソースが足りないということではなく、内部のシステムリソース取得・解放のタイミングが間に合っていない、という風にしか見えませんな、この症状は。

 ちなみに他にも、IPv6スタックが暴走してブリッジアダプタが無限に増殖し、起動しなくなることがある、なんてかな~りとんでもないバグもWindows 7はVistaの頃から引き継いでいたりとか。

 まあ、所詮Vista SEですよね、というのが良く分かる話でした、はい。

Share