無印WindowsXPの稼働中PCを仮想PCに移す(2) BSODからの復活

Acronis TrueImageとVirtualPC2007とVMWare Converterを駆使して、WindowsXPの物理マシンからVMWareで稼働可能なファイルが作成できました。

 

さて、どうなるかな?

 

仮想マシンで動かしてみます。

 

おぉ、動いている!!

 

と思った次の瞬間、Blue Screenが…..おい。

 

STOP:0x0000007Bのエラーが表示されています。

Blue Screen of  Death(BSOD)って奴ですな。

 

調べてみたら、マイクロソフトのサポートに事例がありました。

「Windows XP のシステム ディスクを他のコンピューターに移動した後に STOP 0x0000007B エラーが表示される」

 

さて、これに書いてあるとおりに移行前のPCで設定をして、バックアップを取るとことができない状況なので、このBSODから復活させる方法を考えました。

 

すでに開発環境で使っている仮想PCのWindowsXPがあります。

これに、今回作った仮想ディスクをマウントさせて、レジストリ操作とファイルのコピーをしたらどうか。

 

まず、すでに手元にある仮想PCの設定で「追加」で今回移行した仮想ディスクを追加します。

 

そして、仮想PCを起動します。

 

追加したディスクが新しいドライブ(例えばE:とかF:とか)で見れるようになります。

なってなかったら、再起動してみください。

 

では、レジストリの設定をしましょう。

regedit でレジストリエディタを起動します。

HKEY_LOCAL_MACHINEをマウスで選択して、メニューのファイルから「ハイブの読み込み」を選択します。

ここでファイルを選択するのですが、追加した仮想ディスクのドライブにあるWindows\system32\configにあるsystemというファイルを選択します。

キー名を聞いてきますので、ここは適当に入力しますが日本語は止めておきましょう。

今回は、MOVEとしておきました

これで、仮想化したPCのレジストリがいじれます。

 

次に、先ほどのマイクロソフトサポートのページに書いてあるように、********** ここからコピーします。**********の部分を切り出して保存したMergeide.regを適用するのですが、このファイルを一部変更する必要があります。

キーが

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

になっていますが、今回ハイブの読み込みで取り込んだ先に反映させたいので、

HKEY_LOCAL_MACHINE\MOVE\ControlSet001

に変更します。

SYSTEMのままだと、今稼働している仮想PCに適用されてしまうので、先ほど名前を付けたMOVEに変えます。

CurrentControlSetは、あればそのままでも良いのですが、たぶん無いと思います。(一度も起動してないのでCurrentはないですから)

その場合、ControlSet001とControlSet002があるはずなので、ControlSet001に追加されるよう変更します。

 

これを一括置換したMergeide.reg右クリックして表示されるメニューの「結合」をします。

 

結合したら、メニューから「ハイブのアンロード」をしてレジストリ作業は終了です。

 

次はファイルの準備です。

追加したディスクのWindows\system32\Driversに以下の4ファイルがあるか確認します。

Atapi.sys

Intelide.sys

Pciide.sys

Pciidex.sys

なければ、WINDOWS\Driver Cache\i386にあるDriver.cab からファイルを抽出します。

コマンドで expand driver.cab -F:ファイル名 出力先 で抽出できます。

 

ここまで作業を終えたら、仮想PCはシャットダウンします。

 

そして、移行した仮想PCの電源をON!!

さて…今度はエラー無しで起動してきました。

PCが変わったので、ライセンス認証を要求されます。

ライセンス認証して起動してきました。

 

Windowsが稼働している実機同士の移行の場合は、ディスクを取り出してUSBで接続して同じように対応できるはずです。

まぁ、そうそう無いことだとは思いますが、もし遭遇したら解決の足しになるかと思います。

 

 



無印WindowsXPの稼働中PCを仮想PCに移す(1)

とある事情があり、無印WindowsXPの実機を仮想PCに移す作業を行いました。

 

このWindowsXPはネットに繋がっていません。

アンチウイルスソフトは遙か昔に期限切れ。

当然WindowsUpdateなど、これっぽっちも当たっていないという凄いマシンです。

 

VMwareの仮想PCを作成するため、VMWare Converterを使って作業をしようとしたのですが、うまいこと行きません。

VMware Converter 5.0、4.3、4.0.1、4.0.0 全てインストールでエラーが発生してしまいます。

 

これは諦めて、別の手段を使いました。

 

結論から先に言ってしまうと

1. Acronis TrueImageでバックアップする

2. Acronis TrueImageのツールでバックアップファイルをWindowsバックアップファイルに変換する

3. VirtualPC2007で新しい仮想マシンを作り、仮想ディスクに2. で作成されたファイルを指定する

4. VirtualPC2007で作成された拡張性vmcのファイルをVMWareConverterでVMWareのファイルに変換する

という手順でVMWareで使える形式のファイルができあがりました。

 

簡単に書きましたが、実際には試行錯誤で作業を進めた為、結構な時間が掛かりました。

 

まず、VMWare ConverterはAcronis TrueImageのバックアップイメージをVMWareのイメージに変換できたはず。

 

