ノートPCにChromium OSじゃなくてChrome OSを入れてみた

Chrome OS

久しぶりにCloud Ready (Chromium OS)を使ってみようと思ってインストールしようとしたのだが、失敗した。USBメモリに書き込んだイメージでCloud Readyを起動して使うことは問題ないのだが、HDDにCloud Readyをインストールしようとするとダメなの。

Chrome OSをインストール 1
Cloud ReadyのHDDへのインストールでは、GPT周りのエラーが出て失敗する。ハードディスクのGPTを全て削除してローレベルフォーマットをしても同じ。インストールしようとしているPC自体が元からEFIかGTPパーティション周りに問題ありでPC-BSD(オワコン)など同様にインストールできないOSがチラホラ。しかし、Cloud Readyは以前の記事の2018年夏頃のバージョンでは正常にインストールできてたのに・・・

以前に触った別のChromium OSのArnoldTheBats World of Whimsyも試してみたが、こちらはUSBメモリで起動できるのはもちろんHDDにインストールすることにも成功した。これは以前ももちろん成功している。

Chromium OSを触りたいという欲求であれば、正常にインストールできたArnoldTheBats World of Whimsyを使い続ければよいのだが、今回はCloud Readyの気分だったので、よりによってCloud Readyの方がインストールできないということで大変気分を害してしまった。

どうするか・・・
「Cloud Readyが使えないならChrome OSを使えば良いじゃない?」これだ。(ヤケクソ)

この記事の内容を行うにはChrome OSをインストールするPC(HDD/SDD)とは別にLinuxの動くPCが1台必要です。また、Chrome OSをインストールするPCによってはこの記事と同じ作業だとUEFI絡み等でChrome OSが起動しない場合があります。(この記事とは違うやり方でないとダメかも)

Brunchの準備

Linux PCでの作業:
Chrome OSをPCにインストールするにはBrunchが必要。GitHubのBrunchの説明を読む。これがほぼ全てのドキュメント。解りやすく書かれているのでそのとおりにするだけ。
https://github.com/sebanc/brunch

Brunchの在り処
https://github.com/sebanc/brunch/releases
バージョン(r)は別途入手するChrome OSのリカバリイメージのバージョンに合わせれば良さそう。

ChromeOSリカバリイメージの入手

これもBrunchのドキュメントに書かれている。

  • 「rammus」は、第4世代IntelCPU以降を搭載したデバイスに推奨されるイメージ
  • 「samus」は、第3世代IntelCPU以降を搭載したデバイスに推奨されるイメージ
  • 「zork」はAMDRyzen3XXXに使用するイメージ
  • 「grunt」は、AMD StoneyRidgeに使用するイメージ

リカバリイメージの在り処
https://cros-updates-serving.appspot.com/
https://cros.tech/

今回インストール予定のノートPCはCeleron B820というSandy Bridge世代CPUを搭載したもの。つまり第2世代のCoreの中でもザコ中のザコ。上の種類を見ると古すぎて対象外。
そうはいっても動くくらいは動くだろうということでダウンロードしたのは「sums」のPinned 87、ファイル名は chromeos_13505.111.0_samus_recovery_stable-channel_mp-v3.bin.zip
このファイルの中にイメージファイルが(1ファイルだけ)入っているので解凍する。(どこか、わかりやすいPathに、できれば新しいディレクトリを作成してその中に)

Brunchのtar.gzファイルもChrome OSのリカバリイメージファイルを置いたのと同じディレクトリに解凍する。(ファイルが4つほど出てくる)

GPTパーティションを触るのでそれ用のパッケージを追加する。下はdebian/ubuntu系の例。

$ sudo apt-get install cgpt
ここまで前準備完了。

ハードディスク/SSDの準備

Chrome OSをインストール 2
Chrome OSをインストールする予定のノートPCのハードディスクを取り外す。20年以上前はノートPCの裏蓋が素人には開けられないような酷い造りの機種もあったけど、最近のノートPCは裏面でメモリやストレージの部分だけフタが外せるようになっていて脱着が簡単なのが多い。作業時は先にバッテリとACアダプタの取り外しを忘れずに。

Chrome OSをインストール 3
上の画像のノートPCの場合はHDDを固定するための保持金具があったのでそれも外した。機種によっては保持金具が無いものも。HDDマウンタに刺さるなら外さなくても問題ない。

