TL;DR
- ubuntuで,KVM, QEMUを使って壊れてもいい仮想マシンを構築する
- 特になにもカスタマイズせずにただLinux kernelのビルド&インストールする
system
- AL14-72-5GU1
- Corei5-12450H
- 16GB RAM
- Ubuntu 24.04 LTS
vmの準備
まず,kvmが使える環境であることを確認する.
以下が0じゃなければcpuが仮想化機能を持ってるらしい.
$ egrep -c '(vmx|svm)' /proc/cpuinfo
以下のコマンドで必要なパッケージをインストール
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
sudo kvm-ok
KVM acceleration can be used
が表示されればokらしい
仮想マシンを構築する
まず,仮想ディスクイメージを作る.
以下のコマンドでゲストOSのディスクイメージを作成する.
今回は適当にubuntu-disk.qcow2
というイメージを作成する.
一回20Gくらいで作成したところ,ビルドの途中でディスクが埋まったのででかめにとる.
qemu-img create -f qcow2 ~/qemu/ubuntu-disk.qcow2 128G
wgetとかで好きなubuntuのisoイメージをダウンロードしてください.
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso
qemu-system-x86_64 \
-enable-kvm \
-m 12G \
-smp 8 \
-drive file=ubuntu-disk.qcow2,format=qcow2 \
-cdrom ubuntu-22.04.3-live-server-amd64.iso \
-boot d \
-vga virtio \
-display sdl \
-netdev user,id=net0 -device e1000,netdev=net0
ubuntuのインストールが終わったら,カーネルビルドが始まります.
vm内の作業
git clone --depth=1 https://github.com/torvalds/linux.git
cd linux
cp /boot/config-$(uname -r) .config
make menuconfig
option:カーネルのバージョン文字列を変更
MakefileのEXTRAVERSIONの文字列をわかりやすい文字列に変更しておくと,インストールしたあとにカーネルが更新されたことがわかりやすくなります.
ビルド
使えるcpuコアを使ってビルド
make -j$(nproc)
インストール
カーネルモジュール&本体をインストール
sudo make modules_install
sudo make install
GRUB更新&再起動
sudo update-grub
sudo reboot
再起動後,バージョンが変わっているかチェック
uname -r
現場からは以上です.
お疲れ様でした.