意外と便利な Hyper-V の Virtual Floppy Disk

星の数ほど VM を造り続けてきた Hyper-V の猛者たちも、意外と使ったことのない機能。それが Virtual Floppy Disk (vfd) ではありますまいか。かくいう私も、フロッピーディスクなどというレガシーメディアを VM で使うことなど絶無、、、いや、Windows Server 2003 の VM でASR (Automated System Recovery) の検証したときぐらいかな。あ、あと、実は、SCVMM がテンプレート内の VM に応答ファイル(unattend.xml) を食わせるときにひっそり使っているのですが、いずれにせよ、まぁ目立たない機能です。

が、実はこの VFD には便利な性質があります。こいつは Hyper-V の仮想マシンにおいて

スナップショットの影響を受けない、唯一の書込可能ストレージ

なのですよ。

たとえばこんな状況を考えてみてください。

  1. 私(や、あなた)は仮想マシンの展開を自動化する仕組みを検証しています。
  2. sysprep 済みイメージから起動した後、 oobeSystem フェーズで実行される SetupComplete.cmd をいろいろいじっています。
  3. sysprep 直前の状態でスナップショット取得!
  4. sysprep /generalize /oobe /reboot して展開の検証!
  5. SetupComlete.cmd が実行されたけど、どうも結果が思わしくないので、このスクリプトをがりがりと修正。

さて、もう一度 sysprep 試そうか、と「3」で取得したスナップショットに戻ったら、残念。せっかく直した SetupComplete.cmd も元に戻ってしまいました。VMware の VM だとスナップショットの影響を受けない独立型の VMDK を作れますが、 Hyper-V には今のところそういうのがありません。

スナップショットで過去に戻る前に、失われては困るファイルはネットワーク越しに別のマシンに逃がしたりすればよいのですが、外界に繋ぎたくない VM ってのもありますよね。。。

そこで VFD ですよ!

Hyper-V マネージャーから「新規」→「フロッピー ディスク」をクリック。

image

 

ファイル名を指定して、VFD 作成。

image

 

仮想マシンに装着!

image

これで OK!

ゲスト OS 側で A: にアクセスすると、こんな風に聞かれますので。

image

 

ま、普通にフォーマットしてください。なんか懐かしいですね。

image

1457664 バイト! 懐かしいですね。 (私は 1250304 バイトのほうが懐かしいですが)

image

あとはこの A: ドライブに、unattend.xml でも setupcomplete.cmd でも、好きなものを保存しましょう。スナップショットで過去に戻っても、A:ドライブは最新のままです。

お試しあれ。

__END__