Chrome OSをインストール 4
取り外したHDDをUSB接続タイプの外部HDDマウンタに嵌める。画像のHDDマウンタは3.5インチHDDと2.5インチHDD/SSD兼用なので2.5インチHDDを乗せると凹みがスカスカに余っているけどSATAのコネクタと電源の部分は3.5インチも2.5インチも同じ。このHDDマウンタのUSBケーブルをLinux PCに接続する。USB接続タイプならケーブルの抜き差しはあまり考えずに行って良いけど、eSATAの場合は接続先のPCの電源を落として接続、シャットダウンしてから切断の手順。(一部のPnP対応機器を除く)

Chrome OSのリカバリイメージの書き込み

今回はノートPCのHDDを取り外してUSB外付けでLinux PCに接続し、このHDDにChrome OSを書き込む。そこで重要なのはLinux側で外付け状態になっているノートPCのHDDがどういうデバイス名として認識されているか。これを間違うと当然書き込むことができないだけでなく関係ないHDD/SSDのデータを壊してしまうことになるかも。
ハードディスク,SSD,メモリカード等であれば基本的には1台めが/dev/sda、2台めが/dev/sdbのようなデバイス名になる。(debian/ubuntu系Linuxの場合)
今回「がとらぼ」の中の人の環境では、Linuxの動いているPCのシステム用HDDが/dev/sda、USB外付けのノートPCのHDDが/dev/sdb。必ずこのデバイス名であるとは限らず、特にLinuxで動いているPCにOS用のSSDとデータ用のHDDが入っていて、外付けHDDが3つめのストレージであれば/dev/sdcかもしれない。また、デバイスによっては/dev/sdXですらないこともあるので確認大事。

ストレージの確認方法 (/dev/sdaを確認: これはLinuxのOSが入っているストレージを想定)
$ sudo fdisk -l /dev/sda
ディスク /dev/sda: 465.78 GiB, 500107862016 バイト, 976773168 セクタ
Disk model: Hitachi HDS72105
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: EA8B398F-7F4B-7B4E-87DF-A0DA0EAC2858

デバイス    開始位置  最後から    セクタ サイズ タイプ
/dev/sda1       4096    618495    614400   300M EFI システム
/dev/sda2     618496 958313125 957694630 456.7G Linux ファイルシステム
/dev/sda3  958313126 976768064  18454939   8.8G Linux スワップ

2台めのストレージを確認するならsudo fdisk -l /dev/sdb
3台めのストレージを確認するならsudo fdisk -l /dev/sdc
Disk modelや容量やパーティションの種類を見ればある程度は何用のストレージか区別できる筈。

以下のインストール例ではLinuxのユーザーのホームディレクトリに「1」というディレクトリを作成して、そこにBrunchを解凍したものとChrome OSのリカバリイメージを解凍したものを置いたということで。
また、 /dev/sdb にChrome OSのリカバリイメージを書き込むということにする。(以下)

赤字の部分の1つめはChrome OSのリカバリイメージのファイル名、赤字の2つ目は書き込み先のハードディスクのデバイス名。
コマンド入力後「書き込み先のストレージの全てのデータが失われますが良いですか?」の質問が英語であるので yes を入力する。

