$ sudo apt-get install virtinst qemu-kvm kvm-ipxe virt-manager bridge-utils -y
$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.10.50
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1
dns-nameservers 192.168.10.1
上記を以下のように変更
auto eth0
iface eth0 inet static
auto br0
iface br0 inet static
address 192.168.10.50
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1
dns-nameservers 192.168.10.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
設定の反映
$ service networking restart
$ sudo mkdir -p /opt/virt/kvm
$ sudo qemu-img create -f raw /opt/virt/kvm/Ubuntu12.04_BASE.img 20G
$ sudo dd if=/dev/zero of=/opt/virt/kvm/Ubuntu12.04_BASE.img bs=1M count=20480
$ sudo qemu-img create -f qcow2 /opt/virt/kvm/Ubuntu12.04_BASE.img 20G
$ sudo qemu-img create -f qcow2 /opt/virt/kvm/Ubuntu12.04_BASE.img 20G
$ sudo qemu-img info IMAGE01
オプション | 概要 |
---|---|
-h | 引数の一覧とその説明の表示 |
-n | 仮想マシンの名前を指定 |
-r | 仮想マシンのメモリ容量を指定 |
-f | 仮想マシンのディスクの場所を指定 |
-s | 仮想マシンのディスク容量を指定。単位はG |
–vcpus= | 仮想マシンの仮想CPU数を指定 |
–os-type | ゲストOSのタイプを指定 |
–network= | 仮想マシンのネットワークタイプを指定。 ゲストOSにブリッジ接続させる場合は、[–network bridge=br0]とする。複数行指定可能。 |
–nographics | グラフィクスを使わない |
–location= | インストール元を指定 |
–extra-args= | インストール時にカーネルに渡すパラメータを指定 |
–vnc | ゲストのVGA 出力を VNC で表示する |
–prompt | 質問に答えて新ストールできる |
コマンド実行後は物理マシンへのUbuntuをインストールする手順と同じです。
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=Ubuntu13.04_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location=http://ftp.riken.jp/Linux/ubuntu/dists/raring/main/installer-amd64/ \
--disk path=/opt/virt/kvm/Ubuntu13.04_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
UbuntuをKVMでインストールする場合は日本語の言語の選択肢が無いためインストール後に設定しておきます。
$ sudo apt-get install language-pack-ja
$ sudo locale-gen ja_JP.UTF-8
$ sudo update-locale LANG=ja_JP.UTF-8
タイムゾーンを東京にしていない場合も設定しなおしはできます。
$ sudo dpkg-reconfigure tzdata
コマンド実行後は物理マシンへのUbuntuをインストールする手順と同じです。
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=Ubuntu12.10_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location=http://ftp.riken.jp/Linux/ubuntu/dists/quantal/main/installer-amd64/ \
--disk path=/opt/virt/kvm/Ubuntu12.10_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
UbuntuをKVMでインストールする場合は日本語の言語の選択肢が無いためインストール後に設定しておきます。
$ sudo apt-get install language-pack-ja
$ sudo locale-gen ja_JP.UTF-8
$ sudo update-locale LANG=ja_JP.UTF-8
タイムゾーンを東京にしていない場合も設定しなおしはできます。
$ sudo dpkg-reconfigure tzdata
コマンド実行後は物理マシンへのUbuntuをインストールする手順と同じです。
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=Ubuntu12.04_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location=http://ftp.riken.jp/Linux/ubuntu/dists/precise/main/installer-amd64/ \
--disk path=/opt/virt/kvm/Ubuntu12.04_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
UbuntuをKVMでインストールする場合は日本語の言語の選択肢が無いためインストール後に設定しておきます。
$ sudo apt-get install language-pack-ja
$ sudo locale-gen ja_JP.UTF-8
$ sudo update-locale LANG=ja_JP.UTF-8
タイムゾーンを東京にしていない場合も設定しなおしはできます。
$ sudo dpkg-reconfigure tzdata
コマンド実行後は物理マシンへのUbuntuをインストールする手順と同じです。
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=Ubuntu11.10_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location=http://ftp.riken.jp/Linux/ubuntu/dists/oneiric/main/installer-amd64/ \
--disk path=/opt/virt/kvm/Ubuntu11.10_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
UbuntuをKVMでインストールする場合は日本語の言語の選択肢が無いためインストール後に設定しておきます。
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=Ubuntu12.04_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='priority=critical auto=true console=tty0 console=ttyS0,115200n8 url=http://oss.fulltrust.co.jp/preseed/preseed.cfg' \
--location=http://ftp.riken.jp/Linux/ubuntu/dists/precise/main/installer-amd64/ \
--disk path=/opt/virt/kvm/Ubuntu12.04_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
コマンド実行後は物理マシンへのCentOS6.3をインストールする手順と同じです。
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=CentOS6.3_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location=http://ftp.riken.jp/Linux/centos/6.3/os/x86_64/ \
--disk path=/opt/virt/kvm/CentOS6.3_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
$ mkdir /mnt/centos63
$ mount -t iso9660 /data/iso/CentOS-6.3-x86_64-bin-DVD1.iso /mnt/centos63/
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=CentOS6.3_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location=/mnt/centos63 \
--disk path=/mnt/CentOS-6.3-x86_64-bin-DVD1.iso,device=cdrom \
--disk path=/opt/virt/kvm/CentOS6.3_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
あと、インストール後はコンフィグに余計なものが入っていますので気になる場合はvirsh edit ドメイン名で削除してしまいましょう。
$ sudo virsh edit IMAGE01
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/mnt/CentOS-6.2-x86_64-bin-DVD1.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
:wq
# cat ks.cfg
install
url --url=http://ftp.riken.jp/Linux/centos/6.3/os/x86_64/
lang ja_JP.UTF-8
keyboard jp106
#Modify HostName
network --onboot yes --device eth0 --bootproto dhcp --noipv6 --hostname centos63
#network --device eth0 --bootproto static --ip 192.168.10.50 --netmask 255.255.255.0 --gateway 192.168.10.1 --nameserver 192.168.10.1,192.168.10.2 --noipv6 --hostname centos63
#network --device eth1 --bootproto static --ip 192.168.20.50 --netmask 255.255.255.0 --gateway 192.168.20.1 --nameserver 192.168.20.1,192.168.20.2 --noiprv6
#Modify Password
rootpw password
firewall --service=ssh,http --port=80:tcp
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Tokyo
bootloader --location=mbr --driveorder=vda --append="crashkernel=auto console=ttyS0,115200n8"
clearpart --linux --drives=vda --all
#Partition For Default
part /boot --fstype=ext4 --size=500
part pv.253002 --grow --size=1
volgroup VolGroup --pesize=4096 pv.253002
logvol /home --fstype=ext4 --name=lv_home --vgname=VolGroup --grow --size=100
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=VolGroup --grow --size=4032 --maxsize=4032
#Partition For Nova Volume
#part /boot --fstype=ext4 --size=500
#part pv.253002 --size=70000
#part pv.253003 --grow --size=200
#volgroup nova_volumes --pesize=4096 pv.253003
#volgroup vg_stack01 --pesize=4096 pv.253002
#logvol / --fstype=ext4 --name=lv_root --vgname=vg_stack01 --size=65900
#logvol swap --name=lv_swap --vgname=vg_stack01 --size=4096
repo --name="CentOS" --baseurl=http://ftp.riken.jp/Linux/centos/6.3/os/x86_64/ --cost=100
#repo --name="EPEL" --baseurl=http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/ --cost=100
%packages --nobase
@base
@core
@japanese-support
git
ntp
#epel-release
%end
%post
chkconfig ntp on
yum update -y
yum upgrade -y
#sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel*
%end
shutdown
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=CentOS6.3_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8 ks=http://oss.fulltrust.co.jp/preseed/ks.cfg' \
--location=http://ftp.riken.jp/Linux/centos/6.3/os/x86_64/ \
--disk path=/opt/virt/kvm/CentOS6.3_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
$ mount -t iso9660 /data /mnt
$ sudo virt-install \
--connect=qemu:///system \
--nographics \
--accelerate \
--name=RHEL6.3_BASE \
--ram=2048 \
--vcpus=1 \
--network bridge:br0,model=virtio \
--sound \
--os-type=linux \
--keymap=ja \
--os-variant=virtio26 \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location=/mnt/rhel-server-6.3-x86_64-dvd.iso \
--disk path=/mnt/rhel-server-6.3-x86_64-dvd.iso,device=cdrom \
--disk path=/opt/virt/kvm/RHLE63_BASE.img,format=qcow2,cache=writeback \
--cpu core2duo
あと、コンフィグに余計なものが入っていますので気になる場合はvirsh edit ドメイン名で削除してしまいましょう。
$ sudo virsh edit IMAGE01
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/mnt/rhel-server-6.3-x86_64-dvd.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
:wq
OS名 URL | |
---|---|
CentOS5.8 | http://ftp.riken.jp/Linux/centos/5.8/os/x86_64/ |
CentOS6.3 | http://ftp.riken.jp/Linux/centos/6.3/os/x86_64/ |
Scientfic Linux 6.3 | http://ftp.riken.go.jp/Linux/scientific/6.3/x86_64/os/ |
Fedora16 | http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/16/Fedora/x86_64/os/ –extra-args=’console=tty0 console=ttyS0,115200n8 serial’ と最後にserialを付与する必要 |
Fedora17 | http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/17/Fedora/x86_64/os/ |
Ubuntu11.10 | http://ftp.riken.jp/Linux/ubuntu/dists/oneiric/main/installer-amd64/ |
Ubuntu12.04 | http://ftp.riken.jp/Linux/ubuntu/dists/precise/main/installer-amd64/ |
コマンド | 概要 |
---|---|
virsh list | 起動中の仮想マシンを一覧表示 |
virsh list –all | 停止中の仮想マシンを含めて一覧表示 |
virsh start vm01 | 仮想マシンを起動 |
virsh start vm01 –console | 仮想マシンを起動(コンソール接続) |
virsh suspend vm01 | 仮想マシンを一時停止 |
virsh resume vm01 | 仮想マシンを再開 |
virsh shutdown vm01 | 仮想マシンをシャットダウン |
virsh destroy vm01 | 仮想マシンを強制停止 |
virsh autostart vm01 | 仮想マシンをホスト起動時に起動 |
virsh autostart –disable vm01 | 仮想マシンをホスト起動時に起動しない |
virsh save VirtualMachine /path/filename | 仮想マシンの現在の状態を保存する(仮想マシンは停止し、状態がファイルに保存される。 ハイバネーションのようなもの。 デフォルトでは、AppArmor で任意の場所には保存できないように設定されている。 |
virsh restore /path/filename | 仮想マシンの状態を復元する |
virsh console vm01 | 仮想マシンのコンソールへ接続 |
virsh create /etc/libvirt/qemu/CentOS6.0xml | 仮想マシンを登録する イメージとXMLを違うPCに移動した場合などに使用します。 |
virsh define /etc/libvirt/qemu/[仮想マシン名].xml | 仮想マシンの管理への登録 |
virsh undefine [仮想マシン名] | 仮想マシンの管理からの削除 |
virt-clone –original rhel60vm01 –name vm01clone | 仮想マシンをクローン |
–file /var/lib/libvirt/images/vm01.img –nonsparse | |
virsh vncdisplay vm01 | 仮想マシンに接続する際に使用する VNC のディスプレイ番号を調べる |
virsh edit vm01 | 仮想マシンのコンフィグを修正する |
virsh attach-disk –type cdrom vm01 /path/to/filename.iso hdc | 仮想マシンの CD-ROM を入れ替える |
virsh dominfo vm01 | 仮想マシンの情報を表示する |
virsh vcpuinfo vm01 | 仮想マシンの CPU 情報を表示する |
virsh snapshot-create vm01 | 仮想マシンのスナップショットを作成 |
virsh snapshot-delete vm01 1317861582 | 仮想マシンのスナップショットを削除 |
virsh snapshot-dumpxml vm01 1317862115 | 仮想マシンのスナップショットのXMLをダンプ |
virsh snapshot-list m01 | 仮想マシンのスナップショットリストを表示 |
virsh snapshot-revert vm01 1317861582 | 仮想マシンをスナップショットの状態に復元 |
virsh nodeinfo | ホストマシンの情報を表示する |
virsh pool-list | プール一覧を表示する |
virsh vol-list default | ストレージファイルパスを表示する(pool-listコマンドで確認した後) |
virsh vol-delete /var/lib/libvirt/images/vm.img | イメージの削除 |
$ sudo qemu-img convert -f raw -O qcow2 orig.img out.img
$ sudo qemu-img convert -f qcow2 -O qcow2 orig.img out.img
ディスクサイズが大きくなった場合は一度別のイメージに書き出せばコンパクトになる可能性があります。
$ sudo qemu-img convert -f qcow2 -O qcow2 orig.img out.img
$ sudo mv qcow2 out.img orig.img
$ sudo apt-get install guestfish -y
$ sudo guestfish --rw -a [イメージファイル] -i
# vi guest_setting.sh
#!/bin/bash -
guestfish -a /tmp/test.img -i <<'EOF'
write-append /etc/hosts "192.168.10.50 stack01\n"
write-append /etc/hosts "192.168.10.51 stack02\n"
copy-in /tmp/test.txt /tmp
EOF
# chmod 755 guest_setting.sh
# ./guest_setting.sh
$ sudo apt-get install libguestfs-tools -y
virt-alignment-scan
virt-edit
virt-ls
virt-sysprep
virt-cat
virt-filesystems
virt-make-fs
virt-tar
virt-tar-in
virt-convert
virt-inspector
virt-tar-out
virt-copy-in
virt-install
virt-rescue
virt-win-reg
virt-copy-out
virt-list-filesystems
virt-resize
virt-df
virt-list-partitions
virt-sparsify
ゲストイメージのhostsの確認
# virt-cat -a /tmp/test.img /etc/hosts
ゲストイメージのhostsの修正
# virt-edit -a /tmp/test.img /etc/hosts
$ sudo modprobe nbd
$ sudo apt-get install kpartx -y
QCOW2の仮想イメージをマウント
$ sudo qemu-nbd -c /dev/nbd0 `pwd`/scientific6.3_x86_64.qcow2
$ sudo vgscan
$ sudo kpartx -av /dev/nbd0
予めマウントするイメージのボリュームグループ名を確認しておきましょう。
スキャンして増加しているボリュームグループ名を確認してマウントします。
イメージをアンマウント
$ sudo umount /mnt
$ sudo vgchange -an VolGroup00
$ sudo kpartx -dv /dev/nbd0
$ sudo qemu-nbd -d /dev/nbd0
snapshot1という名前で作成する場合です。
$ susdo qemu-img snapshot -c snapshot1 /root/virt/CentOS6.0.img
イメージに対するスナップショットを確認
$ sudo qemu-img snapshot -l /root/virt/CentOS6.0.img
作成したスナップショットに戻す
$ qemu-img snapshot -a snapshot1 /root/virt/CentOS6.0.img
作成したスナップショットを削除する
$ sudo qemu-img snapshot -d snapshot1 /root/virt/CentOS6.0.img