それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

物理ディスクやUSBメモリをVirtualBoxの仮想マシンとして起動する

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パーティションを用意したりするのは、ちょっと設定は面倒かもしれない。

LinuxVirtualBoxでやるなら、/dev/sdX に繋げばいいか。WindowsVirtualBoxだとどうやるんだろうか。

参考資料

http://www.sysprobs.com/mac-os-x-host-boot-virtual-machine-from-usb-in-virtualbox