foobar@neon:~/1$ ls -l
合計 3866636
-rw-rw-r-- 1 foobar foobar  498077789  3月  3 14:04 brunch_r87_stable_20210223.tar.gz   解凍後は不要
-rwxr-xr-x 1 foobar foobar      15021  2月 23 15:07 chromeos-install.sh
-rw-r--r-- 1 foobar foobar 2320468480  1月 20 00:03 chromeos_13505.111.0_samus_recovery_stable-channel_mp-v3.bin
-rw-r--r-- 1 foobar foobar   33554432  2月 23 16:35 efi_legacy.img
-rw-r--r-- 1 foobar foobar   33554432  2月 23 16:35 efi_secure.img
-rw-r--r-- 1 foobar foobar 1073741824  2月 23 16:35 rootc.img
foobar@neon:~/1$ sudo chromeos-install.sh -src chromeos_13505.111.0_samus_recovery_stable-channel_mp-v3.bin -dst /dev/sdb
All data on device /dev/sdb will be lost, are you sure ? (type yes to continue) yes
umount: /dev/sdb: not mounted.
WARNING: Primary GPT header is invalid
WARNING: Secondary GPT header is invalid
B2B85F83-A9C3-9C44-AE62-766884137300
       start        size    part  contents
           0           1          PMBR (Boot GUID: B2B85F83-A9C3-9C44-AE62-766884137300)
           1           1          Pri GPT header
           2          32          Pri GPT table
    19255304   605887096       1  Label: "STATE"
                                  Type: Linux data
                                  UUID: BCD917E2-5ACD-604C-8B32-18711C360657
     2117638       65536       2  Label: "KERN-A"
                                  Type: ChromeOS kernel
                                  UUID: 17DF3785-DCA9-CF45-ACE0-F8F3D64B7C64
                                  Attr: priority=15 tries=15 successful=0 
    10866696     8388608       3  Label: "ROOT-A"
                                  Type: ChromeOS rootfs
                                  UUID: 8F8366E4-90D4-2D47-A25D-63099E546FA7
     2183174       65536       4  Label: "KERN-B"
                                  Type: ChromeOS kernel
                                  UUID: 60BF0B97-AAD7-6B46-BBB2-D78CE81D3020
                                  Attr: priority=0 tries=15 successful=0 
     2478088     8388608       5  Label: "ROOT-B"
                                  Type: ChromeOS rootfs
                                  UUID: 80B6947B-75CF-5345-9483-28357B19E6C1
       16448           1       6  Label: "KERN-C"
                                  Type: ChromeOS kernel
                                  UUID: E063D18E-E440-6842-B2E6-4336BA402558
                                  Attr: priority=0 tries=15 successful=0 
       16456     2097152       7  Label: "ROOT-C"
                                  Type: ChromeOS rootfs
                                  UUID: B60320EC-494C-744D-A377-7DAFD7421C6A
     2248712       32768       8  Label: "OEM"
                                  Type: Linux data
                                  UUID: 38B84FD4-F222-3C4E-AE10-D4ED39B76E95
     2113608           1       9  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 9356B253-1E00-5C4A-B44B-51EDCF9AD264
     2113609           1      10  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 1C5D2B5A-2825-754F-9218-4081CAC277E8
          64       16384      11  Label: "RWFW"
                                  Type: ChromeOS firmware
                                  UUID: E576912C-B47F-1143-B5A6-2006430AD5FC
     2412552       65536      12  Label: "EFI-SYSTEM"
                                  Type: EFI System Partition
                                  UUID: B2B85F83-A9C3-9C44-AE62-766884137300
   625142415          32          Sec GPT table
   625142447           1          Sec GPT header
Writing partition 1
8.95MiB 0:00:00 [23.1MiB/s] [===========================================================>] 100%            
Writing partition 2
16.0MiB 0:00:00 [ 110MiB/s] [===========================================================>] 100%            
Writing partition 3
2.00GiB 0:01:05 [31.2MiB/s] [===========================================================>] 100%            
Writing partition 4
16.0MiB 0:00:00 [ 108MiB/s] [===========================================================>] 100%            
Writing partition 5
2.00GiB 0:01:04 [31.6MiB/s] [===========================================================>] 100%            
Writing partition 6
 512 B 0:00:00 [1.08MiB/s] [============================================================>] 100%            
Writing partition 7
1.00GiB 0:00:23 [43.8MiB/s] [===========================================================>] 100%            
Writing partition 8
16.0MiB 0:00:00 [ 104MiB/s] [===========================================================>] 100%            
Writing partition 9
 512 B 0:00:00 [1.11MiB/s] [============================================================>] 100%            
Writing partition 10
 512 B 0:00:00 [ 925KiB/s] [============================================================>] 100%            
Writing partition 11
8.00MiB 0:00:00 [ 105MiB/s] [===========================================================>] 100%            
Writing partition 12
32.0MiB 0:00:00 [ 120MiB/s] [===========================================================>] 100%            
ChromeOS installed.
GPT周りのエラーや警告表示が出たとしても無視で、最後の黄色字の部分(実際には黄色ではない)が表示されれば書き込み完了。
USBケーブルを外し、HDDマウンタの電源を切り暫く待ってからHDDをHDDマウンタから取り外してノートPCに戻す。
ノートPCの電源をオンにする。

Chrome OSを起動する

