VirtualBoxのイメージの移行

これまでVirtualBoxWindows環境を構築してUbuntu上で使用していたが、Ubuntu領域のディスク容量が逼迫してきたため、Linuxから普段使用しないMacOSVirtualBoxのイメージを移行することにした。その時の手順のメモをこちらに記載する。
まずこれまでのイメージは30GBでVDI形式で使用していたのが、Windows8だとこれでは不十分なため以下コマンドで50GBまで拡大した。

user@mba13:~/VirtualBox VMs$ cd win8/
user@mba13:~/VirtualBox VMs/win8$ ls
Logs  win8.vbox  win8.vbox-prev  win8.vdi
nanzou@mba13:~/VirtualBox VMs/win8$ VBoxManage modifyhd win8.vdi --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

注意として領域のリサイズはVDI形式のイメージだけ可能で、VMDK形式はリサイズに対応していない点である。環境移行用にイメージをExportした後はVMDK形式のイメージを使用することになるので、VDI形式の今のうちにリサイズをしておく必要がある。

それからイメージファイルをUSBメモリに書き込むためにUbuntuexfat対応ツールを入れる必要がある。デフォルトではUbuntuexfatには対応しておらず、Windowsの形式はFAT32しか対応していないのだが、FAT32は最大4GBまでの大きさのファイルまでしか扱えないため、FAT32USBメモリをフォーマットすると、イメージファイルを書き込むことが出来ないのだ。
exfat対応ツールの導入方法は以下URLに記載があった。

ツールのインストール手順は以下

sudo add-apt-repository ppa:relan/exfat
sudo apt-get update
sudo apt-get install exfat-utils fuse-exfat

それからfdisk。Type=0x7に設定するとExFATになる

バイス ブート      始点        終点     ブロック   Id  システム
/dev/sdc1            2048   122126335    61062144    7  HPFS/NTFS/exFAT

ファイルシステムの作成は以下で出来る

sudo mkfs.exfat /dev/sd1

上記でUSBメモリExFATでフォーマットされる。この後は4GB以上のファイルの読み書きが可能となる。
続いてVirtualBoxのイメージファイルをUSBメモリ(/media/C8B1-110C)にExport。(30分以上掛かった…。)

user@mba13:/media/C8B1-110C$ VBoxManage export win8 -o win8.ovf
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully exported 1 machine(s).

その後MacOSを起動し、USBメモリ(/Volume/Untitled)以下にあるイメージファイルをVirtualBoxに移す。(こちらも30分以上掛かった…)

$ VBoxManage import win8.ovf
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting /Volumes/Untitled/win8.ovf...
OK.
Disks:  vmdisk1	53687091200	-1	http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized	win8-disk1.vmdk	-1	-1	
Virtual system 0:
 0: Suggested OS type: "Windows8_64"
    (change with "--vsys 0 --ostype "; use "list ostypes" to list all possible values)
 1: Suggested VM name "win8"
    (change with "--vsys 0 --vmname ")
 2: Number of CPUs: 4
    (change with "--vsys 0 --cpus ")
 3: Guest memory: 1920 MB
    (change with "--vsys 0 --memory ")
 4: Sound card (appliance expects "", can change on import)
    (disable with "--vsys 0 --unit 4 --ignore")
 5: USB controller
    (disable with "--vsys 0 --unit 5 --ignore")
 6: Network adapter: orig Bridged, config 3, extra slot=0;type=Bridged
 7: CD-ROM
    (disable with "--vsys 0 --unit 7 --ignore")
 8: IDE controller, type PIIX4
    (disable with "--vsys 0 --unit 8 --ignore")
 9: IDE controller, type PIIX4
    (disable with "--vsys 0 --unit 9 --ignore")
10: SATA controller, type AHCI
    (disable with "--vsys 0 --unit 10 --ignore")
11: Hard disk image: source image=win8-disk1.vmdk, target path=/Users/user/VirtualBox VMs/win8/win8-disk1.vmdk, controller=10;channel=0
    (change target path with "--vsys 0 --unit 11 --disk path";
    disable with "--vsys 0 --unit 11 --ignore")
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully imported the appliance.

上記コマンドの後、MacOS用のVirtualBoxを起動するとWindowsが立ち上がる。
(別方法としてVDIファイルをコピーして動かないかを試してみたが、Windows8の起動途中で真っ黒になり起動しなかったため、諦めた。もしかして3Dアクセラレーション周りの設定が不適切だったのが原因だったかも…)
これでディスク容量に心配せず使える環境が出来たことになるが、適用プログラムを長年当てていなかったため、適用プログラムが100個以上出てきてシャットダウンがされない…。気長に待とう。

This is memo about migrating VirtualBox image from ubuntu to MacOS.