ソフトウェアエンジニア現役続行

雑多なことを綴ります

vmware playerで既存のパーティションを起動する

昨日のエントリでWindowsとLinuxデュアルブート(マルチブート)の状態になっています。/dev/sda1にWindows、/dev/sda2にLinuxがインストールされています。/dev/sdaにgrubが入っています。

この状態でLinuxを起動して、ホストOSがLinuxの状態で仮想マシンでWindowsを動かしたいなと思いました。評判の良いkvmにしたかったのですが、CPUがpentium4だからなのか、カーネルモジュールkvm-intelがインストールできませんでした。

そこでvmware-player3を使うことにしました。現在の最新の3.0.1を使いました。これもかなり動作が軽くて良かったです。

参考URL

http://club.h14m.org/kenji/hiki/?%28Linux%29VMware_Player_RawDisk
vmware raw disk」や「vmware raw partition」などで検索するとたくさんサイトが出てきますが、これが一番分かりやすかったです。ほぼこのまま使えます。

Windows.vmdk の作成

fdisk で HDD の情報を表示します。heads, sectors/track, cylinders, total sectorsをメモっておきます↓


[root@svr1 ~]# fdisk -ul /dev/sda

Disk /dev/sda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 63 29302559 14651248+ 7 HPFS/NTFS
/dev/sda2 29302560 114109694 42403567+ 83 Linux
/dev/sda3 114109695 117210239 1550272+ 5 Extended
/dev/sda5 114109758 117210239 1550241 82 Linux swap / Solaris


Windows.vmdk を作成します↓

# Disk DescriptorFile
version=1
CID=e696330c
parentCID=ffffffff
createType="fullDevice"

# Extent description
RW 117210240 FLAT "/dev/sda" 0 ← 「total sectors」

# The Disk Data Base
#DDB

ddb.toolsVersion = "0"
ddb.virtualHWVersion = "3"
ddb.geometry.cylinders = "7296" ← 「cylinders」
ddb.geometry.heads = "255" ← 「heads」
ddb.geometry.sectors = "63" ← 「sectors/track」
ddb.geometry.biosCylinders = "7296" ← 「cylinders」
ddb.geometry.biosHeads = "255" ← 「heads」
ddb.geometry.biosSectors = "63" ← 「sectors/track」
ddb.adapterType = "ide"

Windows.vmx の作成


#!/usr/bin/vmware
config.version = "8"
virtualHW.version = "3"
memsize = "512" ← 割り当てたいメモリ容量
ide0:0.present = TRUE
ide0:0.fileName = "Windows.vmdk"

ide1:0.present = TRUE
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
floppy0.fileName = "/dev/fd0"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
usb.present = "TRUE"
sound.present = "TRUE"
sound.virtualDev = "es1371"
displayName = "Windows XP Professional"
guestOS = "winxppro"
nvram = "Windows.nvram"
scsi0:0.redo = ""
ethernet0.addressType = "generated"
uuid.location = "56 4d 19 c7 08 51 54 e9-f1 e9 45 dd 7f 68 cd 5e"
uuid.bios = "56 4d 19 c7 08 51 54 e9-f1 e9 45 dd 7f 68 cd 5e"
ide1:0.autodetect = "TRUE"
ethernet0.generatedAddress = "00:0c:29:68:cd:5e"
ethernet0.generatedAddressOffset = "0"
checkpoint.vmState = "Windows.vmss"
tools.remindInstall = "TRUE"
ide0:0.redo = ""

ide0:0.deviceType = "rawDisk"

vmware player の起動


[root@svr1 ~]# vmplayer Windows.vmx &

/dev/sdaにインストールされたgrubが起動するので、起動パーティションとしてWindowsを選択します。ここで間違って、いま起動しているLinuxを選択してしまうと、パーティションが破壊されてしまうので、注意してください。ゲストOSとしてホストOSを起動してしまうことになります。