UbuntuにKVMをインストールして仮想OSを動かすには?

UbuntuにKVMを導入し、仮想マシンを動かすまでの覚書です。KVM関係のパッケージをインストールし、ゲストOSのisoファイルを準備、仮想OSをインストールして、起動してみました。

各種ファイルの取得・導入・設定

パッケージの導入

まずは必要なパッケージを導入します。

KVMをインストールする(Qiita)が参考になります。

ゲストOSのisoファイルの準備

KVMで何かOSを動かすには、動かすOSのisoファイルが必要です。

例えば、CentOSを動かす場合は、Download CentOSから取得します。今回CentOS7の最小版を使ってみます。

ダウンロードしたディスクイメージは、/var/lib/libvirt/images/に置いておきます。

仮想OSをインストールする

コマンドでインストールします。rootで実行しました。

いくつかのオプションがあります。–nameでは、仮想マシンの名前を付けます。ここではvm02cと名付けています。–memoryはメガバイト単位で、–diskのsizeはギガバイト単位のようです。–cdromには、isoファイルの場所を指定します。

networkのオプションは、接続方式を選びます。とりあえず動かすにはbridge接続で良いです。ブリッジ接続とは「橋渡ししてネットワークを繋げる」イメージです。

ブリッジ接続 (bridge connection)

コマンドを実行した後は、OSのインストーラーの指示に従いインストールします。

仮想OSを動かす

仮想OSの起動と終了

ホストOSのターミナルで、 virsh start vm02c と打ち仮想マシンを起動します。ここで「vm02c」は、さっき名付けた仮想マシンの名前です。

virt-viewer vm02c で起動したマシンの様子を確認します。

終了するには、ゲストOSで、shutdown nowと打ち込みます。ホストOSで、virsh shutdown vm02cとしても良いようです。強制終了(電源コードを抜くに相当)は、virsh destroy vm02cです。

仮想OSの種類の確認

インストールした暫く後に、再び仮想OSで遊ぼうとしても、何を導入したのかを忘れている事があります。

KVMのマシンを知るにはホストOSのターミナルで virsh list –all です。オプション–allをつける事で、停止状態のOSも確認できます。

VirshコマンドによるKVMゲストOSの管理

仮想OSの削除

仮想マシンを削除するには、virsh undefine vm02cです。

CentOSのネットワーク設定

この方法で導入したCentOSは、このままではネットワークに繋がりません。(ホストOSがUbuntuのデスクトップ版であれば、この方法でも最初からネットワークに繋がっていますので楽です。)

CentOSをネットワークに繋げるために、私はONBOOTの設定をyesに変更しました。

/etc/sysconfig/network-scripts/ifcfg-eth0 にネットワーク設定のファイルがありますので、最終行 ONBOOT=yes に変更し保存します。そうすれば起動(Boot)時にネットワークに繋がります。

ネットワークの項目の意味は、下記のリンクが参考になります。

CentOSのネットワーク設定を手動で行う方法

ONBOOTの設定後に再起動すれば、私の環境ではネットワークに繋がるようになりました。

ネットワークに繋がれば、 yum -y update でアップデートが出来ますし、多くのコマンドの導入も可能になってきます。

Ubuntuでスクリーンショットを利用する

Ubuntuも他のOS同様にスクリーンショットを利用できます。

PrintScreenキーで撮る

  1. 画面全体を撮る:PrintScreen
  2. 指定範囲を撮る:Shift + PrintScreen
  3. 指定windowを撮る:Alt + PrintScreen

便利なものです。特に2番目の機能は、ブログ記事投稿でも活躍しそうです。

ターミナルでコマンドを使い撮る

下記の記事の通り、PrintScreenキーを使わずとも、端末(ターミナル)から撮れるようです。

参考:Ubuntuで端末からスクリーンショットを撮る方法まとめ(Qiita)

Ubuntuのsyslogはどこにあるか?

Ubuntuのsyslogは、/var/logの直下にあります。

最新のログはsyslogで、少し古いログはsyslog.1等の名前です。私の環境では1日1回、gzファイルができ、1週間経ったものは消去される様子。

syslogはシステムのログだと理解していましたが、「ログメッセージをIPネットワーク上で転送するための標準規格である」と説明されています。確かにログの中身は、通信に関する記述・記録が多めです。

参考:syslog(wikipedia)