UTM上のx86アーキテクチャーのUbuntu Desktopをまともに動く速さにした
この記事でx86アーキテクチャー向けのUbuntu DesktopのVertual Boxのovaイメージからqcow2形式に変換し、M1 Mac上のUTMで起動できるようにした。しかし、この記事通りに起動できたとしても動作がとても遅く、使い物にならない使用感である。今回はこれを実用的に使えるように色々やっていく。私の場合はsshでホストからUbuntuに接続して、作業できればいいので、Desktopを削除し、Ubuntu Server的にすることを最終目標とする。念の為GUIを使いたい場合の時のためにGUIありでもある程度使える速さになるように調整してみる。
目次
- 前提
- 目標
- UTMの設定を調整
- vboxadd.serviceのuninstall
- Desktopの削除
- 結果
前提
-
ホスト:M1 Mac
-
仮想OS:Ubuntu Desktop 20.04
-
仮想マシン:UTM
-
ホストとUbuntu間のssh接続の設定済み
-
ovaをqcow2に変換し、UTMで起動するまでのUTMの設定(デフォルト)
-
Ubuntuの起動、動作が非常に遅い
起動時間の計測
以下のコマンドで起動時間を確認
$ systemd-analyze
項目 | 時間 |
---|---|
kernel | 9.640s |
userspace | 1min 34.797s |
合計 | 1min 44.437s |
考察
結果を見るとuserspaceの時間がとてもかかっていることが分かる。
目標
- 起動時間の高速化
- 動作の改善
- Desktopを削除しUbuntu Serverにする
UTMの設定を調整
調整する項目
- メモリ
- デフォルトでは4GBなので6GBもしくは8GBなどにする
- 今回は6GBにする
- CPU
UTMはゲストOSの対応アーキテクチャーがarm以外の場合、マルチコア駆動に対応していない。なので、デフォルトではシングルコアの資源しか利用できない。UTMにはForce Multicore
という設定があり、強制的にマルチコア駆動にすることができる。
1. CPU Cores
項目でコア数を指定
今回は6core
2. Force Multicore
にチェックをつける
Force Multicore
は動作が不安定になる可能性がある。
起動時間の計測
項目 | 時間 |
---|---|
kernel | 7.475s |
userspace | 44.377s |
合計 | 51.852s |
明らかに速くなっていることが分かる。
vboxadd.serviceのuninstall
Vertual BoxのGUIの最適化のために入っているvboxadd.serviceが起動時に時間を食っているので消しておく。
1. vboxadd.serviceのバージョンを確認
$ systemctl status vboxadd.service
以下のような結果が出る。この場合はVBoxGuestAdditions-6.1.26
である。
2. .iso
ファイルのダウンロード
Ubuntu上のブラウザでdownload.virtualbox.org/virtualboxにアクセスし、先ほど調べたバージョンを選択する。.iso
ファイルをダウンロードする。
3. isoファイルをマウントするディレクトリを作成
$ mkdir /mnt/iso
4. isoイメージをマウント
VBoxGuestAdditions_X.X.X.iso
のX.X.X
は適宜変更する。
今回の場合はVBoxGuestAdditions_6.1.26.iso
$ sudo mount -t iso9660 -o loop ~/Downloads/VBoxGuestAdditions_X.X.X.iso /mnt/iso
5. アンインストール
$ cd /mnt/iso
$ sudo sh VBoxLinuxAdditions.run uninstall
6. 再起動
起動時間の計測
項目 | 時間 |
---|---|
kernel | 7.086s |
userspace | 26.956s |
合計 | 34.042s |
さらに起動時間が速くなっていることが分かる。
Desktopの削除
1. CUIで起動するように設定を変更する
$ sudo systemctl set-default multi-user
2. 入力関係の設定変更
$ sudo update-locale LANG=ja_JP.utf8
$ sudo dpkg-reconfigure keyboard-configuration
3. 再起動
4. パッケージの削除
$ sudo apt -y purge ubuntu-desktop
$ sudo apt -y purge lightdm
5. 再起動
起動時間の計測
項目 | 時間 |
---|---|
kernel | 7.135s |
userspace | 25.176s |
合計 | 32.311s |
少しではあるが起動時間が短縮できた。
これで目標は達成できた。
私の環境では日本語の文字化けが解消できなかった。なにがダメなのか分からないのとsshで繋いだ時には関係ないので、一旦放置しますw
まとめ
起動時間の大幅な短縮に成功した。アプリの実行速度もUTMの資源割り当てを増やすことで改善した。ただし、アプリの実行速度は改善したもののもっさり感は残っており、GUIでアプリを使用するのはストレスを感じてしまう。GUIが必要ないのであればCUIに切り替えて、sshでホストから作業する方がいいだろう。