こんにちは、山田ハヤオです。
Ivy Bridge世代のジャンクノートを3000円で入手しました。
Arch Linuxを入れるのにも飽きたのでChromeOS Flexを入れてみようと思います。
ChromeOS Flexのリリース時は受験勉強をしてたので、実は触れるのは初めてです。
Linuxでは通常の方法でUSBを作成できない
普通、OSをインストールする場合はUSBメモリにOSイメージを焼いて起動します。
ChromeOS/ChromiumOSでは、「ChromeBook リカバリユーティリティ」を用いてUSBメモリを作成します。
これはChromeOS Flexも例外ではありません。
しかし、このツールはLinux上では実行できません。
Google公式の方法も一応存在している
ヘルプを見てみましょう。
最下部に「Linux パソコンを使用する場合」という項目があります。
ここでは「linux_recovery.sh」という代替のシェルスクリプトがダウンロードできます。
しかし、これらのスクリプトはChromeBookのイメージファイルしか取得できず、ChromeOS Flexには非対応です。
ChromeOS FlexのUSBメモリをLinuxで作成する
Googleの公式な方法はChromeOS Flexでは使えないことが判明したので、非公式な方法を用います。
おさらい
ところで皆さんは以下の記事を覚えていますでしょうか。
リカバリーユーティリティのソースコードから内部APIを見つけ出しました。
今回もその内部APIを用います。
イメージファイルを取得するコード
上記のAPIを呼び出し、ChromeOS Flexのイメージファイルを探し出してダウンロードします。
(jqコマンドとcurlコマンドをインストールしてください)
curl -sL "https://dl.google.com/dl/edgedl/chromeos/recovery/cloudready_recovery.json" | jq -r ".[] | select(.name == \"ChromeOS Flex\") | .url" | xargs curl -L -o ./chromeos_flex.zip
ダウンロードしたファイルを展開する
unzip ./chromeos_flex.zip
正常にダウンロードできたか確認する
正しいチェックサムを取得
curl -sL "https://dl.google.com/dl/edgedl/chromeos/recovery/cloudready_recovery.json" | jq -r ".[] | select(.name == \"ChromeOS Flex\") | .sha1"
ダウンロードしたファイルのチェックサムを取得
sha1sum ./chromeos_flex.zip
上の2つのコマンドを実行して、出力が一致すれば正常にダウンロードできています。
展開したファイルをUSBメモリに焼く
/dev/sdxは書き込み先のUSBメモリに変更してください。
sudo dd if="./$(curl -sL "https://dl.google.com/dl/edgedl/chromeos/recovery/cloudready_recovery.json" | jq -r ".[] | select(.name == \"ChromeOS Flex\") | .file")" of=/dev/sdx
長いコードに見えますが、展開後のファイル名をAPIで取得したあとにddコマンドで書き込んでいるだけです。
終わり
ChromeBookのリカバリの場合はGoogle公式のシェルスクリプトを、ChromeOS Flexの場合は今回の非公式な方法を使うといいと思います。
APIでURLやファイル名を取得しているので、常に最新のバージョンを取得できます。
コメント