M1 MacBook Air: UTMを使ってCentOS Stream 9を動かす事を試みた件 ー ARM64なら動く

Mチップ搭載Macで仮想化ソフトは動作しない

MacがIntel CPUからARMアーキテクチャーのMチップに移行した為、VirtualBoxなどの仮想化ソフトウェア上でx86アーキテクチャーのCentOSを動作させる事が出来なくなってしまいました。

UTMでCPUエミュレーションを行う

UTMは仮想化モードだけでなく、ホスト上で別CPUの動作を再現するCPUエミュレーションモードとしても動作します。
このモードを使うとARMアーキテクチャーのMチップ上でIntel x86アーキテクチャーのOSを走らせる事が可能です。

結論から:
CentOS Stream 9(x86_64)を走らせるにはx86-64-v2が必要です。
UTMはversion3.2.4現在, x86-64-v2をサポートしていない模様。
この記事では最終的にはARM64版で動作しました。

UTMをインストールする

UTM公式サイトからダウンロードします。
https://mac.getutm.app/
App Store版とgit版が有りますが、gitからダウンロードします。

dmgファイルをダブルクリックするとウィンドウが開くので、UTMをApplicationsにドラッグします。

仮想マシン作成

UTMを起動すると開くウィンドウです。
Create a New Virtual Machineを選択します。

Emulateをクリックします。

Operating SystemからLinuxをクリックします。

Boot ISO image選択画面が表示されます。

CentOS StreamのISOダウンロード

CentOS公式サイトからCentOS stream 9 x86_64 ISOをダウンロードします。
https://www.centos.org/centos-stream/

ISO選択 以降

ISOを選択してContinueをクリックします。

Hardware:
Architecture: x86_64
System: デフォルトのまま変える必要はありません。
Memory/CPU: 任意に変更します。

Continueをクリックします。

ストレージサイズを決めます。デフォルトは64GBです。

Shared Directory: こちらは特に設定しません。

VMの名称は任意に設定してsaveします。

VMが作成されました。

インストール エラーで止まる

VMのスタートボタンをクリックしてインストールを開始します。
エラーで停止します。

Fatal glibc error: cpu does not support x86-64-v2

Red Hat Enterprise Linux 9.0のリリースノートにアーキテクチャの記載が有ります。
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/9.0_release_notes/architectures

・AMD and Intel 64-bit architectures (x86-64-v2)
・The 64-bit ARM architecture (ARMv8.0-A)
・IBM Power Systems, Little Endian (POWER9)
・64-bit IBM Z (z14)

x86-64-v2をサポートしていない?

UTMの公式サイトに情報は少なく、v2をサポートしているのかは分かりません。
discord.comのUTMコミュニティを使う様にと有ります。
聞いてみました。

ARM64版で動いた!!

CentOS 7/8 ARM64はM1では動かないとの情報が以前に有りました。
同じARMアーキテクチャーでもApple Siliconは異なるからとの理由でした。
それでCentOS Stream 9もARM64は動かないと諦めていたところ、Qiitaにこんな記事が!!

 M1チップでRHEL9を動かす - Qiita
はじめに 社用マシンのローカル環境にRHELを用意しようとしたところ、M1搭載MacでRHELを入れようとするとRHEL7や8は非対応でした。実はベータ版で動くのは前から情報があったのですが、ようやくRHEL9お披露目があったので...

RHEL 9が動くならCentOS Stream 9も動くはずと早速トライ。

ARM64 ISOにてvirtualizeモードでVMを作る

モードをvirtualizeでVMを作成します。

インストール開始

おお!! インストール画面出た。

M1 MacからSSH出来る事も確認しました。

チャットで答えて下さった方によると、同じRHELクローンでもUTM上での動作には差が有りそうです。

CentOS 7/8ならx86_64のEmulateモードで動く

CentOS 7/8ならx86_64のEmulateモードで動きます。
先のQiitaの記事によるとRHEL 7/8 ARMはM1では動かないそうです。
9でx86_64, ARM共にアーキテクチャーに変更が有った様です。

今回EmulateモードではなくVirtualizeモードでARM64が動作したという事は、ARM64 CentOS Stream 9がネイティブでApple Siliconをサポートしている事を意味します。

今回そもそもCentOS Stream 9をインストールしようとした理由は、ZABBIX 6.0 LTSを試したかったからですがARMになるとパッケージが無いんです。
RHEL 9用のバイナリはx86_64用しか有りません。
新しくCentOS Stream 8 x86_64をインストールしますか。。。動くかどうか。

【追記】CentOS Stream 8 x86_64 UTMにインストール出来ました。

TwitterFacebookLinkedInHatenaPocketCopy Link