memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

VirtualBoxで稼働中のWin7のイメージをUSBメモリ上で動かそうとして失敗した件 → いや、結局成功した件

※以下、一旦、書いたのですが、その夜にある記事を見つけて再度検証したら成功しました。再度検証したところは、下記の「追記」以降に記載しています。長くなりますが。。。ご興味のある方はお付き合いください。

長いタイトルですが、失敗談です。

対処方法をご存知でしたらお教えくださいませ。。。

動機はタイトルの通りで、MBASSD残量が少なくなり高速なUSBメモリを入手したのでそこにディスクイメージを移して使えないだろうか。。。と考えたことが始まりでした。

VirtualBoxUSBメモリ起動する情報はいくつかありました。わかりやすいのが以下と思います。

www.sysprobs.com

何も考えずに仮想マシンを作成するとvmdkはローカルSSDに作られますが、(ここの仕組みを理解していないのですが...)ディスクイメージをUSBメモリに設定することができるようです。以下の***は各自の環境にあわせる必要があります。

以下、手順を書きますね。オリジナルは上記の記事です。ちなみにVirtualBoxは5.0.10です。

まず、USBメモリーをDisk Utilityでフォーマットします(ブート可能でフォーマットは入れるOSに合わせて)

そして、 Disk Utility(Finderじゃないですよ)でUSBメモリーをumount(Ejectマークを押す)します。

そして、以下のコマンドをターミナルにいれます。

sudo VBoxManage internalcommands createrawvmdk -filename /Users/***/myusbdrive.vmdk -rawdisk /dev/disk***

このままでは仮想マシンからアクセス不可なので、以下のコマンドでvmdkファイルとデバイスのモードを変更します。

sudo chmod 777 /Users/***/myusbdrive.vmdk
sudo chmod 777 /dev/disk***

これで準備環境です。

あとはVirtualBoxを起動して、仮想マシン(既存でも新規でも)のストレージにハードディスクを追加します(上記で作成したvmdkファイルを指定すれば OK)。ちなみに、ここで上記のchmodがうまく実行できていないなどの場合には追加したハードディスクが赤表示されます。これでは仮想マシンから使えませんので使えるまで試行錯誤してみてください。。。(いろいろなケースがあると思いますので)

ちなみに、なかなか発見しにくい事例として、仮想マシンにハードディスクを追加して、その後、USBメモリを取り外したあと仮想マシンを起動しようとしてエラーが表示されるなどすると、どういうわけか仮想マシンからハードディスクを取り外してもvm.boxのファイルには情報が残ってしまうことがありました。ファイルの権限も問題ないしUSBメモリーもumountしているのに赤表示が青に変わらないときは、この過去に追加したハードディスク情報をエディタで削除してからVirtualBoxを再起動してやる必要があるようです。。。何を言っているかよくわからないと思いますが、一応、発見しましたので記録しておきます。

さて。

とりあえずmyusbdrive.vmdkというvmdkファイルができてVirtualBoxで認識されるようになったあとで、仮想マシンのDVDドライブにOSイメージファイルを追加して起動すればインストールができるはずです。

しかし、僕はこれまで使っていたMac上で稼働しているWin7仮想マシンUSBメモリ上で使いたかったので。。。考えました。

ちょっとこれだけ読んでもよくわからないかもしれませんが、自分の作業メモとして書かせてください。それと、もし同じことをトライした人がいればわかると思いますので。

既存のWin7仮想マシンに、myusbdrive.vmdkを追加しました。Win7ではEドライブとして認識されましたので、以下のドライブコピーツールでCドライブの内容をEドライブにクローンしてみました。

jp.easeus.com

無償版のためかクローン完了まで5時間以上かかったと思います。クローンが完了したのちに、Win7仮想マシンからハードディスクを取り外して、新規に仮想マシンを作成して先ほど内容をクローンしたmyusbdrive.vmdkを追加して起動したのですが。。。ダメ。

f:id:ke_takahashi:20151126145722p:plain

ハードディスクをフォーマットしなかったのがまずかったのかと思い、 Win7でEドライブをNTFSでフォーマットしてからやってみたもののダメ。

さらに、開発会社は同じですが、Cドライブを停止した状態でクローンする以下のツールでやってみても状況は変わりませんでした。

jp.easeus.com

しかたがない。。。Win7を新規にインストールするしかないですなぁ。。。と諦めたのが今朝のことです。何がダメなのかなぁ。。。

■2015/11/27追記

上記の件について、ブログに失敗談を書いたあと、何とかできないかと探りました。そこで、以下の知恵袋的な記事を見つけました。

apple.stackexchange.com

  • VirtualBoxを起動して、仮想マシンを新規作成、Windows10選択(別に何でもよいはず)。続いてハードドライブを追加しないでを選択して、USBメモリをPCに刺して作成ボタンを押す。
  • ターミナルを起動して以下を入力する
  • diskutil list(ディスク番号を知る/dev/disk#s#)
  • sudo chown $USER /dev/disk3s1
  • sudo chown $USER /dev/disk3s1(この上のs1がs2やs3などs1じゃない場合ににこれを実行する)
  • sudo chown $USER /dev/disk3
  • diskutil unmount /dev/disk#s#
  • VBoxManage internalcommands createrawvmdk -filename ~/RawWinDisk.vmdk -rawdisk /dev/disk# -partitions 1,#
  • diskutil unmount /dev/disk3s1
  • VirtualBoxに戻って、上記で作成してvmdkファイルを追加する
  • ここの追加の仕方が違った。。。SATAではなくIDEコントローラを追加してそこにvmdkを追加します。以下のような感じです。

f:id:ke_takahashi:20151127084216p:plain

これでコピー元と同じく起動できました。たぶん、使えるでしょう。。。めでたしめでたし。


■2015/1128追記

とりあえずコピーしたvmdkで起動できたものの。。。ものーーーーずごく遅くて起動できませんでした。待てども待てどもログインまでたどり着かない。何度か再試行してみたのですが状況変わらず。

しかたがないのでコピーは諦めて、クリーンな状態からvmdk(ハードディスクの実体はUSBメモリーにある状態)Windows7をインストールしてみました。これも遅い。。。がんばって半日くらい待ってみましたが結局最後まで行き着かず。というか、これではインストールが完了しても使い物になるとは思えず。

調べてみると(3年前の情報ですが)Windowsをインストールすると遅いという反応がありました。

virtualbox.org • View topic - USB 3 Hard Drive Very Slow

また、VirtualBox5.0ではUSB3.0をサポートして転送速度が向上した。。。とも書かれているのですが。

www.techrepublic.com

がんばりましたが。。。ここまで時間を使ってしまうとはおもわず。。。ちょっとこのへんで一旦蓋を閉めたいと思います。

あ、あと。確かにUSB3.0USBメモリが早くなったとはいえSSDほど速いわけは確かになく。ベンチマークソフトで両者を計測しましたので、それも掲載しておきます。参考まで。

書き込みは遅いけど読み込みはいいところいっているように見えると思います。ただ、このソフトは繰り返し測定するのですが、 SSDは毎回同じような結果になるのですがUSBメモリーは極端に結果に変化がありました。仕組みの違いなのか?そういう性質の製品なのかわかりませんが。。。

内蔵SSDAPPLE SSD SM0256F)
f:id:ke_takahashi:20151128002708p:plain

USBメモリー(PicoDrive DX3 128GB)
f:id:ke_takahashi:20151128002823p:plain