以前から書き散らかしたエントリをまとめた
VirutalBox関連のエントリ
シェル(CUI)からvirtualBoxを起動する。 - ブックマクロ開発に
/etc/apt/sources.list は分割して管理できるよ! - ブックマクロ開発に
virtualBox仮想ゲストOSのポートを公開する。 - ブックマクロ開発に
ubuntu 10.04 にVirutalBoxを導入
VirtualBoxは買収&買収でややこしくなってるが,公式からDL出来るDebian系ならAPT-Lineで簡単に導入できる.標準パッケージより最新版がオススメ
sudo mkdir /etc/apt/sources.list.d sudo sh -c "echo 'deb http://download.virtualbox.org/virtualbox/debian maverick contrib non-free' \ > /etc/apt/sources.list.d/virtualBox.list " wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - #インストール sudo apt-get update sudo apt-get install dkms sudo apt-get install virtualbox-4.0
VirtualBoxの起動
リモートサーバーのVirtualBoxを起動するために,VNCクライアントや、NXを入れておくのもめんどくさい話.
VirtualBoxを起動するためにXでログインするのもめんどくさい。virtualbox をリモートで扱うには.仮想マシンもコンソールで起動してまえばいい。
仮想マシンをバックグラウンドで起動するには
headlessモードはディスプレイ使わずに仮想マシンを起動する。
sudo VBoxManage startvm 'win2008webserver' --type headless
WindowsのRDPをエミュレートしてくれるのがVirtualBoxの魅力
VirtualBoxを使うべき特筆するべき機能。仮想マシンのRDPを使えば良いんだが、仮想マシンの起動前からRDPでつなげる。Windows仮想マシン起動前の画面をRDPで接続出来るのが嬉しい
VirtualBoxがリモートデスクトップのサーバーをやってくれる(但し重い.)vrdp はディスプレイをRDPに出力する。これはWindowsから接続するのに嬉しい機能。RDPで接続すると,仮想マシンのコンソール(Windowsだとセーフーモードを選ぶもの)が見られて嬉しいです.
vrdp モードはディスプレイがポート3389にRDPになる
sudo VBoxManage startvm 'win2008webserver' --type vrdp
vrdp モードだと非WindowsOSもmstsc.exeで接続出来て嬉しいですね.*1
ポートの設定はGUIでやっておくといい
設定はこんな感じ
Null | 認証無し |
external | ホストOSのアカウントで認証 |
guest | ゲストのユーザアカウントで認証、あまり使わない |
最初はNullを選んでおき、OSのインストールを済ませ,起動が確認できてからvrdp をオフにする。インストール&起動確認後WindowsやLinuxの通常RDP/VNCに切替える。
インストール終わってしまうと,VRDPは緊急時以外に使わない。だけど緊急時に役に立つ。だから一度使っておくとイイと思う.
仮想マシンをSSH経由で作成して、起動するなんてことも
面倒なので詳しくは割愛
VBoxManage createvm マシン名 VBoxManage modifyvm マシン名 --name 新しい名前 VBoxManage modifyvm マシン名 --memory 256 VBoxManage modifyvm マシン名 --vram 64
編集はXML触る方が早い。もちろん、シェルから直接触れる.これもいいよね
一度作った仮想マシンをコピーして作るには設定XMLをコピーして編集するのが手っ取り早い
でもってコピー&編集後は登録する.
仮想マシンの登録
VBoxManage registervm 設定xmlファイル名
NAT動作時に仮想マシンポートを公開する
NAT動作時は仮想マシンポートをホスト側に出すと便利
以下の例はホストマシンのポート80を仮想マシンのポート80に転送する例
VBoxManage setextradata "win2008webserver" "VBoxInternal/Devices/e1000/0/LUN#0/Config/iis/Protocol" TCP VBoxManage setextradata "win2008webserver" "VBoxInternal/Devices/e1000/0/LUN#0/Config/iis/GuestPort" 80 VBoxManage setextradata "win2008webserver" "VBoxInternal/Devices/e1000/0/LUN#0/Config/iis/HostPort" 80
直接ファイルを編集する
もしくは直接ファイルを触ることでも同じ事
vim /home/gscc/.VirtualBox/Machines/win2008webserver/win2008webserver.xml
ファイル
<ExtraDataItem name="VBoxInternal/Devices/e1000/1/LUN#0/Config/iis/Protocol" value="TCP"/> <ExtraDataItem name="VBoxInternal/Devices/e1000/1/LUN#0/Config/iis/GuestPort" value="80"/> <ExtraDataItem name="VBoxInternal/Devices/e1000/1/LUN#0/Config/iis/HostPort" value="80"/> </ExtraData>
どのHDDを使っているのか調べる
仮想マシンが使っているHDDの情報を見る.
takuya@debian01:~$ sudo VBoxManage showvminfo 'win2008webserver'| grep vdi IDE コントローラ (0, 0): /root/.VirtualBox/HardDisks/win2008webserver.vdi (UUID: 53ff43bb-4d1b-4c3a-a861-XXXXXXXX)
仮想ハードディスクの情報を見る
takuya@debian01:~$ sudo VBoxManage showhdinfo /root/.VirtualBox/HardDisks/win2008webserver.vdi Sun VirtualBox Command Line Management Interface Version 3.1.6 (C) 2005-2010 Sun Microsystems, Inc. All rights reserved. UUID: 53ff43bb-4d1b-4c3a-a861-XXXXXXXX Accessible: yes Description: Logical size: 20480 MBytes Current size on disk: 20388 MBytes Type: normal (base) Storage format: VDI In use by VMs: win2008webserver (UUID: 26e4a3d2-d628-4d89-9ab0-XXXXXXXX) Location: /root/.VirtualBox/HardDisks/win2008webserver.vdi
まとめ
ほとんどの場合,シェルからSSH経由で制御が簡単でとても嬉しいです.VmWareでも出来るけれど.VirtualBoxのほうが手軽で良い感じです.
*1:但し重いけど