最近のLinuxのインストーラは、GUIベースのものが多いです。
ただし、サーバにインストールする場合、テキストベースで操作が完結できるとが便利な場合があります。
この記事では、Ubuntu 22.04をQEMUの仮想マシンにテキストモード(シリアルコンソール)でインストールする方法を紹介します。
インストーラISOイメージのダウンロード
wget https://releases.ubuntu.com/22.04.2/ubuntu-22.04.2-live-server-amd64.iso
カーネルとinitrdをファイルとしてアクセスするための準備
以下のようのインストーラのISOイメージをマウントし、その中のカーネルとinitrdを直接ファイルとしてアクセスできるようにします。
mkdir mnt
sudo mount -o ro ubuntu-22.04.2-live-server-amd64.iso mnt
また、インストール終了後、以下のようにアマウントします。
sudo umount mnt
仮想ディスクイメージの作成
qemu-img create -f raw drive1.img 10G
参考:
QEMU用の仮想ドライブイメージファイルの作成例
QEMUの起動
ここでは、以下のシェルスクリプトを作って実行します。もちろん、コマンドラインに直接入力してもよいですが、コマンドラインが長いのでファイルに記載して実行します。
このコマンドラインでは、カーネルをファイルとして直接指定し、カーネルオプションに
console=ttyS0を渡します。
ttyS0は、シリアルポートデバイスを意味します。これにより、インストーラがシリアルコンソール用に動作します。
また、
-nographicオプションは、QEMUを起動した端末(xtermなど)を仮想マシンのシリアルポートとして使用するためののオプションです。
#!/bin/sh
QEMU=qemu-system-x86_64
CD_IMAGE=ubuntu-22.04.2-live-server-amd64.iso
DISK_IMAGE=drive1.img
MEMORY=2048
${QEMU} \
-cpu host \
-enable-kvm \
-m ${MEMORY} \
-drive format=raw,file=${DISK_IMAGE},if=virtio \
-cdrom ${CD_IMAGE} \
-nographic \
-kernel mnt/casper/vmlinuz \
-append console=ttyS0 \
-initrd mnt/casper/initrd
起動すると、以下のようなインストーラの画面が表示されます。
================================================================================
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 ]
あとは、キーボードで項目を選択したり、ユーザ名を入力するなどGUIのインストーラと同じように操作します。
以下は、インストール完了時に画面です。
================================================================================
Install complete! [ Help ]
================================================================================
┌──────────────────────────────────────────────────────────────────────────┐
│ writing etc/fstab ^│
│ configuring multipath │
│ updating packages on target system │
│ configuring pollinate user-agent on target │
│ updating initramfs configuration │
│ configuring target system bootloader │
│ installing grub to target devices │
│final system configuration │
│ configuring cloud-init │
│ calculating extra packages to install │
│ downloading and installing security updates │
│ curtin command in-target │
│ restoring apt configuration │
│ curtin command in-target ││
│subiquity/Late/run v│
└──────────────────────────────────────────────────────────────────────────┘
[ View full log ]
[ Reboot Now ]
上記で
Reboot Nowを選択すると、仮想マシンの再起動後に再度インストーラが起動します。そのため
Ctrl-a xで、QEMUを一旦終了します。
インストールしたLinuxの起動
インストールに使用したQEMUのコマンドラインからインストーラISOイメージドライブとカーネルの指定を除いた以下で、インストールしたLinuxが起動できます。
#!/bin/sh
QEMU=qemu-system-x86_64
DISK_IMAGE=drive1.img
MEMORY=2048
${QEMU} \
-cpu host \
-enable-kvm \
-m ${MEMORY} \
-drive format=raw,file=${DISK_IMAGE},if=virtio \
-nographic
参考記事
仮想マシンのドライブやネットワークインターフェイスカードなどをカスタマイズするには以下の記事を参照。
0 件のコメント:
コメントを投稿