Microsoft純正ディスクイメージ変換ツール「Disk2vhd」のv2.02がv2.01よりも“ダウングレードしている”疑惑その知識、ホントに正しい? Windowsにまつわる都市伝説(237)

Disk2vhd(Disk to VHD converter)は、MicrosoftがWebサイトおよびMicrosoft Storeで無料ダウンロード提供しているWindows Sysinternalsツールの一つです。2022年6月現在の最新バージョン2.02に、少しおかしなところがあることに気が付きました。

» 2023年06月28日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

Windows Sysinternalsのほとんどのツールは32bit版が“二刀流”

 「Windows Sysinternals」の各ツールは、もともと32bit(x86)版の実行可能ファイル(ツール名.exe)のみ提供されていました。しかし、OSの64bit化(x64、amd64)、64bit OSで32bitアプリケーションの実行をサポートするWOW64(Windows 32-bit On Windows 64-bit)が利用できない環境の登場(「Windows Server 2008 R2」以降のServer CoreからはWOW64サポートの削除が可能、Nano ServerはWOW64非搭載)、「Windows on Arm」の登場などもあって、現在は64bit版(x64版ツール名64.exe、Arm 64版ツール名64a.exe)も用意されています(画面1)。

画面1 画面1 現在のDisk2vhd(v2.02〜)のダウンロードファイル「Disk2vhd.zip」には、32bit(x86)、64bit(x64)、Arm(arm64)版の実行可能ファイルが含まれる

 各ツールの32bit(x86)版の中には32bit/64bitの両方に対応し、64bit OS上で実行すると、自身で64bitネイティブバイナリの実行可能ファイル(.exe)を一時的に作成して、64bit版を起動するようになっているものもあります。例えば、「Process Explorer」(Procexp.exe)や「Process Monitor」(Procmon.exe)がそうです(画面2)。

画面2 画面2 32bit版Process Explorer(Procexp.exe)を64bit OS上で実行すると、64bit版の「procexp64.exe」を自ら生成し、その64bit版を開始する

 このようなツールは、32bit版は64bit OS上でランチャーとして機能するわけです。32bit/64bit環境のみを対象とする場合は、32bit版のツールだけを持ち歩けば用が足りるということになります(strings.exeやsigcheck.exeなど、32bit版コマンドラインツールの多くは64bit OSのWOW64上で32bitアプリケーションとして動作します)。

「Disk2vhd.exe」を64bit OSで実行するとエラー発生

 「Disk2vhd」(Disk to VHD converter)は、稼働中のWindows OSのローカルディスクイメージをキャプチャーし、Hyper-V互換のVHDファイルまたはVHDXファイルに変換するツールです。物理マシンをHyper-V仮想マシンやAzure仮想マシンにP2V(Physical to Virtual)移行する際の簡易的なツールとして利用できます。

 このツールも32bit/64bitの両対応だと思っていたのですが、先日、久しぶりに「Windows 11」上で最新バージョンの「Disk2vhd v2.02」(2021年10月リリース)のDisk2vhd.exeを実行してみたところ、「Error launching 64-bit version:指定されたファイルが見つかりません」のようなエラーが表示されて起動できませんでした(画面3)。

画面3 画面3 Windows 11(つまり64bit OS)上でDisk2vhd.exeを実行するとエラーになる

 Microsoftのフォーラム(Microsoft Q&A)を検索してみると、同様の現象が幾つか見つかりました(うち1つは筆者による質問)。現状の回避策は、64bit版であるdisk2vhd64.exeを明示的に指定して実行する以外になさそうです(画面4)。

画面4 画面4 64bit OSでDisk2vhd(v2.02)を使用する場合は、Disk2vhd64.exeを明示的に指定する必要がある

Disk2vhd.exe(v2.02)は32bitのみに対応らしい(?)

 筆者はWindows Sysinternalsの書籍を翻訳したことがある関係で、10年以上前からWindows Sysinternalsの各バージョンのダウンロードファイルをアーカイブし続けています。1つ前のDisk2vhd v2.01はどうだったのか確認しました。

 当時は、v2.01のダウンロードファイルにはDisk2vhd.exeのみが含まれており、Disk2vhd64.exeは提供されていませんでした。つまり、v2.01のDisk2vhd.exeは32bit/64bit両対応のはずです。

 v2.01のDisk2vhd.exeを32bit OSと64bit OSでそれぞれ実行してみると、どちらも同じパス内にdisk2vhd-tmp.exeを生成し、それを実行するようになっています。32bit OSではdisk2vhd-tmp.exeは32bitネイティブバイナリであり、64bit OSでは64bitネイティブバイナリを生成していました(画面5)。32bit OSでは実行可能ファイルがそのまま動作するProcexp.exeやProcmon.exeとは少し異なる実装だったようです。

画面5 画面5 Disk2vhd v2.01は、Disk2vhd.exeのみの提供で、実行するとOS環境に応じて32bit版または64bitのDisk2vhd-tmp.exeを生成して実行している

 Stringsツールで実行可能ファイル内の文字列をいろいろと検索してみると、v2.01には32bit(x86)と64bit(amd64)の両方のコードが含まれているのに対し、v2.02のDisk2vhd.exeには32bitコードのみが、Disk2vhd64.exeには64bitコードのみが見つかりました(画面6)。また、Disk2vhd.exeのファイルサイズはv2.01が6.80MBなのに対して、v2.02は1.33MBと5分の1のサイズです。

画面6 画面6 Stringsツールを使用して実行可能ファイル内の文字列を検索してみると、v2.01とv2.02では明らかに違いがある

 これらのことから想像するに、v2.02のDisk2vhd.exeには64bitネイティブコードを生成する部分が抜け落ちており、にもかかわらず、以前のバージョンと同様に(生成されなかった)Disk2vhd-tmp.exeを呼び出すコードは残っているという感じです。

 64bit OSではDisk2vhd64.exeを使えばよいだけですし、めったに使うツールでもないので、なんてことはないのですが、もう1つ気になる点があります。v2.02の画面4とv2.01の画面5を見比べてみてください。バージョン以外に異なる点があることに気が付くでしょうか。

 それは「Prepare for use in Virtual PC」オプションの有無です。このオプションは、作成したVHDファイルを「Microsoft Virtual PC」(Microsoft Virtual PCや「Windows 7」のWindows Virtual PCも既に終了した製品です)で動くように、「boot.ini」を書き換えてHAL(Hardware Abstraction Layer)をVirtual PC互換のものに強制的に入れ替えるためのものです。

 本来、このオプションは、「Windows XP」や「Windows Server 2003」上でこのツールを実行した場合にのみ表示されるものした。「Windows Vista」および「Windows Server 2008」以降はOSが起動時にHALの違いに柔軟に対応できるようになったため、このオプションは不要です。

 Disk2vhd v2.02のリリースをアナウンスする以下のブログ記事では、新バージョンは更新されたWindowsライブラリに基づいてビルドし直されただけで(この影響で多くのツールがWindows XPやWindows Server 2003で動作しなくなりました)、新機能は追加されていないようです。

 Disk2vhd.exeはこのとき初めて64bit対応Disk2vhd64.exeが提供されることになったのですが、その過程で意図しないバグが入り込んでしまったのでしょうか。Disk2vhd.exeが32bit/64bit両対応でなくなった、もはや全く無用になってしまった「Prepare for use in Virtual PC」が誤って表示されるようになったのが意図した仕様変更だとすると、前バージョンよりもダウングレードしているような気がしてなりません。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2008 to 2023(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。