KVMを使った仮想OS設定手順について

KVM を使った仮想OS設定手順についてのメモです。
KVM*1 は CPU の仮想化支援機構を使って完全仮想化を実現するツールです。
今回はホストOSに Xubuntu 10.04、ゲストOSに Debian 3.1 Sarge*2 を使用しました。
KVM のインストールや設定については下記のサイトを参照させていただきました。

ホストOSの環境

今回は MacBookXubuntu という環境で作業を行いました。(MacBook のハードディスク内に Xubuntu 用のパーティションを設定し*3、インストールしました。)

Xubuntu のインストール手順についてはこちらをご参照ください(インストール先ディスクの設定はお使いの環境にあわせてください)。

KVM のインストール

インストール前の確認作業

CPU が KVMに対応していることを確認します。/proc/cpuinfo 内に ”vmx”の文字列が含まれる場合は仮想化支援機構のあるCPUとなります。
コマンドラインにて下記を実行して出力を確認します。

$ grep vmx /proc/cpuinfo
flags	 : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
flags	 : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
インストール

下記コマンドで KVM とbridge-utils をインストールします。

apt-get update
apt-get install kvm bridge-utils
ユーザ権限の設定

kvm を実行するユーザを kvm グループに追加します。

$ adduser keitaro kvm
$ id -a
uid=1000(keitaro) gid=1000(keitaro) groups=0(root),4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),118(admin),121(sambashare),122(kvm),1000(keitaro)

仮想OS作成前の準備

Debian Sarge のisoファイルの用意

Debian Sarge の iso ファイルを用意します。古い Debian の iso ファイルは、下記URLからダウンロードできます。

本手順では筆者の手元にあった「debian-31r1a-i386-netinst.iso」を使用します。

仮想OS用のイメージファイル作成

下記コマンドを実行し qcow2 形式で 5GB のイメージファイルを作成します。

$ kvm-img create -f qcow2 debian_sarge.img 5GB
Formatting 'debian_sarge.img', fmt=qcow2 size=5368709120 encryption=off cluster_size=0 

debian_sarge.img ファイルが作成されました。

$ ls -l
total 111216
 -rw-r--r-- 1 keitaro keitaro 113743872 2006-03-22 13:34 debian-31r1a-i386-netinst.iso
 -rw-r--r-- 1 keitaro keitaro    262144 2010-06-19 22:41 debian_sarge.img

仮想OSの作成

仮想OSのインストール

CDドライブにisoファイルを指定して CD から bootします。

kvm -hda debian_sarge.img -cdrom ./debian-31r1a-i386-netinst.iso -boot d -m 256
  1. 上記コマンドを実行します。
コマンドの詳細内容は以下のようになります。
  • 「-hda debian_sarge.img」debian_sarge.img をハードディスクとして指定
  • 「-cdrom ./debian-31r1a-i386-netinst.iso」CDドライブに debian-31r1a-i386-netinst.iso を指定
  • 「-boot d」CD-ROMから boot
  • 「-m 256」メモリを 256MBに指定
  1. Debin の画面が開きます。

  2. 言語を選択します、本手順では English を選択して Enter しました。



  3. エリア選択では United States が選択されますので、Other を選択し、次の画面で Japan を選択して Enter しました。

  4. キーボード は Japanese を選択して Enter しました。

  5. ホスト名を設定します。本手順では「Sarge」と入力して Enter しました。

  6. ドメインを設定します。本手順では「localdomain」と入力して Enter しました。

  7. ハードディスクのパーティション設定です。本手順では 5GB 分のハードディスク領域すべてを使用します。

  8. 1つのパーティション内にすべてのファイルをインストールするを選択して Enter しました。

  9. OSがインストールされる領域(ext3)が 5.1GB、swap が 255MB という構成になりました。この内容で決定& Enter しました。

  10. 「Yes」で Enterし、ディスクへの書き込みを開始します。(yes,no,goback などの選択を変更するには Tab キー、または右左矢印キーを押します。)

  11. ext3 でフォーマットされます。

  12. インストールが開始されます。

  13. 十数分後に GRUB のインストール要否を聞かれますので、「Yes」を選択します。

  14. GRUB がインストールされます。

  15. インストールが終了しました。「Continue」で Enter します。

  16. 自動で再起動しますが、起動に失敗しますので、画面を閉じます。

基本設定の実施
kvm -hda debian_sarge.img -boot c -m 256
  1. 上記コマンドを実行して仮想OSを起動します。
コマンドの詳細内容は以下のようになります。
  • 「-hda debian_sarge.img」debian_sarge.img をハードディスクとして指定
  • 「-boot c」ハードディスクから boot
  • 「-m 256」メモリを 256MBに指定
  1. GRUB が起動し、カーネル選択画面が表示されます、そのまま Enter します。

  2. 起動すると「Debian Base System Configuration」が表示されます。そのまま Enter します。

  3. タイムゾーン設定です。No を選択して Enter します。

  4. こちらは Yes で Enter します。

  5. root ユーザのパスワードを入力します。

  6. 確認用に root ユーザのパスワードを再度入力します。

  7. 通常ユーザの名前(フルネーム)を入力します。

  8. 通常ユーザのユーザ名を入力します。

  9. 通常ユーザのパスワードを入力します。

  10. 確認用に通常ユーザのパスワードを再度入力します。

  11. APT リポジトリの設定です。ここではリポジトリの設定は行いませんが「edit source list by hand」選択します。

  12. source.list ファイルの編集画面が開きます。リポジトリ設定は後で行いますので、「Ctrl」+「X」で Exit します。

  13. リポジトリ追加設定要否の画面が表示されますが、No を選択して Enterします。

  14. Exim の設定画面になります。ローカル配信が選択されていますので、そのまま Enter します。

  15. postmaster と root 宛メールのリダイレクト先アカウントを設定します。さきほどの通常ユーザ名が入力されていますので、そのまま Enter します。

  16. 以上で「Debian Base System Configuration」の設定は終了です。

APT リポジトリの設定
  1. ログイン画面になりますので、root ユーザでログインします。

  2. deb http://ftp.riken.jp/Linux/debian/debian-archive/ sarge main contrib
    deb-src http://ftp.riken.jp/Linux/debian/debian-archive/ sarge main contrib
    
  3. /etc/apt/ ディレクトリに移動し、source.list ファイルをviエディタで編集します。
    上記の2行*4を追加します。
シャットダウンについては root ユーザでログインした状態で下記コマンドを実行します。
shutdown -h now
OSインストール手順は以上で終了です。次回以降のエントリーにて パッケージインストールやネットワーク設定手順などをアップする予定です。

*1:KVM の概要については、@IT:Linux標準の仮想化技術「KVM」の仕組み(1/2)が参考になります。

*2:最小構成のものを使用しました。バージョンが少々古いですが、軽量なゲストOSを複数稼働させることを目標としているので、こちらのOSを選択しました。

*3:筆者のMacBook(2006年末購入)では OS X 10.6 を使用していますが、以前は Tiger(10.4.11) を使用していました。その頃にコマンドラインツールでパーティションを分割し、別パーティションLinuxをインストールしていました。今回はXubuntuを ライブCDから起動し、Linuxがインストールされていたパーティションを削除してからインストールを行いました。Tiger(10.4.11)でのパーティション設定の方法についてはこちらのサイトが参考になると思います。

*4:No One Better: 古いバージョンのDebianのリポジトリを参考にさせていただきました。