というわけでTrueImageでバックアップを取りました。

次に、仮想PCを動かすPCにVMWare Converter5.0.1をインストール。

インストールしたConverterを起動して「マシンの変換」ボタンを押し、ソースタイプを「バックアップイメージまたはサードパーティ仮想マシン」を選び、「仮想マシンファイル」にTureImageでバックアップしたファイルを指定しました。

 

よし、こいつでようやく変換できるぞ!!!

と思って、次へボタンを押したら「ソースパラメータは無効です。」と表示されます。

 

どうやら、TrueImage 9か10までしか対応していないようです。

今は Acronis TrueImage 2012か2013しか手に入りません…ダメジャン orz

 

しかし、まだ諦めない。

 

Acronis True Image 2012には 「バックアップの変換」ができるツールが付いています。

これで、一旦Windowsバックアップのファイルに変換します。

すると、拡張子がvhdのファイルができあがります。

このとき、vhdのファイルが複数できることがあるようで、今回の作業は2つできました。

 

このvhdでVirtualPC2007の新規仮想PCを作成します。

まず、MicrosoftからVirtualPC2007をダウンロードしてきてインストール。

VirtualPC 2007を起動し、「新規」ボタンを押すと「新しいバーチャルマシンウィザード」が表示されます。

このオプションで「既定の設定を使用してバーチャルマシンを作成する」を選びます。

次に「名前と場所」を適当に入力。

「次へ」ボタンを押して、次の画面で「完了」します。

 

そうすると、バーチャルマシンの設定画面が表示されるので、ここでハードディスク1、2、3に先ほどのvhdのファイルバーチャルハードディスクファイルに指定していきます。

これで、「名前と場所」で指定した名前 + vmcという拡張子のファイルができあがりました。

 

あとは、VMWareConverterで「マシンの変換」ボタンを押し、ソースタイプを「バックアップイメージまたはサードパーティ仮想マシン」を選び、「仮想マシンファイル」にこのvmcファイルを選びます。

「次へ」ボタンを押して、「ソースファイル情報を取得しています。」と少しの間表示されて、次の画面が出たら変換先の仮想マシンの名前と場所を指定して「次へ」ボタンを押していくとVMWareで動く仮想ファイルができあがります。

 

ようやくVMWareで動かせる…と思ったら、ここから更にBSODで悩まされることになりました。

この解決方法は次へ続きます。

 



Nexus7の32GBが発売されて、 Nexus10は11/13発売だって

Google Playを見てみたら、Nexus7の32GBが売ってる。

24,800円か~~~。

まぁ価格としては妥当な線ですね。

写真を入れると、意外と容量を食います。

私は、子どもの写真を入れたら7GBも使ってしまいました。

 

Nexus10は11/13から発売になっています。

16GBが36,800円です。

価格としては微妙。

32GBだとiPadの16GBとほぼ一緒だから、Nexus10買うならiPadの方が良いかなという感じがします。

 



ついにkindleがキターー!!と思ったら、発売日は11月と12月か

Amazonのトップページに、Kindle発売のお知らせが来ました。

 

昨日、iPadとiPad miniの発表がありましたけど、高いよ…と思っていたら、このタイミング。

 

しかし、Kindle Paperwhiteは11/19、Kindle Fireは12/19発売なのね。

まだちょっと先になるわけですけど、iPad mini より断然安い

Kindle Paperwhite 3Gは3G回線無料なのかぁ。

 

さて、これからどうするか考えなければ。

 

 



DealExtremeで買物したブツが届いた

10月始めにDealExtremeで注文した商品がようやく先週末に届きました。

 

注文してから到着まで16日。

 

予想よりは早く着きました。

同じ日に注文した米アマゾンからは、まだ商品が届かない。

 

なんだかなぁ。

米Amazonはちょっと期待ハズレです。

 

先週B&Hで注文した商品は、ようやくステータスがIn stockになったので在庫が入った模様。

こいつは今週中に届くはず。

 

B&Hはカメラ関係で使っている人がそれなりにいるので、情報があって安心です。

In stockならこっちの方が良かったわ、とちょっと後悔。

 

 



Windows Server 2008R2 でNIC1枚にIPアドレスを追加するとプライマリアドレスが一番小さいアドレスになる

Windows Server 2008R2にNICが1枚あって、これにIPアドレスを固定で設定していました。

 

ここにIPアドレスを追加したところ、プライマリIPアドレスが追加したアドレスになってしまうという現象に気づきました。

 

例えば、固定IPアドレスを 172.16.1.50 に設定したとします。

これに「詳細設定」で172.16.1.40のアドレスを追加します。

 

そうすると、NICのプライマリIPアドレスは172.16.1.40になってしまうんですよ。

追加したアドレスが172.16.1.51なら、プライマリIPアドレスは172.16.1.50のままです。

 

つまり追加したIPアドレスがプライマリになるわけではなく、小さい方がプライマリIPアドレスになるという事のようです。

「仕様です」と言われたら、それまでなんですけど…何だよそれ。

 

