Mチップ搭載Macで仮想化ソフトは動作しない
MacがIntel CPUからARMアーキテクチャーのMチップに移行した為、VirtualBoxなどの仮想化ソフトウェア上でx86アーキテクチャーのCentOSを動作させる事が出来なくなってしまいました。
UTMでCPUエミュレーションを行う
UTMは仮想化モードだけでなく、ホスト上で別CPUの動作を再現するCPUエミュレーションモードとしても動作します。
このモードを使うとARMアーキテクチャーのMチップ上でIntel x86アーキテクチャーのOSを走らせる事が可能です。
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にこんな記事が!!
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にインストール出来ました。