考察とは名ばかりで感想?

最近は主にプログラミング(AIコーディング)と資産運用(FXで食ってくぞ!)

Windows用PCでChromeOSをUSBから起動するためのガイド

Androidのエミュレータって負荷が高くて、パソコンの寿命が縮みそうで心配…。そんな不安を何とかするため、Windows用のパソコンでChromeOSを動かしちゃえ作戦をスタートさせました

この記事は、USBからChromeOSを起動してAndroidアプリを動かせるようにしつつ、引き続きハードディスクからWindowsも起動できるようにするという一挙両得な試みの記録です。果たして無事に所望の環境は手に入ったのか!? 最後まで見届けてやってください

WindowsPC用のChromeOSについて

WindowsPC用のChromeOSとしてChromeOS Flexがありますが、これって通常のChromeOSと違ってAndroidアプリが使えないんですよね。なので今回の目的には使えない。そこで登場するのがこちらのBrunch Frameworkになります

github.com

Brunchは通常のパソコン用ハードウェアでChromeOSを動かせるようにしようというプロジェクト。ここから提供されるOSイメージを使えばOKってわけですよ!

勿論ハードディスクにインストールしても良いですが、USBメモリでブートメディアを作成できるので今回はそうします。複数ハードで使い回したり、郵送で送りつけたりと色々活用できそうなので(実際にやってみると普通に使ってるハードディスクをイジらずに色々試せるのがありがたすぎた)

導入方法

概要

今回ChromeOSを導入する手順をまとめると次のようになります

  1. WSLlinuxloopsをインストール
  2. linuxloopsでOSイメージを作成
  3. OSイメージをUSBメモリに書き込む
  4. USBメモリからOSを起動

はい、ここで何か知らんやつが出てきましたね? まずWSL (Windows Subsystem for Linux) はWindows上でLinuxを動かせる環境。続いてlinuxloopsはLinux上でLinuxを簡単にインストールできるソフト。ChromeOS (Brunch) もインストール可

github.com

というわけでWindows上のLinux (WSL) で、このlinuxloopsを使ってChromeOSをインストールしていきます。やり方は大体linuxloops公式の↓に書いてあります

github.com

事前準備

まず手始めに次の作業を済ませておきます

  • WSLのインストール
  • ブートメディア作成ソフトのインストール
  • USBメモリの調達

WindowsにWSLをインストールするには、ターミナルであるWindows PowerShellに”wsl --install”と打ち込むだけなので詳しいことは調べてもらうとして

ブートメディア作成ソフト、つまりOSのイメージファイルをUSBメモリに書き込むソフトが当然必要。RufusなりDiskImagerなりを用意してください

後はOSを書き込むUSBメモリですね。OSイメージに最低14GiB必要なので16GB以上のやつ(自分は32GBにしました)

linuxloopsのインストール

WSLを起動して次のコマンドを入力し、linuxloopsをインストールします

curl -L https://github.com/sebanc/linuxloops/raw/refs/heads/main/linuxloops -O --create-dirs --output-dir ~/bin

後は必要なLinuxのパッケージをインストールしてやればGUIでlinuxloopsを起動できるんですが、何故か起動できない…

OSイメージ作成

しょうがないのでCLIでやります。次の作業はChromeOSのイメージファイルを作成し、Windowsのフォルダ*1に保存すること。↓のコマンドをWSLで実行します

sudo bash $HOME/bin/linuxloops -distro Brunch -ver Stable -env Voxel -dst /mnt/c/test/brunch.img -s 28

「sudo bash $HOME/bin/linuxloops」=linuxloopsを実行。「-distro Brunch」=OSの種類にBrunch (ChromeOS) を指定。「ver Stable -env Voxel」=機種によって色々あるChromeOSの中からコードネーム”Voxel”を指定し*2、そのバージョンに安定版を指定。「-dst /mnt/c/test/brunch.img」=OSイメージの保存先とファイル名を指定(Cドライブの”test”フォルダに"brunch.img"として保存する*3)。「-s 28」=OSイメージのファイルサイズを28GiBに指定(これがOSを起動したときにデフォルトでマウントされるパーティションの容量になる*4

ブートメディア作成

OSイメージを作成できたら、それをUSBメモリに書き込んでブートメディアを作成します。詳しくはRufusとかDiskImagerとかをどうやって使うかの問題なのでここでは割愛

OS初起動

これでブートメディアを作成できたら、ChromeOSを起動したいパソコンにUSBメモリを挿して起動しましょう。単にパソコンを起動しただけだと普通に元のWindowsが起動すると思うので、そこはUSBから起動するようBIOSの設定を良い感じにしてください

ここでセキュアブート*5が有効になっていると多少それ関連の操作が必要です(大雑把にBrunchの公式に書いてある

まず、セキュアブートの認証が失敗したと出るので「OK」を選択

続いて何でもいいからキーボードを押して

OSの認証キーを設定します

"Enroll key from disk"→"EFI"→"brunch.der"と選択してから、"Continue"→"Reboot"で改めてOSが起動します

…起動するんですが、初起動は兎に角時間が掛かる! 起動中画面で"RootFS is being rebuilt..."と出たままなのが10分以上経ってやっと終わったと思ったら、今度は"Patches are being applied..."と出てきて1時間近く待たされました

そこで起動する前のメニューでChromeOS (Setting) を選び、Brunch Frameworkの設定をすることで少しはマシにする方法があります

(参考)

guugoods.blog.fc2.com

(設定項目の詳しい一覧)

github.com

↑に書かれているVerbosmodeを有効化することで、Bootsplash(起動中画面)ではなく起動中のログが表示されます。画面が変化せずに固まってないか心配になる時間が減るので精神的にはだいぶマシに

OS初期設定

こうしてようやくChromeOSが無事起動しました*6

後は普通のChromeOSと一緒で初期設定するだけです

結果(オチ)と余談

するだけのはずだったのになぁ…

どうにもGoogleアカウントにログインするのが上手く行かない

代替案としては、パソコン用オープンソースAndroidOSのAndroid-x86、その派生でインターフェースをパソコン向けにしたPrimeOSってのがあります。まあ僕が使いたいパソコンでは動かなかったんで結局駄目でしたが。欠点は発熱が激しいこと*7

最後にlinuxloopsを使わずに手動でインストールする方法に関して

note.com

参考になったところを置いときます

*1:WSL内のフォルダには保存できない

*2:Brunch公式が11世代以降のIntel製CPUにはこれを使えと指定している

*3:testフォルダは事前に作成しておく

*4:デフォルトは14GiBでこれ以上の容量が必要。32GBのUSBメモリは28GiBくらいが限界

*5:怪しいプログラムを動作できないようにする機能

*6:英語だけど勿論すぐに日本語にできます

*7:パソコンへの最適化が足りないらしい。まあそりゃIntelとAMDどっちでも使えたりするあたりでね…