Windows Server 2003まではそんな現象はなかったのですが、どうもWindows Server 2008からの挙動のようです。

 

海外のサイトで調べたら、解決方法が見つかりました。

skipassource」フラグを使えばいい。

 

KB2386184というHotFixを見つけたのですが、更新されるファイルが2009年ということは、たぶんSPが当たってない状態だと思われます。

SP1が当たっていれば、このHotFixはいらない…はず、たぶん。

 

と思って、HotFixを適用せずにこのコマンドを実行。

 

netsh int ipv4 add address <接続名> <追加するIPアドレス> <追加するIPアドレスサブネットマスク> skipassource=true

 

このコマンドを打ち込む前に、追加するIPアドレスは削除しておきます。

接続名は "ローカル エリア接続""ローカル エリア接続2" になっている場合が多いと思います。

追加するIPアドレスとサブネットマスクは、上の例だと 172.16.1.40 255.255.255.0です。

で、このコマンドを打ち込みます。

 

netsh int ipv4 add address "ローカル エリア接続" 172.16.1.40 255.255.255.0 skipassource=true

 

結果は

netsh int ipv4 show ipaddresses level=verbose

 

で確認できます。

追加したIPアドレスの”ソースとしてスキップ”がtrueになっているはずです。

 

netstat でも確認してみて下さい。

 

このコマンドで設定されたIPアドレスを”編集”画面で開いて保存すると、元に戻ってしまいます

これも KB2554859 でHotFixが出ていました。

 

サブネットマスクを指定せずに実行すると、255.255.0.0 になってしまうので注意して下さい。(最初やってしまって、焦りました。)

 

この情報、日本語で検索しても”これ”っていう結果がでてきませんでした。

英語で検索すると結果が結構な数でてくるので、やっぱり困っている人はそれなりにいるようです。

 

という話を妻にしたら、「へ~~~ 英語読めるんだ~~ スゴイネ~~~~」とコメントされました。

いや、読めるだろ普通。

 

 



iphone5のテザリングを使ってみました

週末にちょっと出掛けたので、iphone5のテザリングを使ってみました。

 

設定で”インターネット共有”をオンにするとテザリングが使えます。

使ってみて分かった事。

 

SSIDにiphoneの名前が表示されます…おぉ、ヤバイ。

 

変な名前を付けてたら、恥ずかしいわけね。

 

iphoneのインターネット共有画面にパスワードが表示されるので、それを入力すれば接続は簡単にできます。

ネットを使う分には不満もなし。

バッテリーの消費量はちょっと多いみたいですが、イーモバイルのスマホでテザリングしたときより電池は保つかな。

 

接続が簡単なので、ipad miniが出たら2台持ちもイイかもね、と思いました。

 

 



SQLServerのログが巨大になってた

SQLServer2005が動いているサーバーで、なぜかディスクの空き容量が少ないなぁと気づきました。

 

そんなに大きなサイズのファイルはないはずなんだが…と調べていたら、あるDBのログが巨大になっている事が分かりました。

100GBを超えています。

 

おいおい。

 

別のDBからファイルをコピーしているだけで、テーブルは1つしかない。

単純にコピーしているだけなんですけど….

 

ログのバックアップをすれば切捨てられるという事なのですが、定時にコピーしているだけなのでハッキリ言ってログいらない。

なので、以下のSQLでログを切捨てしました。

 

DUMP TRANSACTION DB名 WITH NO_LOG

 

この後、圧縮したらログが1GBになりました。

 

”ちゃんと監視しておけよ”と言われれば、全くその通りです。

私が作ったDBじゃなかったので、正直ノーマークでした。

 

 



Nexus7の充電がSANYOのエネループモバイルブースターでできない

Nexus7を出掛けに持っている際、手持ちのエネループ モバイルブースター KBC-L54Dで充電できるか試してみました。

 

なんと!! 充電できない。

 

はい?

 

なぜに充電できないのかは分かりませんが、電源を見ても”放電中”となっています。

 

DC5V 1.5Aなので、スペックとしては問題無いはず。

USBケーブルはバッテリー附属の物を使っていますが、まさか充電専用ではないんだろうか?

 

Nexus7の電源を落として充電を始めると、ちゃんと電できることを発見。

でも何だかなぁ。

 

ケーブルが原因のような気がするので、USBケーブルを充電専用のものに変えて試してみようと思います。

 



Nexus7 にAndroid 4.1.2のアップデートがきた

朝起きて、Nexus7の画面を見たら 4.1.2のアップデートのお知らせが来ていました。

 

ふーん…

 

と思ったんですが、何度も”アップデートしますか”と聞かれるのでアップデートしてみました。

 

ISW11Mは初期ロムでないとSIMを変えてゴニョゴニョができないという事があってちょっと躊躇しましたが、こいつはrootとって何かやろうという気は全然ないので、アップデートっと。

 

すぐにアップデートは終わり、普通に使えています。

何が変わったのか、全然分かりません。

画面には何も違いがない。

 

が、ホーム画面が横になる!!

 

それだけ。

ぱっと見で分かる違いはそれだけでした。