Ubuntu 24.04
Sponsored Link

KVM : 仮想マシンを作成する2024/05/10


ゲスト OS をインストールして仮想マシンを作成します。
当例ではホスト OS と同じ Ubuntu 24.04 をインストールします。

[1] 当例では、事前に Ubuntu 24.04 インストール用 ISO ファイルを適当なディレクトリにダウンロードして (下例では [/home] 配下)、ISO ファイルからテキストモードでインストールします。
直接コンソールからでも、リモートから Putty 等のエミュレータ経由からでも実行可能です。
また、デフォルトでは仮想マシンのイメージの保管場所 (ストレージプール) は [/var/lib/libvirt/images] となっていますが、 当例では別パスにストレージプールを作成して進めます。(自身が覚えやすいパスで OK)
# ストレージプールとするディレクトリ作成

mkdir -p /var/kvm/images

root@dlp:~# virt-install \
--name ubuntu2404 \
--ram 4096 \
--disk path=/var/kvm/images/ubuntu2404.img,size=20 \
--vcpus 2 \
--os-variant ubuntu24.04 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location /home/ubuntu-24.04-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd \
--extra-args 'console=ttyS0,115200n8' 

# インストールが開始される
  Serial                                                              [ Help ]

  As the installer is running on a serial console, it has started in basic
  mode, using only the ASCII character set and black and white colours.

  If you are connecting from a terminal emulator such as gnome-terminal that
  supports unicode and rich colours you can switch to "rich mode" which uses
  unicode, colours and supports many languages.

  You can also connect to the installer over the network via SSH, which will
  allow use of rich mode.

                          [ Continue in rich mode  > ]
                          [ Continue in basic mode > ]
                          [ View SSH instructions    ]

# [Continue in basic mode] を選択
# この後は通常のインストール手順と同じ
上例で指定しているオプションの意味です。その他多数のオプションは [man virt-install] で確認可能です。
--name 仮想マシンの名前を指定
--ram 仮想マシンのメモリ容量を指定 (単位は M)
--disk path=xxx,size=xxx [path=xxx] で仮想マシンのディスクの保管場所を指定 (デフォルトは [/var/lib/libvirt/images] 配下)
[size=xxx] で仮想マシンのディスク容量を指定 (単位は G)
--vcpus 仮想マシンの仮想 CPU 数を指定
--os-variant ゲスト OS の種類を指定
[# osinfo-query os] で指定可能な OS の種類を確認可能
--network 仮想マシンのネットワークタイプを指定
当例では [--network bridge=br0] として、ゲスト OS にブリッジ接続を指定
(br0 はインストールの項の [2] で設定したブリッジインターフェース)
物理マシンが複数の NIC を搭載し、且つ ブリッジインターフェースも複数を設定しており、且つ 仮想マシンからも同様に複数の ネットワークインターフェースを使用したい場合は、[--network xxx] を複数行で指定
--graphics グラフィクスを指定
spice, vnc, none 等が指定可
--console コンソールタイプを指定
--location インストール元を指定
--extra-args インストール時にカーネルに渡すパラメータを指定

[2] インストーラー起動後はテキストモードでインストール作業を進めます。テキストモードも基本は GUI と同様のため、インストール過程は割愛します。 インストールが完了すると、通常通り一旦システムが再起動し、以下のようにターミナル上にゲスト OS のログインプロンプトが表示されます。インストール中に設定したユーザーでログインできればインストール完了です。
Ubuntu 24.04 LTS ubuntu ttyS0

ubuntu login: ubuntu
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Thu May  9 08:16:12 UTC 2024

  System load:  0.69              Processes:               141
  Usage of /:   42.1% of 9.75GB   Users logged in:         0
  Memory usage: 5%                IPv4 address for enp1s0:
  Swap usage:   0%

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

[3] ゲスト OS 側からホスト OS 側へのコンソールの切り替えは Ctrl + ] キーです。
ホスト OS 側からゲスト OS 側へのコンソールの切り替えは [virsh console (仮想マシン名)] とコマンドを入力します。
ubuntu@localhost:~$      # Ctrl + ] キー
root@dlp:~#              # ホスト側のコンソールに切り替わった

root@dlp:~# virsh console ubuntu2404    # ゲスト OS のコンソールに切り替え
Connected to domain 'ubuntu2404'
Escape character is ^]   # Enter キー押下

ubuntu@localhost:~$      # ゲスト側のコンソールに切り替わった
[4] 作成した仮想マシンは容易に複製可能です。
virt-clone --original ubuntu2404 --name template --file /var/kvm/images/template.img

Allocating 'template.img'                                   | 1.8 GB  00:00 ...

Clone 'template' created successfully.

# ディスクイメージ

ll /var/kvm/images/template.img

-rw------- 1 root root 3029729280 May 9 08:18 /var/kvm/images/template.img
# 定義ファイル

ll /etc/libvirt/qemu/template.xml

-rw------- 1 root root 6732 May 9 08:18 /etc/libvirt/qemu/template.xml