Chrome OSをインストール 5
普通ならOSが起動するハズが、No bootable device ということで、ダメじゃんって思うが、これが古いPCの良くも悪くもある部分。

Chrome OSをインストール 6
電源を入れ直し、[F2]でBIOSを起動する。イマドキはBIOSじゃなくてUEFIだろうけど、このノートPCは古いのでBIOS。
設定のどこかに「ブートデバイスを選択するメニュー」の「表示」「非表示」項目がある(かもな)ので、ブートメニューを表示できるようにする。このノートPCの場合は電源オン直後に[F12]でブートメニューを表示できるようにする項目があるのでそれをEnableにする。
BIOSの設定を変更したらSaveして再起動する。

Chrome OSをインストール 7
電源オンまたは再起動直後に[F12]を押すとブートメニューが表示される。この画面では優先順位が高いのが1で低いのが3。1のDVD/CDにブートメディアが入っていればそれが起動する。なければ2番のハードディスクが起動する。しかし、先程はこの2番のハードディスクを普通に起動しようとしてNo bootable deviceになっていた。
そこで、[↑][↓]で3番のEFI HDD Deviceを選択して[Enter]を押す。このノートPCではこんな感じだけど機種により様々。EFIデバイスの選択項目が無いことも。そしたら違うやり方で。

Chrome OSをインストール 8
今度はNo bootable deviceで止まらずに進んだ。(これもPCによっては必ず進むとは限らないのでスミマセン)
初回起動時はこの画像の画面を含みBrunch Frameworkの画面が幾つか長い時間(10分程度?)待たされる。操作の要求は無いのでひたすら待つだけ。初回以降は古い非力なPCで1分程度。

初回起動時はこの後Androidの初回設定のようなのが出るのでWi-Fiの設定をしたりGoogleのアカウントでログインしたり(確認認証も)幾つかの画面が表示されるので適切に入力する。

Chrome OSをインストール 9
Googleアカウントでログインまで出来た状態。壁紙が緑のぐにゃぐにゃストライプみたいなのになってるけど、これは以前にCloud Readyで設定したものが勝手に反映されている。

Chrome OSをインストール 10
Chromium OSで出来なくてChrome OSでできること。それがAndroidアプリの利用。当然Google Playも最初から入っていてそれが使える。Androidスマートフォンなどで購入したアプリも使える。(だから、スマホと同じGoogleアカウントを使うのがオススメ)

Chrome OSをインストール 11
Chromeの設定の中に「アプリ」という項目があって、その中に「Android設定を管理」という項目がある。どう見てもスマートフォンなどのAndroid設定そのままだけど、これがAndroidアプリで使われる環境設定になるものっぽい。

Chrome OSをインストール 12
Android用のゲーム。窓表示できるアプリもある。画像はR-TYPE Ⅱ。このゲームの場合は窓表示と全画面表示の両方が可能だった。なお、ゲームのコントロールはタッチパネルを想定しているゲームだとキーボードでは操作できない内容もある。このR-TYPE Ⅱ2だと[↑][↓][←][→]で移動が可能で、ポッドの脱着は[0]でできることが確認できたが、「弾を打つ(+波動砲)」はキーボードには割り当てられていないよう。自動連射が選択できるので弾を撃ちまくり続けるのは可能だが、ゲームとして難しい。

Chrome OSをインストール 13
上の画像のピンボールゲームは全画面専用っぽい。このゲームの場合は左右の[Shift]キーでフリップを操作、玉を打ち出すのは[Enter]ということで一応遊べる・・・
かと思いきやフリップは左右の[Shift]同時押しがNGで微妙な操作が要求されるときに片側が押されている判定のせいでその反対側を撥ねさせることができないという大問題。つまり、指を離すのが遅れるとその反対側が操作できなくてボールロストになる。あと、台揺らし(ナッジ)が効かないっぽい。
やはりゲームとして無理。残念。

Chrome OSをインストール 14
Androidでいうところのドロワーの画面。並んでるアイコンがAndroidでお馴染みのものばかり・・・

ほとんどPC版Androidといった感じ。Androidアプリが利用可能なのでChromium OSのようなアプリ不足で途方に暮れる感じはないのだが、ゲーム2つ試してみて「使いものにならない」こともあるということを理解した。

でも、面白いのは間違いない。暫くはいろいろ試してみようと思う。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です