09 February 2014

Windows XPサポート期間終了前に仮想マシン化

Windows XPのサポート期限がまもなく終了する。Microsoftのホームページによれば

重要: Windows XP のサポートと更新プログラムの提供は 2014 年 4 月 8 日で終了します。

20140209-ms-winxp.jpg

となっており、自動更新でのセキュリティパッチもこの時点で終了するのだろう。ということで、セキュリティパッチの公開停止前に、Windows XPの仮想マシンイメージを作成しておいた。

VMWareの設定ファイル

VMWare Player バージョン 5 で作成した設定ファイルは次のようなものだ。(分かりやすいようにコメントを入れ、行を並べ変えている)

windows_xp.vmx
#!/usr/bin/vmplayer
.encoding = "UTF-8"
 
config.version = "8"
virtualHW.version = "9"
 
displayName = "Windows XP Compact"
guestOS = "winxppro"
nvram = "Windows-XP-Compact.nvram"
extendedConfigFile = "Windows-XP-Compact.vmxf"
virtualHW.productCompatibility = "hosted"
uuid.location = "56 4d ff 9e 13 c5 8b 1e-2b 4d aa 51 68 7c a0 f8"
uuid.bios = "56 4d 85 ed d7 7e c4 e1-3d a1 ca f8 21 e7 07 c4"
gui.exitOnCLIHLT = "FALSE"
cleanShutdown = "FALSE"
 
replay.supported = "FALSE"
replay.filename = ""
 
vmotion.checkpointFBSize = "33554432"
vmci0.present = "TRUE"
vmci0.id = "568788932"
vmci0.pciSlotNumber = "36"
 
softPowerOff = "FALSE"
powerType.powerOff = "hard"
powerType.powerOn = "hard"
powerType.suspend = "hard"
powerType.reset = "hard"
 
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
 
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
 
# VMWare tools
tools.syncTime = "TRUE"
tools.remindInstall = "FALSE"
isolation.tools.hgfs.disable = "FALSE"
unity.wasCapable = "TRUE"
 
# Logging
logging = "FALSE"
#log.fileName = "WindowsXP.log"
#log.append = "FALSE"
#log.keepOld = "3"
 
# Memory
memsize = "1024"
#mainMem.useNamedFile="FALSE"
#mainMem.backing = "swap"
 
# Network
ethernet0.present = "TRUE"
ethernet0.connectionType = "hostonly"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0C:29:E7:07:C4"
ethernet0.pciSlotNumber = "33"
ethernet0.generatedAddressOffset = "0"
 
# USB
ehci.present = "TRUE"
ehci.pciSlotNumber = "35"
usb.present = "TRUE"
usb.pciSlotNumber = "32"
usb.vbluetooth.startConnected = "FALSE"
usb:0.present = "TRUE"
usb:0.deviceType = "hid"
usb:0.port = "0"
usb:0.parent = "-1"
usb:1.present = "TRUE"
usb:1.speed = "2"
usb:1.deviceType = "hub"
usb:1.port = "1"
usb:1.parent = "-1"
 
# FD/Printer
serial0.present = "FALSE"
floppy0.present = "FALSE"
  
# SCSI
scsi0.pciSlotNumber = "16"
scsi0.present = "TRUE"
scsi0:0.present = "FALSE"
buslogic.noDriver = "FALSE"
 
# HDD
ide0:0.present = "TRUE"
ide0:0.fileName = "Windows-XP-Compact-IDE.vmdk"
ide0:0.redo = ""
 
# CDROM
ide1:0.present = "TRUE"
ide1:0.fileName = "/mnt/temp/temp/WinXP-MUI-install.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.autodetect = "TRUE"
ide1:0.startConnected = "FALSE"
 
# VMWare Shared Folders
sharedFolder0.present = "TRUE"
sharedFolder0.enabled = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.hostPath = "/mnt/temp/temp/_share"
sharedFolder0.guestName = "vmware-share"
sharedFolder0.expiration = "never"
sharedFolder.maxNum = "1"
 
# Video
mks.enable3d = "FALSE"
 
# Sound
sound.present = "TRUE"
sound.pciSlotNumber = "34"
sound.startConnected = "TRUE"
sound.fileName = "-1"
sound.autodetect = "TRUE"
 
# Timer Device Sync (HPET)
hpet0.present = "TRUE"
 
#####

懐かしのインストール画面

20140209-winxpsetup01.jpg

20140209-winxpsetup02.jpg

20140209-winxpsetup03.jpg

WindowsXPが発売された頃は、『自作パソコン』というのが存在して、自分でセットアップすることもあった。今では、メーカー製のパソコンを買うのが一般的なので、セットアップ画面を見ることも殆どなくなったが…

仮想マシン作成時にWindowsXPセットアップCDまたはisoファイルを指定しなかった場合、SCSIドライバを格納したフロッピーディスク autoinst.flp が作成されないので、仮想ハードディスクはIDEのみが指定可能。(SCSIは不可)

20140209-winxpsetup04.jpg

インストール結果

仮想ハードディスクの容量は、5GBytesで、XPインストール後の空き容量は927MBytes。なお、スワップ領域のファイル(c:\pagefile.sys)は1GBytesに手動設定しているので、実質的なOSの容量は3GBytesほどだ。 (全てのセキュリティパッチと、.NET Framework 1.1/2.0sp2/3.0sp2/3.5sp1 もインストール済みの状態)

なお、セキュリティパッチ類を適用していない、OSインストール直後の容量は1.3GBytes。パッチ類と.NET Frameworkが1.7GBytesも容量を食っている。

20140209-winxp-size.png

MBSA(Microsoft Baseline Security Analyzer)で、修正パッチの漏れが無いことを確認済みの状態で作成完了とした。

20140209-vm-winxp.jpg

保存しておくべきソフトウエア

利用価値の高いソフトウエアで、近い将来Windows XPを対象外とする可能性が高いものは、セットアップ用のファイルを仮想マシンのイメージと共にすべて保存しておくほうがよいと思う。

ネットワークからの切断

インターネットに直接接続しないように、VMWare仮想マシンの設定で、『Network Adapter : Host Only (Private Network shared with host)』に設定する。

仮想マシンのXPと外界を繋ぐのは、VMWareのファイル共有だけになる。インターネットに接続する作業をXPマシンでするのは非常識なので、このようにする以外に手段はないだろう。