USB-HDD に入ったOSを起動したい
VMWare Fusion を持ってたんですが。ライセンスどっか行った。仕方ないのでVirtualBoxで出来ないか調べてみた。
調べたらできることがわかったFusionいらんやん。
USBメモリのDeibanの起動を試す。
コマンドから、仮想マシンを作ればいける。と分かった。
まずは、ディスクの確認
殆どの場合 /dev/disk0 がCoreStorage で SSD /dev/disk1 がCoreStorage経由で見えるドライブのようですね。
なので、USBドライブを使うとdisk2からになるのでしょうか。
takuya@~$ diskutil list
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *15.4 GB disk2
1: Bios Boot Partition 1.0 MB disk2s1
2: EFI NO NAME 209.7 MB disk2s2
3: Linux Filesystem 536.9 MB disk2s3
4: Linux Swap 536.9 MB disk2s4
5: Linux Filesystem 14.1 GB disk2s5
コマンドから仮想マシンのディスクの作成。
ディスクの確認が出来たら、仮想ディスク作成
$ VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/usbdrive.vmdk -rawdisk /dev/disk2
RAW host disk access VMDK file /Users/takuya/VirtualBox VMs/usbdrive.vmdk created successfully.
コマンドがややこしいので一つ一つ見ておくことにする。
VBoxManage \
internalcommands createrawvmdk \ #新規VM作成サブコマンド
-filename ~/VirtualBox\ VMs/usbdrive.vmdk \ # 新規VMのディスク・ファイル
-rawdisk /dev/disk2 # 接続するドライブ(ディスク)
これで、UBSストレージに直結したVirtualBoxドライブが作成された。
注意点。
仮想ドライブが直結したUSBドライブを利用するユーザーが、一般ユーザーの場合に、権限エラーで堕ちるので、Permissionには注意する必要があった。
Permissionに注意する
takuya@VirtualBox VMs$ ls /dev/disk2 -l
brw-r----- 1 root operator 1, 5 2016-10-25 17:47 /dev/disk2
takuya@VirtualBox VMs$ sudo chmod 770 /dev/disk2
takuya@VirtualBox VMs$ ls /dev/disk2 -l
brwxrwx--- 1 root operator 1, 5 2016-10-25 17:47 /dev/disk2
適当な権限設計だけど権限を付けておいたら上手く行った
ここまで準備できたら、最後にこの仮想ディスクを接続した仮想マシンを作成する。
新規仮想マシンの画面で、USBドライブ接続設定したvmdk を選んで新規作成し、あとは起動
動作確認
Ubuntu LTS 16.04で正しく起動することを確認した。
個人的感想ですが、VmWare Fusionに比べてパフォーマンスはイマイチだよねVirtualbox
/dev/disk に直結するので
/dev に直結することを考えれば、なんでも起動できるんじゃないかな。
ソコから想像するにBootCampのWindowsなども起動できるんじゃないかな。
ただしBootCampのwindowsは、起動するのにEFIで起動するため、EFIパーティションも必要になるとおもう。EFIパーティションを用意したりするのは、ちょっと設定は面倒かもしれない。
LinuxのVirtualBoxでやるなら、/dev/sdX に繋げばいいか。WindowsのVirtualBoxだとどうやるんだろうか。
参考資料
http://www.sysprobs.com/mac-os-x-host-boot-virtual-machine-from-usb-in-virtualbox