Chrome OS Flex の リカバリメディア を Linux上で作成

Chrome OS Flex を試してみようと思いました.

Google ChromeのExtentionでリカバリメディアを作成して起動するようです.

しかし,Linuxで試すと非対応…….

chrome_os_flex.jpg

イメージデータさえ入手できればddあたりで書き込みできるのではと探してみました.

The manifest URL is https://dl.google.com/dl/edgedl/chromeos/recovery/cloudready…;

例 1. The extension just downloads a .bin file from Google and writes it onto the USB … | Hacker News

てことでマニフェストjsonファイルがあるのでこの中を見るとそれらしいものが書かれているので

$ curl -s https://dl.google.com/dl/edgedl/chromeos/recovery/cloudready_recovery.json
[
  {
    "channel": "dev-channel",
    "desc": "",
    "file": "chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin",
    "filesize": 6939566592,
    "hwidmatch": "^REVEN($| .*)",
    "manufacturer": "Google Chrome OS Flex",
    "md5": "7d91cf099c5d7bb33e66cab8cf56a23f",
    "model": "Chrome OS Flex (Developer-Unstable)",
    "name": "Chrome OS Flex (Developer-Unstable)",
    "photourl": "",
    "sha1": "b11edcd9ef35ec24a9fcb3d9f4e6c507d3da3637",
    "sku": "",
    "url": "https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip",
    "version": "14516.0.0",
    "zipfilesize": 1095476192,
    "chrome_version": "100.0.4880.0",
    "hwids": []
  }
]

.[].url をダウンロード

$ wget -c $( curl -s https://dl.google.com/dl/edgedl/chromeos/recovery/cloudready_recovery.json | jq -r .[].url )
$ ls -s chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip
1069804 chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip

チェックサムの確認.(md5やsha1なのか……)

$ sha1sum  ./chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip
b11edcd9ef35ec24a9fcb3d9f4e6c507d3da3637  ./chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip
$ md5sum  ./chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip
7d91cf099c5d7bb33e66cab8cf56a23f  ./chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip

PCにターゲットのUSBメモリを差し込む前にdmesgを起動しておいて

$ sudo dmesg -Hw

差し込んだときのメッセージを確認してデバイス名を確認.ここでは sdb .確認したらCtrl+cでdmesg終了

[  +0.000007] usb 4-2: New USB device strings: Mfr=3, Product=4, SerialNumber=5
[  +0.000002] usb 4-2: Product: Transcend
[  +0.000001] usb 4-2: Manufacturer: TS-RDF5
[  +0.000001] usb 4-2: SerialNumber: 000000000037
[  +0.002415] usb-storage 4-2:1.0: USB Mass Storage device detected
[  +0.000165] scsi host6: usb-storage 4-2:1.0
[  +1.030606] scsi 6:0:0:0: Direct-Access     TS-RDF5  SD  Transcend    TS3A PQ: 0 ANSI: 6
[  +0.000389] sd 6:0:0:0: Attached scsi generic sg2 type 0
[  +0.335897] sd 6:0:0:0: [sdb] 125173760 512-byte logical blocks: (64.1 GB/59.7 GiB)
[  +0.000722] sd 6:0:0:0: [sdb] Write Protect is off
[  +0.000005] sd 6:0:0:0: [sdb] Mode Sense: 23 00 00 00
[  +0.000784] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  +0.011296]  sdb: sdb1

確認したデバイスに解凍しつつ書き込み.

$ zcat ./chromeos_14516.0.0_reven_recovery_dev-channel_mp-v2.bin.zip | sudo dd of=/dev/sdb bs=8M conv=fsync status=progress

出来上がったメディアから起動すると動作しました.

chromeosflex01.jpg
chromeosflex02.jpg
chromeosflex03.jpg
chromeosflex04.jpg

環境

$ dpkg-query -W jq coreutils curl util-linux
coreutils       8.32-4.1
curl    7.81.0-1
jq      1.6-2.1
util-linux      2.37.3-1+b1
$ lsb_release -dr
Description:    Debian GNU/Linux bookworm/sid
Release:        unstable
$ arch
x86_64

コメントを残す

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