1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Intel系基盤のProxmoxでARMのVMを動かしてみる

Last updated at Posted at 2025-01-03

Intel系環境(x86_64)上のProxmoxでARM64のVMが動くという話が身近で話題となっていました。
(x86_64というのはIntel系のCPUアーキテクチャで、Proxmoxというハイパーバイザ上でARM系のシステムをVMとして動かすことができるという事を話していました。)

ProxmoxはKVMを使っているので、QEMUのCPUエミュレーションにより可能なんだろうなぁというレベルで理解はできましたが、自分のような仮想化技術の素人でも実用的であるか否かを検証してみようと思いました。
以下備忘録として残しておきます。
なおDebianのインストール作業は10年ぶりくらいなので、スクショ画像多めで記録しましたこと、お許しください。

検証環境

検証対象 検証条件
利用端末 Dell Vostro 3560(2013年頃のノートPCで、第3世代のCorei5搭載)
CPU Intel(R) Core(TM) i5-3230M 4Core (1 Socket)
RAM 8 GByte
SSD 1 TByte
Hypervisor Proxmox 8.3
Kernel Linux 6.8.12-6-pve x86_64 GNU/Linux
構築するVM debian-12.5.0-arm64

手順1. ハイパーバイザ(Proxmox)の各種情報を確認する

まずはProxmoxのWeb-UIにて、作業前の情報を確認します。
※ この作業は構築では必要ないので、時間を省きたい場合はスキップ(手順2へスキップ)しても問題ありません。
000.png

次にProxmoxへSSH接続して、詳細情報を確認します。

  • CPU情報を確認する
lscpu | grep -e "Architecture" -e "Model name"
Architecture:                         x86_64
Model name:                           Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
BIOS Model name:                      Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz To Be Filled By O.E.M. CPU @ 2.6GHz
  • ストレージ情報を確認する
fdisk --units=sectors -l
Disk /dev/sda: 894.25 GiB, 960197124096 bytes, 1875385008 sectors
Disk model: SPCC Solid State
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BE28300A-CEC3-4E7D-A27A-FA88C1F39AC0

Device       Start        End    Sectors   Size Type
/dev/sda1       34       2047       2014  1007K BIOS boot
/dev/sda2     2048    2099199    2097152     1G EFI System
/dev/sda3  2099200 1875384974 1873285775 893.3G Linux LVM

手順2. ARM64系のVMを動かすために必要となるProxmoxパッケージをインストールする

ここでの作業は、ProxmoxにSSHして作業を行います。

  • /etc/apt/sources.list に、下記の配布リポジトリ情報を追記する。
deb http://download.proxmox.com/debian/pve bookworm pvetest
  • アップデートが可能なパッケージのリストを最新化する
apt update
  • 必要なProxmoxパッケージであるpve-edk2-firmware-aarch64をインストールする
apt install pve-edk2-firmware-aarch64
  • インストールされているパッケージを最新化する
apt upgrade

一旦ProxmoxのWeb-UIに戻り、ハイパーバイザのSummaryを再表示させてみたところ、ぼくの場合は反映されていなかったようです。
そのためRebootボタンを押下して様子を見てみることに。

002.png

再起動後に再度確認してみると、Proxmoxのカーネルが更新されていました。
003.png

Package versions を押下して詳細情報も確認しておきました。

001.png

念のためCLIでも確認しておきました。

  • カーネル情報を確認する
uname -a
Linux proxmox-vostro3560 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64 GNU/Linux

手順3. 構築VM(debian-12.5.0-arm64)のISOイメージをダウンロードする。

Proxmoxのストレージ(local)のISOイメージフォルダに、Download from URL機能を使ってダウンロードする。
なおダウンロードのURLは下記とする。
https://get.debian.org/images/archive/12.5.0/arm64/iso-cd/debian-12.5.0-arm64-netinst.iso
(ファイル名はdebian-12.5.0-arm64-netinst.isoとした。)

004.png

Downloadボタンを押下するとダウンロードが開始され、しばらくすると先ほど定義したファイル名にて格納されたことを確認することができます。

005.png

続いてCreate VMボタンを押下して次の手順3.に進みます。

手順4. VM作成

VM作成ウィザードのGeneralタブでは、下記を設定します。

設定項目 設定例 備考
VM ID 130 他のノード(Proxmoxクラスター内でユニークな値とする)
Name DebianARM64 利用時に識別できれば良い

006.png

OSタブでは、赤枠(Do nnot use any media)を選択して Nextを押下する。

007.png

Systemタブでは下記の設定を行う。

設定項目 設定例 備考
Graphic card Serial terminal 0 普段やらないけど本手順では必須なので注意
SCSI Controller VirtIO SCSI この設定も必須
BIOS OVMF(UEFI) この設定も必須
Add EFI Disk Off 後で作成するのでここはチェックを外しておく

008.png

Diskタブでは下記を設定する。

