Windows 版 QEMU(qemu-system-x86_64.exe) で Chrome OS Flex を起動する


開発版の情報です。アップデートによりこの情報が古くなる可能性があります。

Chromebook などの専用デバイスではなく、通常の PC にインストールでき Chrome OS のほとんどの機能が利用できる Chrome OS Flex がリリースされました。

ただし、Chrome OS Flex は USB ライブブートで一時的に試せますが、アップデートなどはできず、インストールするとなると既存の OS が消えるため専用の PC が必要となります。

一時的な調査やテストを目的とした場合にのみライブブートを使用し、それ以外の場合はインストールして Chrome OS Flex を最大限に活用することを強くおすすめします。

Chrome OS Flex をインストールすると、対象デバイス上にある既存のデータ、アプリケーション、設定、OS がすべて消去されます。インストールに成功しなかった場合でも、失われたデータは復元できません。

3: Chrome OS Flex の使用を開始する – Chrome OS Flex ヘルプ

仮想化について

Chrome OS Flex の前身となる「CloudReady」は VMware で動作する OVA イメージが提供されていました。

ただ、Chrome OS Flex では VMware をサポートしておらず、Dev チャンネルのままだと自動的に Chrome OS Flex にアップデートされ起動しなくなってしまいます。

QEMU の選定

Twitter で KVM で動作したという事例がありました。

手元の環境には残念ながら KVM ホストはなく、Windows → Linux → Chrome OS Flex の Nested しか用意できないため、Windows で QEMU を動かしてみる方向を考えてみます。

Windows 版 QEMU の準備

まずは下記を準備します。

Hyper-V や WSL2、Windows Sandbox を使用している方は HAXM は利用できないかと思います。

自分はメインの仮想環境が VMware、VirtualBox のため、WSL 1 を使用しているのでこの構成となります。

qemu のオプションで -accel hax の代わりに、-accel whpx を指定するとよいようですが、試せていません。

QEMU で Chrome OS Flex の準備

まずは、Chrome OS Flex のイメージを用意する必要があります。

ヘルプによると「Linux で Chrome OS Flex の USB インストーラを作成するにはどうすればよいですか?(近日提供予定)」とありますが、現時点は手動で用意します。

正規の手順で作成した USB メモリをイメージ化する方法もありますが、今回はこのページの手順を参考にイメージファイルを入手しました。

5/1 時点で、拡張機能で参照している JSON ファイルが cloudready_recovery.json から cloudready_recovery2.json にアップデートされており、バージョンは 14685.0.0 でした。

QEMU で Chrome OS Flex の起動

ZIP ファイルを解凍して、QEMU を実行します。

いろいろ試行錯誤した結果、下記コマンドで正常動作を確認しました。

"C:\Program Files\qemu\qemu-system-x86_64.exe" ^
-accel hax -machine q35 -m 4096 ^
-cpu Skylake-Client-noTSX-IBRS -smp cpus=1,cores=3,maxcpus=3 ^
-vga virtio -display gtk,show-cursor=on -rtc base=utc ^
-device intel-iommu -usb -device usb-tablet -k jp106 ^
-hda "ダウンロードしたイメージファイル"

それぞれのオプションの意味は下記となります。

  • -accel hax:HAXM を使用するオプションです
  • -cpu Skylake-Client-noTSX-IBRS:ホストの CPU が Core i5 6400 のため Skylake を指定しています
  • -smp cpus=1,cores=3,maxcpus=3:ホストの CPU が4コアのため、3コア分をゲストに割り振ります
  • -vga virtio:他のものだと画面が正常に表示されませんでした
  • -display gtk:Machine メニューからいろいろ操作するにはこれの方が良さそうです
  • -usb -device usb-tablet:通常のマウスの設定だとカーソルが飛んで操作が難しいです、タブレットモードに設定することで操作できました。ただタブレットなのでスクロールなどはタッチするように操作します。
  • show-cursor=on:タブレットだとカーソルがないので操作が難しくこれを設定することで操作できます
  • -rtc base=utc:これを設定することでゲストに正常に時刻設定されます

動作時のスクリーンショットは下記となります。

Chrome OS Flex on QEMU for Windows

まとめ

QEMU for Windows(qemu-system-x86_64.exe) で正常に Chrome OS Flex が動作することを確認しました。

この方法でも、「とりあえず動作する」レベルでまともには動作しません。

あくまで動作検証のみの利用となります。

本物の KVM 環境ではもっとまともに動いてくれそうな気がしますが、VMware や VirtualBox などでも動いてほしいものです。


Comments

comments

コメントを残す

メールアドレスが公開されることはありません。

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)