Daydreaming in Boston

MacBook(ARM)上のUTMでトラブル

1. はじめに

M1 MacBookにUTMを入れてUbuntuを使っていたのですが、最近Ubuntuがフリーズするようになりました。

2. トラブルシュート断念

これまでもGNOMEがフリーズしてマウスが効かなくなることが何度かあったのですが、今回はsshで入ることもできず、本格的にOSがフリーズしているようです。起動して数十秒〜数分でフリーズしてしまい、使い物になりません。

最初はVMのUbuntuを疑いましたが、お試しで入れたRockyLinux10でもフリーズします。おまけにdnf updateしたらUTMの起動画面から進まなくなるトラブルが発生しました。RockyLinux&UTMの相性がよくありません。しばらく前のSnapshotに戻してもフリーズします。何かがおかしい。

ARM MacのUTMが新しくなっていたので入れ直しましたが、Ubuntuのフリーズは解決しません。

Mac側で最近やったことといえば、MacOS Sonomaのマイナーアップデートくらいです。これが原因かもしれません。が、MacOSのメジャーアップデートはいろいろと影響が大きいのでこれは試さず、より手軽にVMを作り直すことにしました。

3. Ubuntuを入れ直す

前回ダウンロードした24.04.2のISOが手元にあったので、再びこれを使います。不安定になるリスクをなるべく排除するため、VM作成の際にEnable hardware OpenGL accelerationとUse Apple Virtualizationはチェックしませんでした。(前回は前者をチェックした気がする)

以前の記事 を参考にインストール、設定していきました。どうやらフリーズはしないようです。よかった。

しかし、一つ大きな問題が発生しました。Emulated LANを使ってホストであるMacからVMにsshしようとするとタイムアウトするようになったのです。この現象は以前にも発生していたのですが、あるときに試したら動いたのでEmulated VLANを愛用していたのでした。

VM側ではfirewallは動いておらず、ポート22は空いています。tcpdumpでポート22を見ていてもsshがVMに来ている気配はありません。もちろん、VM上でlocalhostにsshすることはできます。Emulated VLANの設定は、フリーズするようになったUbuntu VMのものと一緒です。

不思議なことに、フリーズする古いUbuntu VMを使うとEmulated LANを使ったsshができるのです。しばらくするとフリーズしますが。

仕方がないのでBridgeネットワークを追加して、IPをアサインして使うことにしました。Sharedネットワークとの2本立てです。Bridgeだけだと自宅と異なるネットワーク環境でVMが一切ネットにつながらなくなってしまうため。

4. UTMで遭遇したトラブル

UTMを使い始めて、多くのトラブルにあいました。

4.1. 起動して数分でVMがフリーズする

今回遭遇して解決できなかった問題です。こういうことがあるからUTMは安心して使い続けることができません。

4.2. 曲の切り替わりでVMがフリーズする

SpotifyやYahooMusicで曲が切り替わるタイミングでVMがフリーズします。これも解決していませんが、頻繁には起こらないので致命的ではありません。

4.3. Emulated VLANが使えない

突然使えなくなったり、使えるようになったりするので困ります。

4.4. GNOMEがフリーズする

しばらく放置しているとGNOMEがフリーズすることがあります。3パターンあります。

4.4.1. ログイン画面でフリーズ1

全画面モードにしたりもとに戻したりすると解決する場合

4.4.2. ログイン画面でフリーズ2

何をしても解決しない場合。いったん発生するようになると何度でも発生する気がします。 ログイン画面で放置せずにすぐにログインすることで、今のところ回避できています。

4.4.3. 通常画面でフリーズ

幸いなことにOSは動いているので、外部からsshしてシャットダウンできます。頻繁には起きません。

4.5. UTMの起動画面で進まなくなる

RockyLinuxでdnf updateをした後で発生することがあります。事前のsnapshotが欠かせません。 これまでUbuntuでは起きていません。

5. おわりに

MacOSが悪いのかUTMなのかわかりませんが、Mac上でLinuxを安定して使い続けることができません。しばらく普通に使えていても、あるとき突然動かなくなるので困ります。ある程度はSnapshotで救えますが、今回のように古いスナップショットに戻しても遡って問題が起きてしまうこともあります。困ったなぁ。