設定項目 設定例 備考
Storage local-lvm デフォルト設定のままで良い
Disk size (GiB) 32 デフォルト設定のままで良いが、構築目的に応じて合わせるのは問題ない

009.png

CPUタブでは下記を設定する。

設定項目 設定例 備考
Type Default(kvm64) 必須
Core 2 お好みでよい

※ VM構築時の時短目的でCore数を増やしておき、構築終了後にCore数を減らすなどもあり。

010.png

Memoryタブでは下記を設定する。

設定項目 設定例 備考
Memory (MiB) 4096 DebianのCLI環境での推奨は512 MByte
Ballooning Device チェックを外す お好みでよい

011.png

Networkタブでは下記を設定する。

設定項目 設定例 備考
Bridge vmbr0 下図ではvmbr1だが、利用環境に合わせてお好みのものを使う

012.png

上図のNextを押下しComfirmタブへ遷移させ、問題なければウィザードを完了させる。

013.png

続いて後回しにしていたデバイス設定を行う。

Hardware メニューのAdd操作にて、CD/DVD Driveを追加する。

014.png

CD/DVD Driveの追加では、下記の設定を行う。

設定項目 設定例 備考
Bus/Device SCSI
Use CD/DVD disc image file(iso) ラジオボタンにて選択する
ISO image debian-12.5.0-arm64-netinst.iso

015.png

下図のようにインストールメディアが登録されていることを確認する。

016.png

続いてOptionメニューにてBoot Orderを設定する。

017.png

Boot Orderでは下記の通り設定する。

設定項目 設定例 備考
#1 Enabled scsi1(インストールメディアとすること)
#2 Enabled scsi0(インストール先のDiskとすること)
#3 チェックを外す net0を無効化しておき、pxeブートに切り替わらないようにする

018.png

設定が反映されたことを確認する。

019.png

次にCLI(SSH接続)環境で設定変更作業を行う。
VMの設定ファイル(/etc/pve/qemu-server/<vm_id>.conf)をテキストエディタ(Proxmoxにはnanoとviがインストールされているのでお好みのテキストエディタ)で編集する。
※ 上記の設定ファイル名内の<vm_id>は、先ほど設定したVM IDの値を適用する。
 (この手順では 130 を適用している。)

020.png

編集する内容は下記の2箇所。

設定箇所 編集対象 編集内容
1箇所目 vmgenidの行 #でコメントアウトして無効化する
2箇所目 最終行 arch: aarch64を追記する

021.png

編集を終えたら設定ファイルを上書き保存して作業を完了させる。
続いてEFI Diskの構築を行うために、次のコマンドを実行する。
qm set <vm_id> --efidisk0 local-lvm:1,efitype=4m,format=raw
※ 先ほど同様、<vm_id>は、先ほど設定したVM IDの値(130)を適用する。

qm set 130 --efidisk0 local-lvm:1,efitype=4m,format=raw

023.png

コマンドを実行すると処理が走り出し、完了するとプロンプトのコマンド待ち状態に復帰します。

024.png

ここまで間違いなく手順を終えると、VMを起動できる状態となります。
再度Web-UIに戻り、下図のようにStartボタンを押下し数秒待ってからConsoleボタンを押下します。

025.png

しばらくすると下図のようなxterm.jsのコンソール画面が表示される。

026.png

しばらくすると起動メニューが表示されるので、 *Install を実行する。

027.png

言語はEnglishを選択する。

028.png

LocationはJapanを選択する。

029.png

LocaleはJapan(または英語圏)で選択する。

030.png

enterを押下すると処理が進んでいく。

031.png

続いてNetworkの設定に移る。

032.png

DHCPが有効であれば自動で設定が施されるが、そうではない環境の場合は手動でネットワーク設定を行うこととなる。

033.png

動作環境に合わせたネットワーク設定を行う。(IPv4)

034.png

サブネットマスクを設定する。

035.png

デフォルトゲートウェイの設定を行う。

036.png

Name Serverの設定を行う。

037.png

Hostnameの設定を行う。

038.png

ドメインを設定する場合はこの画面で設定を行う。
(本手順における環境では設定を行わない)

039.png

Rootユーザのパスワードを設定する。

040.png

Rootユーザのパスワードの確認入力を行う。

041.png

ユーザのフルネームを設定する。

042.png

Usernameの文字列を設定する。

043.png

ユーザのパスワードを設定する。

044.png

ユーザパスワードの確認入力を行う。

045.png

タイムゾーンの設定を行う。

046.png

表示されていないタイムゾーンを設定する際は、Go Backを押下し、再度タイムゾーンの設定をやり直す。

047.png

ディスクのパーティション設定を行う。

048.png

パーティション設定の方式を選択する。(お好みで良い)

049.png

パーティション設定するディスクを指定する。

050.png

今回は/homeを分離する構成として進めていく。

051.png

/rootに30GByte割り当てる構成が自動的に設定されていたが、このままで問題ないので構成を確定する。

052.png

