Debian 8 Jessie
 

仮想マシン作成#1
2015/05/07
 
ゲストOSをインストールして仮想マシンを作成します。ここではホストOSと同じ Debian 8 をインストールします。
[1] ここではネットワーク経由のテキストモードでインストールします。 直接コンソールからでも、リモートから Putty 等のエミュレータ経由からでも実行できます。 また、デフォルトでは仮想マシンのイメージの保管場所(ストレージプール)は /var/lib/libvirt/images となっていますが、ここでは別の場所に新たにストレージプールを作成して進めます。 なお、/etc/libvirt/storage 配下にあるストレージプールの定義ファイルは仮想マシンを作成すると自動生成されます。
# ストレージプールとするディレクトリ作成

root@dlp:~#
mkdir -p /var/kvm/images

root@dlp:~#
virt-install \
--name template \
--ram 4096 \
--disk path=/var/kvm/images/template.img,size=30 \
--vcpus 2 \
--os-type linux \
--os-variant debianwheezy \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://ftp.jaist.ac.jp/pub/Linux/debian/dists/jessie/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'
Starting install...    
# インストールが開始される


# インストール終了直後、初回再起動時に以下の画面で「e」キーを押下する

 +----------------------------------------------------------------------------+
 |*Debian GNU/Linux                                                           |
 | Advanced options for Debian GNU/Linux                                      |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 +----------------------------------------------------------------------------+

      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, `e' to edit the commands
      before booting or `c' for a command-line.

# 以下のように「linux」行の末尾に仮想コンソールを追記して「Ctrl + x」キーを押下する

 +---------------------------------------------------------------------------------------+
 |          search --no-floppy --fs-uuid --set=root  82c9915f-4b67-46cc-ac63-c6dd4d7662d1|
 |                                                                                       |
 |        else                                                                           |
 |          search --no-floppy --fs-uuid --set=root 82c9915f-4b67-46cc-ac63-c6dd4d7662d1 |
 |                                                                                       |
 |        fi                                                                             |
 |        echo        'Loading Linux 3.16.0-4-amd64 ...'                                 |
 |        linux        /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/debian--vg-root ro quiet\|
 |                     console=ttyS0,115200n8                                            |
 |        echo        'Loading initial ramdisk ...'                                      |
 |        initrd        /initrd.img-3.16.0-4-amd64                                       |
 |                                                                                       |
 +---------------------------------------------------------------------------------------+

      Minimum Emacs-like screen editing is supported. TAB lists
      completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for
      a command-line or ESC to discard edits and return to the GRUB menu.
  Booting a command list

# ログインプロンプト表示後、root アカウントでログインし、以下のサービスを有効にしておく

root@debian:~#
systemctl enable getty@ttyS0

Created symlink from /etc/systemd/system/getty.target.wants/getty@ttyS0.service to /lib/systemd/system/getty@.service.
# 以上でインストール完了

 
上で指定しているオプションの意味です。その他は「man virt-install」で確認してください。
--name
仮想マシンの名前を指定
--ram
仮想マシンのメモリ容量を指定。単位は M
--disk path=xxx ,size=xxx
「path=」で仮想マシンのディスクの保管場所を指定 ( デフォルトは /var/lib/libvirt/images 配下 )
「size=」で仮想マシンのディスク容量を指定。単位は G
--vcpus
仮想マシンの仮想CPU数を指定
--os-type
ゲストOSのOSタイプを指定
--os-variant
ゲストOSの種類を指定
--network
仮想マシンのネットワークタイプを指定。 ここではゲストOSにブリッジ接続させたいため、「--network bridge=br0」とした。 br0 はインストールの項の[3]で設定したブリッジインターフェースを指定している。 物理マシンがNICを複数枚もっていて、且つブリッジインターフェースを複数設定しており、仮想マシンからも同様に複数の ネットワークインターフェースを使いたい場合は、改行して複数指定する。
--graphics
グラフィクスを指定。「none」指定でグラフィックスは使わない
--console
コンソールタイプを指定
--location
インストール元を指定
--extra-args
インストール時にカーネルに渡すパラメータを指定

[2] ゲストOS側からホストOS側へのコンソールの切り替えは Ctrl + ] キーです。
ホストOS側からゲストOS側へのコンソールの切り替えは 「virsh console (ゲストの名前)」とコマンド入力します。
jessie@debian:~$
# Ctrl + ] キーを押す

root@dlp:~#
# ホスト側のコンソールに切り替わった
root@dlp:~#
virsh console template
 
# ゲストOS 'template' のコンソールに切り替え

Connected to domain template
Escape character is ^]
# Enterキーを押す
jessie@debian:~$
# ゲスト側のコンソールに切り替わった
[3] インストールしたゲストOS は作成直後のクリーンな段階で、後々仮想マシンを増やす時用のテンプレートとして、ディスクイメージをコピーしておくと便利です。 テンプレートとしてとっておいたディスクイメージから新たな仮想マシンを作成する場合は同じように「virt-clone」で複製できます。
# ホスト側のコンソール

root@dlp:~#
virt-clone --original template --name debian8 --file /var/kvm/images/debian8.img

Allocating 'debian8.img'                     |  30 GB     01:02

Clone 'template' created successfully.
root@dlp:~#
ll /var/kvm/images/debian8.img

-rw------- 1 root root 32212287488 May 7 20:45 /var/kvm/images/debian8.img
root@dlp:~#
ll /etc/libvirt/qemu/debian8.xml

-rw------- 1 root root 2640 May 7 20:44 /etc/libvirt/qemu/debian8.xml
 
Tweet