こんにちは、せいや(@knkSeiya)です。
僕は仕事でVagrantで作った仮想環境を使っています。
PCの容量問題や環境移動の利便性を考え、VagrantとVirtualBoxのデータ保存先はポータブルのSSDを指定しています。
普段は仮想マシン起動しっぱなし、ポータブルSSD繋ぎっぱなしなんですが、ちょっとしたミスで仮想マシン起動中にSSDが外れてしまう事態に・・・(^q^)
結論を言うと、ポータブルSSDを繋ぎ直し仮想マシンをリブートすることで無事に起動してことなきを得たのですが、ちょっとヒヤッとした体験だったので備忘録として残しておきます。
動いているVirtualBoxのHDDを引っこ抜くとどうなるのか
結論、VirturlBoxが「一時停止状態」になる。
冒頭で述べたように、僕はVagrantで仮想マシンを使っています。
Vagrantの“.vagrant.d”フォルダだったり、VirtualBoxの“VirtualBox VMs”フォルダ(仮想マシンのHDD)は、ポータブルのSSDに作っています。
普段はポータブルSSDは開発マシンに繋ぎっぱなしで、システムから取り外そうとしても仮想マシンがアクセスしてるから外せません。
しかしHDDという奴はひょんなことから外れてしまうことがあります・・・。
僕の場合は、USBハブをかませた状態でポータブルSSDを接続しており、そのUSBハブに別のHDDを繋いだときにポータブルSSDが外れてしまいました。
画面にポップアップする、
「ディスクの不正な取り出し(Finderにっこりマーク^く^)」
いや、取り出してないんだが?繋がってるんだが?(怒)
あーやっべ、と思ってすぐに開きっぱにしてた開発環境や、ログインしていたターミナル、VirtualBoxを確認しました。
当然SSDを参照していた開発環境やターミナルは閉じられました。SSD内のDBに接続してたアプリはエラー吐いて落ちたっけかな?
VirtualBoxに関しては、起動していた仮想マシンが一時停止状態になっていました。
SSDを接続し直し、Vagrantからリブート
Vagrant Fileも全てSSDの中に入れているので、ひとまずポータブルSSDを接続し直しターミナルからSSD内のVagrantファイルを叩きました。
$ vagrant halt
$ vagrant up
VirtualBoxは一時停止状態だったのでもしかしたらSuspendを復帰させるだけで良かったのかもしれませんが、なんとなく一回落とした方がいいのかなって思ってシャットダウン→起動しました。
その後は特に問題なく立ち上がってくれたので良かった良かった。
さいごに:外付けHDDの取り扱いには気をつけよう
さて、仮想マシン起動中にHDDが引っこ抜かれてヒヤリとしてしまったんですが、まぁデータも壊れずなんともなかったのは不幸中の幸い。
なんで外付けHDD(SSD)が勝手に取り外れてしまったのか、思い当たるのはポータブルHDDへの電源供給が足らなかった説。
一つのUSBハブにVM用のSSDを接続してあって、さらにポータブルのHDDをそこに繋いだときにSSDが外れてしまいました。
どちらもUSB給電で動くポータブルタイプなので、2本挿したことで電力が不安定となり外れちゃったのかなぁ〜。
なんにせよ、仕事用のディスクに何かあると面倒なことになるので今後は気をつけようと思います・・・。みんなも気を付けてな!!