ディスクへの変更を開始して良いかの最終確認を行う。(Yes)

053.png

インストールが開始させる。
進捗83% あたりで画面がフリーズしたかのように見える。(画面表示が変わることない状態が30分以上続いている)
これは冒頭に記載した参考にしたサイト での書き込みでも報告されている事象であり、しばらく待機することで解消される。
(今回の検証環境は低スペックのノートPCであるので、1時間くらいかかりました)

054.png

(冬休み中という事もあり、家事・お食事などしながら画面の様子をうかがう事1時間程度で下図のような画面になりました)
ここでは別のメディアの有無を問われているようであり、今回は無しなので Noと回答します。

055.png

次に、Package Managerのアーカイブサイトの国を選択します。

056.png

アーカイブサイトを選択します。

057.png

インターネット接続時にHTTPプロキシを利用する場合、そのプロキシサーバの情報を登録します。
(今回は使用しないので空欄のまま次へ遷移します)

058.png

インストールが進んでいきます。

059.png

Debianの開発者へのレポート提供をするか否かを聞かれます。
今回はしないこととするのでNoとします。

060.png

次に、利用したいソフトウェアを選択します。
最低限赤枠の2つ(SSH Serverstandard system utilitiesは選択しておきます。
なおデスクトップを利用したい場合はお好みのものを選択するのが良いです。
(この手順では図に記録してませんが、デスクトップも選択していますが、動きが重くて実用的ではないので選択しない方が良いと思われます)

061.png

インストール処理が再開され、青い背景のみが表示されたままの状態しばらく続いたりと心配になる状況が時折発生しますが、ひたすら我慢します。(笑)

062.png

下図は我慢できた人のみが拝見できるインストール完了画面です。
あまりにも遅く、途中お食事、お洗濯、ごろ寝を挟んで6時間ほど経過してしまいました。
お正月のお休み期間なので、こういう進め方でも問題は無いものと納得しています。

なお、この時点ではまだContinueボタンを押さずに、インストールメディアをアンマウントを先に行います。

063.png

ProxmoxのWeb-UIに戻り、HardwareCD/DVD Drive (scsi1) をダブルクリックして、設定変更を行います。

064.png

設定フォームにて、 Do not use any media を選択して OKを押下します。

065.png

設定が反映されたことを確認します。

066.png

インストールメディアのアンマウントが完了したらxterm.jsのコンソール画面にもどり、Continueを押下してDebianのVMを再起動します。

067.png

手順5. VM起動

再起動が完了すると、OS起動時のメニューが表示されます。
ここでは*Debian GNU/Linuxを選択します。

068.png

しばらくは起動処理の画面を眺めて過ごします。

069.png

起動処理が完了すると、Debianのログイン画面が表示されます。

070.png

Debianのインストール時に設定したユーザとパスワードを利用してログインを行います。

071.png

ログインに成功すると、Debianのプロンプトが表示されます。

072.png

先ほど使用したCPU情報確認コマンドを実行してみます。

lscpu | grep -e "Architecture" -e "Model name"

073.png

無事表示することができました。
(期待した通り、ARM64です)

074.png

手順6. デスクトップ機能の試用

デスクトップ機能を試すためにコンソールをxterm.jsからnoVNCに切り替えます。
そのためにはDebian-VMをシャットダウンし、VM設定を変更する必要があります。

Debian-VMをシャットダウンするために、スイッチユーザ(su -)してからshutdown -h nowを実行します。

075.png

Debian-VMのシャットダウンが完了すると、xterm.jsコンソールが下図のようになります。

076.png

シャットダウンしたらProxmoxのWeb-UIに戻り、Displayの設定を変更します。

077.png

設定値をDefaultに変更します。

078.png

Display設定の反映を確認したらVMを起動させます。(Startを押下します)

079.png

Startを押下して数秒したらConsoleメニューのnoVNCを起動します。

080.png

するとnoVNCコンソールが起動します。
しかし最初の数分間は真っ黒な画面のまま待機する必要があります。

081.png

数分間の我慢の後に、デスクトップのログイン画面が表示されます。

082.png

ログイン成功しデスクトップの初期設定などを完了すると、デスクトップ環境を利用できるようになります。
ただし動作がかなり重く、正直実用出来ではありません。
(利用する端末が高スペックであれば実用出来なのかもしれませんが、10年以上昔の使い古しのノートパソコンですとこんなもんなのでしょう。。。。

083.png

とりあえずデスクトップ上でターミナルを起動し、先ほどのCPU情報確認コマンドを実行してみました。

lscpu

デスクトップ環境でも同じCPU情報を確認することができました。

さいごに、、

冒頭のテーマであった実用的であるか否かを検証についてですが、処理速度の面ではデスクトップ環境は実用出来ではないと思いました。
一方CLI環境は何とかコマンド実行もできる様でしたので、ちょこっとだけ環境が必要な時に利用するのであれば役に立つのかもしれないかな、、と感じています。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?