KVM on Ubuntu18

参考

手順

パッケージインストール

1
$ sudo apt install qemu-kvm libvirt-bin
1
$ sudo adduser $USER libvirt

なお、公式ドキュメント上ではlibvertdグループとされていたが、注釈にあった

1
In more recent releases (>= Yakkety) the group was renamed to libvirt. Upgraded systems get a new libvirt group with the same gid as the libvirtd group to match that.

に従い、libvertグループを使用した。

1
$ sudo reboot

イメージの準備

今回は18.04LTSを用いることとする。

1
2
3
$ cd ~/Downloads  # ディレクトリがなかったら作成
$ wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu-releases/18.04/ubuntu-18.04.1-desktop-amd64.iso
$ wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu-releases/18.04/ubuntu-18.04.1-live-server-amd64.iso

インストール

1
$ sudo apt install virtinst

ネットワークインストールの方法ネットワーク経由でインストールすることにした。

1
2
3
4
5
6
7
8
9
10
11
$ sudo virt-install \
--name ubuntu1804 \
--ram 1024 \
--disk path=/var/lib/libvirt/images/test.img,bus=virtio,size=15 \
--vcpus 2 \
--os-type linux \
--network default \
--graphics none \
--console pty,target_type=serial \
--location 'http://jp.archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'

参考までにイメージからインストールするのは以下の通り。(未動作確認)

1
2
3
4
5
sudo virt-install -n test -r 512 \
--disk path=/var/lib/libvirt/images/test.img,bus=virtio,size=4 -c \
~/Downloads/ubuntu-18.04.1-live-server-amd64.iso --network network=default,model=virtio \
--graphics none \
--extra-args 'console=ttyS0,115200n8 serial'

ゲスト側のconsole設定

virsh console でコンソールに接続できるよう、SSHで接続して設定する。 VMのIPアドレス確認 を参考に、IPアドレスを確認する。

1
2
3
4
~$ sudo virsh net-dhcp-leases default
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
-------------------------------------------------------------------------------------------------------------------
2018-11-17 03:08:52 52:54:00:b0:68:26 ipv4 192.168.122.193/24 ubuntu1804 ff:32:39:f9:b5:00:02:00:00:ab:11:97:79:8b:63:02:9c:d8:07

ゲストOSにおけるコンソール設定 に従って設定する。

まず /etc/default/grub を修正する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$ sudo echo > /etc/default/grub << EOL
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
#GRUB_TERMINAL=serial
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
EOL

grubの設定ファイルを再生成する。

1
$ sudo grub-mkconfig -o /boot/grub/grub.cfg

rebootする。

1
$ sudo reboot

reboot後にvirsh console <VM名>でアクセスすればコンソールに接続できる。 抜けるときは、Ctrl + ]もしくはCtrl + 5。

共有