NanoPi R2S+openWRT 21.02.0RCでBIGLOBEのMAP-E接続


2021/09/14追記

OpenWRT 21.02.0リリース版にてだいぶ手順が変わってしまったので、あたらしく「NanoPi R2S+OpenWRT 21.02.0でBIGLOBEのMAP-E接続」として修正しています。

この記事は古い内容となります。


GL.iNET GL-MV1000を使っていたわけですが2020年8月以降IPv6が無効化、そのまま放置され、2021年4月になって再度有効化されたものの、GL.iNETが提供する機能以外の部分はほぼ切り捨てられてしまいました。

GL.iNET firmwareの駄目なところ
・GL.iNET UIで提供されている機能はGL.iNET側で有効化しないとluci側で行った設定が有効にならない(DynamicDNSやIPv6など)
・追加したパッケージはfirmwareバージョンアップ時に削除される(GUI上はパッケージを追加する、とか表示されるけど追加されたことはない)
・GL.iNet ver 3.201だとluci パッケージがインストールされていないため詳細設定が出来ない
・パッケージを追加するにはネットワーク接続が必須だがGL.iNET UIだと詳細設定ができないのでネットワーク接続ができない場合がある

そんな状況が約1年続いたわけなので、さすがに諦めました。

代替としてRockchip RK3328のNanoPi R2S と Rockchip RK3399のNanoPi R4S を候補にあげた。

Amazon日本の倉庫に在庫があるというのと、openWRTのページに「FriendlyARM NanoPi R2S」とデバイスに関する個別ページが作成されており、snapshotの提供がされていたので、NanoPi R2Sを買って設定を行った。

画像
画像

ちなみに置き換え対象となったGL-MV1000とのサイズ比較はこんな感じ

画像
画像

さて、openWRTの設定を行ったタイミングではopenWRT 21.02.0 rc1の提供が開始されていたのでそちらを使用した。(2021/07/12追記 openWRT 21.02.0 rc3は壊れているようでLANポートが稼働しないので使わないこと。やるのであればrc2)

friendlyarm_nanopi-r2s-squashfs-sysupgrade.img.gz を展開したものをmicroSDに書き込んでNanoPi R2Sを起動した。

設定手順1:パッケージの追加

mapパッケージと日本語UIパッケージ(luci-i18n-base-ja)をインストール

CLIでインストールする場合は以下を実行

# opkg update
# opkg install luci-i18n-base-ja
# opkg install map

インストール後は再起動を行うこと。

再起動しないとluciのネットワーク設定で「プロトコル:MAP / LW4over6」が選択肢に現れません。

設定手順2:WAN6インタフェースの作成

WAN6インタフェースがなければ「プロトコル: DHCPv6クライアント」で作成する

最初はそのまま設定して、有効化し、WAN6インタフェースに割り当てられるIPv6アドレスを確認すること。

↑の画像は使い回しなので、この段階では無いはずの「MAP」インタフェースが入ってます

上記のように「IPv6」アドレスが確認できたら、そのアドレスをコピーして、[詳細設定]の「委任されたカスタムIPv6プレフィックス」に貼り付け「/56」とかつけます。

設定手順3:WAN6インタフェースにDHCPv6関連設定

openWRT 21.02の段階でもWAN6インタフェースではDHCPv6関連設定がGUIできない状態であるため、/etc/config/dhcpファイルを直接書き換えます。

必要な設定は「option dhcpv6 ‘relay」「option ra ‘relay’」「option ndp ‘relay’」「option master ‘1’」です。

変更したあとは、以下の様な感じになるかと思います。

config dhcp 'wan6'
        option dhcpv6 'relay'
        option ra 'relay'
        option ndp 'relay'
        option master '1'
        option interface 'wan6'
        option start '100'
        option limit '150'
        option leasetime '12h'

ファイル変更後は下記を実行して変更を反映します。

# uci commit dhcp
# /etc/init.d/odhcpd restart
# /etc/init.d/network restart

設定手順4:LANインタフェースにDHCPv6関連設定

LANインタフェースの[DHCPサーバー]-[IPv6設定]で以下の設定を行います。

RA-Service:リレーモード
DHCPv6-サービス: リレーモード
NDP-Proxy: リレーモード

(マスターにチェックは入れません)

設定手順5: MAP-E接続設定

インタフェースの新規作成で「プロトコル:AP / LW4over6」を作成して、必要な値を入れていきます。

[一般設定]では下記の様にしました。

プロトコル:MAP/LW4over6
タイプ:MAP-E
以後は環境に合わせた値

[詳細設定]では下記の2つを設定します。

「トンネルリンク: WAN6」
「従来のMAPを使用」にチェックを入れる

設定完了

ひとまずこれで設定完了です。

うまく接続が始まらない場合は、再起動してみてください。

設定:ニチバン対策

2chの「v6プラス関連 Part21」に下記のような書き込みがある。

757名無しさんに接続中… (ブーイモ MM0e-wDGU)2020/09/27(日) 12:54:30.84ID:cYRzN3kgM>>758
openwrtでMAP-Eされてる方で、
https://gist.github.com/anonymous/0fdec75fa20a7f1ce4806391d6b0429b
このgitのコメントにあるように、
json_add_boolean connlimit_ports 1を
json_add_string connlimit_ports “1”
に変えるor最新のfirewallパッケージを入れるで安定して通信出来てる人いますか?

これをする事でopenwrtで当たり前となってるmap.sh編集してMARKターゲット作ってstatisticで分散してって事をせずとも、
connlimitでポートセット使い切ったら次のポートセット移ってってfirewallがちゃんと出来上がるようになるけど、
ルール通りロールアウトしてる気配が全く無い。
ロールアウトせずパケ詰まりしてしまう。

795 757 (ブーイモ MMe7-PIvK)2020/09/30(水) 20:53:39.27ID:1mR0IohpM>>802
最終的にこのようなcunstom rulesになりました。
https://pastebin.pl/view/raw/06212cd8
多分ですが、map.shで自動生成されるiptablesだと、
–connlimit-maskの指定がなく32になるので、
それだとdestinationが0.0.0.0/0なのでマッチせずロールアウトされないんだと思います。
0にしてあげたらロールアウトしました。(間違ってたらご指摘下さい。)
TCPもnf_conntrack調整したらconnlimitでも大丈夫な感じでしたが、
statisticでかなり安定してるのでTCPのみstatisticにしました。
map.shはlegacy=1をコメントアウトするか、snapshotsから最新のmapをインストールした場合は、
option legacymap ‘1’をnetworkのmapインターフェイスに追記するだけで動くと思います。
markターゲット追加する改変は不要です。
custom rulesに書いただけだと、リブート時、custom rulesの後にmap.shがiptablesを書いてしまうので、
local startupに
sleep 30
sh /etc/firewall.ser
を書けばmap.shで自動生成されたNATテーブルを削除して改めて書いてくれます。

これで、ニチバンベンチ回してもTCPは詰まらないですし、
MAP-EでUDP hole puch使うアプリケーションが使えるので、PS系ゲーム機でNATタイプ2になりましたし、
SoftEtherでUDP高速化機能が使るようになりました。

アドバイス下さった>>758様や、スクリプト考案の先駆者様等、
有難うございます。

GL-MV1000時代にも試した「OpenWrt map-e (JPNE v6plus) において、割当ポート240個をちゃんと使わせるための設定。」はここでもうまく動作していなかった模様。

代替としてhttps://pastebin.pl/view/raw/06212cd8にある設定に置き換えるとある。

しかし「OpenWrt map-e (JPNE v6plus) において、割当ポート240個をちゃんと使わせるための設定。」のコメント欄を見ると、誤植があるようだった。

また、誤植修正後も接続状況が不安定なので出力されるiptablesの確認したところ、範囲外のポートを指定していることが判明

(2021/05/21追記: この差異はV6プラス/BIGLOBEとOCN バーチャルコネクトとの仕様の違いとのこと)

修正版として https://gist.github.com/osakanataro/a9ba5ded340070b8e6abc28969d7ae4f を作成した。

修正点
「units=63」→「units=15」
「portl=expr $rule \* 1024 + $PSID \* 16」→「portl=expr $rule \* 4096 + $PSID \* 16

IP4,PSID, LANDEV,WAN6DEV,TUNDEVは自分の環境に合わせて変更すること
IP4, PSIDがわからない場合は http://ipv4.web.fc2.com/map-e.html で確認すること

#units=63
units=15

IP4='xxx.xxx.xxx.xxx'
PSID=110
LANDEV='br-lan'
WAN6DEV='eth0'
TUNDEV='map-MAP'

iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -t nat -F POSTROUTING

rule=1
while [ $rule -le $units  ] ; do
  mark=`expr $rule + 16`
  pn=`expr $rule - 1`
  portl=`expr $rule \* 4096 + $PSID \* 16`
  portr=`expr $portl + 15`

  echo iptables -t nat -A PREROUTING -p tcp -m statistic --mode nth --every $units --packet $pn -j MARK --set-mark $mark
  iptables -t nat -A PREROUTING -p tcp -m statistic --mode nth --every $units --packet $pn -j MARK --set-mark $mark
  echo iptables -t nat -A OUTPUT -p tcp -m statistic --mode nth --every $units --packet $pn -j MARK --set-mark $mark
  iptables -t nat -A OUTPUT -p tcp -m statistic --mode nth --every $units --packet $pn -j MARK --set-mark $mark

  echo iptables -t nat -A POSTROUTING -p icmp -m connlimit --connlimit-daddr --connlimit-upto 16 --connlimit-mask 0 -o $TUNDEV -j SNAT --to $IP4:$portl-$portr
  iptables -t nat -A POSTROUTING -p icmp -m connlimit --connlimit-daddr --connlimit-upto 16 --connlimit-mask 0 -o $TUNDEV -j SNAT --to $IP4:$portl-$portr
  echo iptables -t nat -A POSTROUTING -p tcp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  iptables -t nat -A POSTROUTING -p tcp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  echo iptables -t nat -A POSTROUTING -p udp -m connlimit --connlimit-daddr --connlimit-upto 16 --connlimit-mask 0 -o $TUNDEV -j SNAT --to $IP4:$portl-$portr
  iptables -t nat -A POSTROUTING -p udp -m connlimit --connlimit-daddr --connlimit-upto 16 --connlimit-mask 0 -o $TUNDEV -j SNAT --to $IP4:$portl-$portr

  rule=`expr $rule + 1`
done

上記を

openwrtの[ネットワーク]-[ファイヤーウォール]-[Custom Rules] (/etc/firewall.user) に記載する。

また、[システム]-[スタートアップ]-[ローカルスタートアップ] (/etc/rc.local)の exit 0よりも前に下記2行を追加する

sleep 30
sh /etc/firewall.user

また、iptablesのstatisticモジュールはiptables-mod-ipoptに入っているが、標準では導入されていないため、下記のようにインストールする。

root@nanopi:~# opkg install iptables-mod-ipopt
Installing iptables-mod-ipopt (1.8.7-1) to root...
Downloading https://downloads.openwrt.org/releases/21.02.0-rc1/targets/rockchip/armv8/packages/iptables-mod-ipopt_1.8.7-1_aarch64_generic.ipk
Installing kmod-ipt-ipopt (5.4.111-1) to root...
Downloading https://downloads.openwrt.org/releases/21.02.0-rc1/targets/rockchip/armv8/packages/kmod-ipt-ipopt_5.4.111-1_aarch64_generic.ipk
Configuring kmod-ipt-ipopt.
Configuring iptables-mod-ipopt.
root@nanopi:~#

これで、とりあえずニチバンもスムースに開けるようになった。


失敗例コレクション

「プロトコル:MAP / LW4over6」が選択肢にない

画像

mapパッケージインストール後、openWRTを再起動するまで、このプロトコル一覧は更新されませんでした。

再起動すると表示されるようになりました。

「MAP rule is invalidError: MAP rule is invalid」になる

「MAP rule is invalidError: MAP rule is invalid」はWAN6インタフェースの詳細設定で「委任されたカスタムIPv6プレフィックス」(ip6prefix)を設定していない場合に出力されました。

invalidと表示された時のWAN6インタフェースの「IPv6-PD」に表示されている値を突っ込んだら、invalidが解消されました。

設定ファイル的には/etc/config/networkのWAN6に関する記述に「list ip6prefix」を追加する感じです。

LAN内にDHCPv6アドレスが配布されない

nanoPi上は特に問題無くIPv6アドレスが割り当てられており動作もしているが、LAN内のクライアントにDHCPv6アドレスが配布されていないという状態になった。

これは、LANインタフェースの[DHCPサーバ]-[IPv6設定]にある「マスター」にチェックを一度でも入れてしまうと発生する事象だった。

一度チェックを入れて保存すると、/etc/config/dhcp に以下の様な設定が行われる。

<略>
config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ra_slaac '1'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'
        option ra_maxinterval '600'
        option ra_mininterval '200'
        option ra_lifetime '1800'
        option ra_mtu '0'
        option ra_hoplimit '0'
        option ra 'relay'
        option dhcpv6 'relay'
        option ndp 'relay'
        option master '1'
<略>

この後、マスターのチェックを外すと、以下の様になる

<略>
config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ra_slaac '1'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'
        option ra_maxinterval '600'
        option ra_mininterval '200'
        option ra_lifetime '1800'
        option ra_mtu '0'
        option ra_hoplimit '0'
        option ra 'relay'
        option dhcpv6 'relay'
        option ndp 'relay'
<略>

ここで問題となったのは以下の値でした。

        option ra_slaac '1'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'
        option ra_maxinterval '600'
        option ra_mininterval '200'
        option ra_lifetime '1800'
        option ra_mtu '0'
        option ra_hoplimit '0'

これらの値が存在しているとDHCPv6アドレスのLAN内への配布がうまくいきませんでした。

/etc/config/networkを編集したあと、下記で反映することで動作するようになりました。

# uci commit dhcp
# /etc/init.d/odhcpd restart
# /etc/init.d/network restart

参考: IPv6 working on router but not on clients

MAP-E接続が開始されない

GL-MV1000からnanoPi R2Sに置き換えてすぐは、IPv6接続はできているが、MAP-E接続が開始されない、という状態になった。

ONUの電源を切り、5分ぐらいしてから電源を入れnanoPiも起動するとMAP-E接続が可能となった。

おそらく、接続先でのセッション認識が消えないと別のデバイスでの接続が行うことができないようだ。(エラーにもならないので詳細は不明)


参考資料

/etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd23:66f8:d98f::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.1.1'
        option ip6assign '60'

config device 'lan_eth1_dev'
        option name 'eth1'
        option macaddr '1a:e4:a4:xx:xx:xx'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'
        option auto '0'

config device 'wan_eth0_dev'
        option name 'eth0'
        option macaddr '1a:e4:a4:xx:xx:xx'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'
        list ip6prefix 'xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/56'

config interface 'MAP'
        option proto 'map'
        option maptype 'map-e'
        option peeraddr 'xxxx:xxxx:xxxx:xxxx::64'
        option ipaddr 'xxx.xxx.xxx.xxx'
        option ip4prefixlen '15'
        option ip6prefix '240b:10::'
        option ip6prefixlen '31'
        option ealen '25'
        option psidlen '8'
        option offset '4'
        option tunlink 'wan6'
        option legacymap '1'

/etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ra 'relay'
        option dhcpv6 'relay'
        option ndp 'relay'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config dhcp 'wan6'
        option dhcpv6 'relay'
        option ra 'relay'
        option ndp 'relay'
        option master '1'
        option interface 'wan6'
        option start '100'
        option limit '150'
        option leasetime '12h'

AMD B450チップセット+Ryzen 3 2200G環境でWSL2が 0x80370102で使えない


AMD B450チップセットを使っているASUS TUF B450M-PLUS GAMING にRyzen 3 2200Gを載せている環境で、WSL2を試そうとした。

BIOSのCPU設定にて「SVM Mode」を「Enabled」に変更して、

画像

Windows 10 用 Windows Subsystem for Linux のインストール ガイドの手順に従ってWSL2をセットアップしていく・・・

画像

Ubuntu が0x80370102 のエラーで起動しない。

画像

冒頭に写真に出したように仮想化は有効にしている。

タスクマネージャのパフォーマンスのCPUでも「仮想化:有効」表示を確認

画像

msinfo32でも仮想化の有効を確認

画像

万策尽きたか・・・というところで、AMD Radeon Softwareパッケージを再インストールすることで解決するかも?という話を聞いて、AMD Ryzen™ 3 2200G Previous Drivers からRadeon Softwareをダウンロード/インストール/再起動してみたところ、今度はWSL2が正常に起動することが確認出来た。

次はWSLgだな・・・

タッチパネル一体型業務向けPC MSI-R104I8BD1を入手したのでWindows/Ubuntu/ChromeOSで起動してみた


sueboさんがうっかり落札してしまった14台のタッチパネル一体型PCを2台譲ってもらった。

現状は全台はけた、ということですが、この機種およびマザーボードについてぐぐっても情報がほとんど出てこないので、ここにメモとして残しておきます。

目次
 スペックについて
 中をあける方法
 USBメモリからの起動について
 Windows 10の起動状況
 Ubuntu 20.04の起動状況
 ChromeOSの起動状況
 BIOSアップデートについて

スペックについて

マザーボードはMSI MS-98I8 で、この一体型PCは下記の様なスペックになっている。

Celeron N3160
DDR3x1 / Mini-PCIex1 / mSATAx1 / SATAx1 / DPx1 / HDMIx1 / GbEx2
10インチ SVGA(800×600)+タッチパネル
Windows 10 IoT Enterprise 2016 LTSB ライセンスシール
メモリ/ディスクは搭載なしだが、CF/SATA変換ボードと2.5インチHDD接続用ケーブルが残存
電源は12V単一。一般的なコネクタではなく電線を直接入力するタイプ
ただ、マザーボード自体の仕様としては9V~36Vと書いてある

中をあける方法

抜けたりするのを防ぐため中のケーブルのコネクタ部分が固められています。

とりあえず中身を確認するためには、下記のような感じで開けてみてから、その次をどうしていくかを考えた方がいいと思います。

画像

このような感じであけるには以下の赤い丸印のネジを外します。

画像
画像
画像

中をあけたらメモリとディスクなどをいれて単体で動作できるようにしましょう。

USBメモリからの起動について

BIOSメニューからUSBメモリを選んでもなんか普通のマザーボードと同様にUSBメモリからの起動になりません。(後述のWindows, Ubuntu, ChromeOSで同じ)

起動順序を「UEFI: Built-IN EFI Shell」を一番最初にして起動します。

画像

EFI Shellが起動してくるので、何かキーを押してEFI Shellプロンプトで止めます。

画像

今回はUSBメモリが「fs1」で認識されていたので「fs1:」でドライブを移動したあと、

「efi\boot\bootx64.efi」を実行するとUSBメモリからの起動が開始されます。

下記の写真では「cd efi」「cd boot」でディレクトリ移動してから「bootx64.efi」を実行しています。

画像

なお、このEFI Shellはタブキー補完が効くのでefiを指定する際に「e」を入力したあとにタブキーを押すと「efi」と変換されます。

また、fs1:で移動した後にそこにどんなディレクトリ/ファイルがあるかを確認するには「ls」を実行することで確認出来ます。

なお、USBメモリに startup.nsh というファイルを置いて、「.\efi\boot\bootx64.efi」とかかいておけば自動起動されるんじゃないかなぁとは思います。

参考:拡張ファームウェアインターフェイス (EFI) インテル®の基本手順サーバーボード

Windows 10の起動状況

Windows 10 IOT ENT 2016 LTSBのプロダクトキーがついていますが、このプロダクトキーが通るのは、「Windows 10 IOT ENT 2016 LTSBメディア」か「Windows 10 ENT 2016 LTSB」だけのようです。「Windows 10 Enterpriseメディア」や「Windows 10 Enterprise 2019 LTSCメディア」では通りませんでした。

「Windows 10 IOT ENT 2016 LTSBメディア」を含めて2016年頃のWindows 10メディアだとデバイスが2個△マークとなりますが、タッチパネル/イーサネット含めて動作しています。

2017年以降のWindows 10 メディアを使ったり、Windows Updateを実行すると、全デバイスが正常に認識されますので、問題はありません。

画像

なお、Windows 10 IOT ENT 2016 LTSBのプロダクトキーを入力してライセンス認証を行った場合、「Windows 10 Enterprise 2016 LTSB」として認識されています。

画像

なお、Windows 10 Enterprise 2016 LTSBのライフサイクル ポリシーはメインストリームが2021/10/12、延長が2026/10/13となっています。

画像

Ubuntu 20.04の起動状況

普通にインストールすると、タッチパネル用のドライバが認識されているもののX-Window上でタッチパネル動作を認識できていません。

画像
画像

この問題についてはxserver-xorg-input-evdevをインストールして、xserver-xorg-input-libinputを削除して対応できました。(xinput-calibratorはタッチパネルの位置調整用コマンドxinput_calibratorをインストールするために追加している)

$ sudo apt install xserver-xorg-input-evdev xinput-calibrator
$ sudo apt remove xserver-xorg-input-libinput

これを行った後、再起動するとタッチパネルが動作するようになっていると思います。

画像

Ubuntuのオンスクリーンキーボードは、「設定」の「アクセスビリティ」から設定できますが、最初のログイン画面では動いていないようです。

とりあえず、自動ログインさせてログイン画面をスキップする設定をGUIで行おうとしたところ画面が表示できていない・・・

画像

このため設定ファイル /etc/gdm3/custom.conf を直接編集し、下記の設定を行いました。

[daemon]
AutomaticLoginEnable=yes
AutomaticLogin =ユーザ名

ChromeOSの起動状況

純正ChromeOSのリカバリイメージを元に汎用ChromeOS起動ディスクを作成するbrunchを使ってUSBメモリを作成して起動したもの。

rammus用リカバリイメージを元に作成してあるUSBメモリがあったので起動してみたところ、標準状態でそのままタッチパネルもLineOUTからのオーディオ出力も普通に使える状態で起動してきました。

画像

ただ、Chrome OSは、800×600解像度で使うものではない感じですね・・・


BIOSアップデートについて

マザーボードの製品ページを開いて少しスクロールすると上側に「Download」リンクが現れ、そこにBIOSアップデートが提供されており、Version 170と書いてある。

ZIPファイルをダウンロードするとバージョンアップ履歴のテキストファイルがあり、Version 170とは、E98I8IMS V1.7ということのようだ

画像

届いたものを確認すると E98I8IMS V1.6となっているので、少し古いバージョンということになっている。

画像

BIOSアップデータはEFIで実行する形式なので、EFI Shellから実行する必要があります。

EFI ShellではFAT32領域しか見れず、NTFSやLinux ext4領域などは使えない、という制約があるので、FAT32でフォーマットしたUSBメモリにBIOSアップデート関連ファイルを展開して使用します。

USBメモリをさして、EFI Shellに入ってから下記のように入力してアップデートを実施します

Shell> fs1:
fs1:\> cd E98I8IMS170
fs1:\> EFUx64.EFI E98I8IMS.170
画像
画像

アップデートが終わったら再起動します。

バージョンを確認するとV1.7に変わったことが確認できます。

画像

CentOS8をAlmaLinux8にコンバートしてみた


CentOS8の代替ディストリビューションの1つ、 AlmaLinuxのβ版がダウンロードできるようになったのでインストールしてみようとした。

が・・・ESXi7.0U1上でISOからインストールしようとしたけど、AlmaLinux-8.3-beta-1-x86_64-boot.iso 、AlmaLinux-8.3-beta-1-x86_64-dvd1.iso、AlmaLinux-8.3-beta-1-x86_64-minimal.iso のどれを使ってもメディアとして認識してくれず起動できない。

仕方が無いのでCentOS8.3のメディアでインストールしてから切り替えてみることにした。

なお、あとで判明したのだが、起動できないのはAlmaLinux 8は現段階ではセキュアブート非対応であることが原因で、仮想マシンオプションで「セキュアブート:有効」設定を無効に変更することで起動する様になった。

基本手順は「CentOS8からOracle Linux 8への移行2(成功例/非公式手順/EFI環境用

インストールが終わったCentOS8でAlmaLinux8のAlmaLinux-8.3-beta-1-x86_64-dvd1.isoを/mntにマウントしてから、下記の /etc/yum.repos.d/media.repo を用意

[root@almalinux ~]# cat /etc/yum.repos.d/media.repo
[media]
name=AlmaLinux 8 Media
baseurl=file:///mnt/BaseOS
gpgcheck=0
[root@almalinux ~]#

続いてISO内のalmalinux-releaseをインストール。

[root@almalinux ~]# rpm -Uvh --force /mnt/BaseOS/Packages/almalinux-release-8.3-2.el8.x86_64.rpm
警告: /mnt/BaseOS/Packages/almalinux-release-8.3-2.el8.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID c21ad6ea: NOKEY
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:almalinux-release-8.3-2.el8      ################################# [100%]
[root@almalinux ~]#

CentOS8のcentos-linux-releaseと centos-linux-reposを削除

[root@almalinux ~]# dnf remove centos-linux-release centos-linux-repos
Repository baseos is listed more than once in the configuration
Repository appstream is listed more than once in the configuration
Repository powertools is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository baseos-source is listed more than once in the configuration
Repository appstream-source is listed more than once in the configuration
Repository extras-source is listed more than once in the configuration
依存関係が解決しました。
================================================================================
 パッケージ                Arch        バージョン          リポジトリー   サイズ
================================================================================
削除中:
 centos-linux-release      noarch      8.3-1.2011.el8      @anaconda       25 k
 centos-linux-repos        noarch      8-2.el8             @anaconda       26 k
未使用の依存関係の削除:
 centos-gpg-keys           noarch      1:8-2.el8           @anaconda      3.3 k

トランザクションの概要
================================================================================
削除  3 パッケージ

解放された容量: 54 k
これでよろしいですか? [y/N]: y
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                        1/1
  scriptletの実行中: centos-linux-release-8.3-1.2011.el8.noarch             1/1
  削除             : centos-linux-release-8.3-1.2011.el8.noarch             1/3
  削除             : centos-linux-repos-8-2.el8.noarch                      2/3
  削除             : centos-gpg-keys-1:8-2.el8.noarch                       3/3
  scriptletの実行中: centos-gpg-keys-1:8-2.el8.noarch                       3/3
  検証             : centos-gpg-keys-1:8-2.el8.noarch                       1/3
  検証             : centos-linux-release-8.3-1.2011.el8.noarch             2/3
  検証             : centos-linux-repos-8-2.el8.noarch                      3/3

削除しました:
  centos-gpg-keys-1:8-2.el8.noarch   centos-linux-release-8.3-1.2011.el8.noarch
  centos-linux-repos-8-2.el8.noarch

完了しました!
[root@almalinux ~]#

この段階でのレポジトリ登録を確認

[root@almalinux ~]# ls /etc/yum.repos.d/
almalinux.repo  media.repo
[root@almalinux ~]# dnf repolist
repo id                         repo の名前
appstream                       AlmaLinux 8.3 - AppStream
baseos                          AlmaLinux 8.3 - BaseOS
extras                          AlmaLinux 8.3 - Extras
media                           AlmaLinux 8 Media
powertools                      AlmaLinux 8.3 - PowerTools
[root@almalinux ~]#

「dnf distro-sync」を実行してCentOS由来のパッケージをAlmaLinuxのパッケージに入れ替える。

[root@almalinux ~]# dnf distro-sync
AlmaLinux 8.3 - BaseOS                          2.8 MB/s | 2.6 MB     00:00
AlmaLinux 8.3 - AppStream                       5.1 MB/s | 6.5 MB     00:01
AlmaLinux 8.3 - PowerTools                      2.0 MB/s | 1.9 MB     00:00
AlmaLinux 8.3 - Extras                          4.5 kB/s | 1.2 kB     00:00
依存関係が解決しました。
================================================================================
 パッケージ               Arch   バージョン                     Repo      サイズ
================================================================================
アップグレード:
 NetworkManager           x86_64 1:1.26.0-12.el8_3              baseos    2.4 M
 NetworkManager-libnm     x86_64 1:1.26.0-12.el8_3              baseos    1.7 M
 NetworkManager-team      x86_64 1:1.26.0-12.el8_3              baseos    141 k
 NetworkManager-tui       x86_64 1:1.26.0-12.el8_3              baseos    320 k
 curl                     x86_64 7.61.1-14.el8_3.1              baseos    352 k
 efi-filesystem           noarch 3-2.el8.alma                   baseos    7.9 k
 freetype                 x86_64 2.9.1-4.el8_3.1                baseos    393 k
 gnutls                   x86_64 3.6.14-7.el8_3                 baseos    1.0 M
 grub2-common             noarch 1:2.02-90.el8.alma             baseos    884 k
 grub2-efi-x64            x86_64 1:2.02-90.el8.alma             baseos    405 k
 grub2-tools              x86_64 1:2.02-90.el8.alma             baseos    2.0 M
 grub2-tools-extra        x86_64 1:2.02-90.el8.alma             baseos    1.1 M
 grub2-tools-minimal      x86_64 1:2.02-90.el8.alma             baseos    204 k
 iptables                 x86_64 1.8.4-15.el8_3.3               baseos    584 k
 iptables-ebtables        x86_64 1.8.4-15.el8_3.3               baseos     71 k
 iptables-libs            x86_64 1.8.4-15.el8_3.3               baseos    106 k
 kexec-tools              x86_64 2.0.20-34.el8_3.1              baseos    496 k
 libcurl                  x86_64 7.61.1-14.el8_3.1              baseos    298 k
 libgcc                   x86_64 8.3.1-5.1.el8.alma             baseos     77 k
 libgomp                  x86_64 8.3.1-5.1.el8.alma             baseos    203 k
 libreport-filesystem     x86_64 2.9.5-15.el8.alma              baseos     20 k
 libselinux               x86_64 2.9-4.el8_3                    baseos    165 k
 libselinux-utils         x86_64 2.9-4.el8_3                    baseos    242 k
 libstdc++                x86_64 8.3.1-5.1.el8.alma             baseos    450 k
 microcode_ctl            x86_64 4:20200609-2.20201112.1.el8_3  baseos    4.6 M
 openssl                  x86_64 1:1.1.1g-12.el8_3              baseos    706 k
 openssl-libs             x86_64 1:1.1.1g-12.el8_3              baseos    1.5 M
 python3-libselinux       x86_64 2.9-4.el8_3                    baseos    282 k
 shim-x64                 x86_64 15-16.el8.alma                 baseos    657 k
 sudo                     x86_64 1.8.29-6.el8_3.1               baseos    922 k
 systemd                  x86_64 239-41.el8_3.1                 baseos    3.5 M
 systemd-libs             x86_64 239-41.el8_3.1                 baseos    1.1 M
 systemd-pam              x86_64 239-41.el8_3.1                 baseos    456 k
 systemd-udev             x86_64 239-41.el8_3.1                 baseos    1.4 M
 tuned                    noarch 2.14.0-3.el8_3.1.alma          baseos    291 k
 tzdata                   noarch 2021a-1.el8                    baseos    472 k
再インストール:
 acl                      x86_64 2.2.53-1.el8                   baseos     81 k
 audit                    x86_64 3.0-0.17.20191104git1c2f876.el8
                                                                baseos    255 k
 audit-libs               x86_64 3.0-0.17.20191104git1c2f876.el8
                                                                baseos    117 k
 authselect               x86_64 1.2.1-2.el8                    baseos    114 k
 authselect-libs          x86_64 1.2.1-2.el8                    baseos    210 k
 basesystem               noarch 11-5.el8                       baseos     10 k
 bash                     x86_64 4.4.19-12.el8                  baseos    1.5 M
 bind-export-libs         x86_64 32:9.11.20-5.el8               baseos    1.1 M
 biosdevname              x86_64 0.7.3-2.el8                    baseos     44 k
 brotli                   x86_64 1.0.6-2.el8                    baseos    322 k
 bzip2-libs               x86_64 1.0.6-26.el8                   baseos     48 k
 c-ares                   x86_64 1.13.0-5.el8                   baseos     93 k
 ca-certificates          noarch 2020.2.41-80.0.el8_2           baseos    391 k
 chkconfig                x86_64 1.13-2.el8                     baseos    194 k
 coreutils                x86_64 8.30-8.el8                     baseos    1.2 M
 coreutils-common         x86_64 8.30-8.el8                     baseos    2.0 M
 cpio                     x86_64 2.12-8.el8                     baseos    265 k
 cracklib                 x86_64 2.9.6-15.el8                   baseos     93 k
 cracklib-dicts           x86_64 2.9.6-15.el8                   baseos    4.0 M
 cronie                   x86_64 1.5.2-4.el8                    baseos    118 k
 cronie-anacron           x86_64 1.5.2-4.el8                    baseos     41 k
 crontabs                 noarch 1.11-16.20150630git.el8        baseos     25 k
 crypto-policies          noarch 20200713-1.git51d1222.el8      baseos     61 k
 crypto-policies-scripts  noarch 20200713-1.git51d1222.el8      baseos     67 k
 cryptsetup-libs          x86_64 2.3.3-2.el8                    baseos    469 k
 cyrus-sasl-lib           x86_64 2.1.27-5.el8                   baseos    123 k
 dbus                     x86_64 1:1.12.8-11.el8                baseos     40 k
 dbus-common              noarch 1:1.12.8-11.el8                baseos     45 k
 dbus-daemon              x86_64 1:1.12.8-11.el8                baseos    239 k
 dbus-glib                x86_64 0.110-2.el8                    baseos    127 k
 dbus-libs                x86_64 1:1.12.8-11.el8                baseos    183 k
 dbus-tools               x86_64 1:1.12.8-11.el8                baseos     84 k
 dbxtool                  x86_64 8-5.el8                        baseos     37 k
 device-mapper            x86_64 8:1.02.171-5.el8               baseos    373 k
 device-mapper-event      x86_64 8:1.02.171-5.el8               baseos    267 k
 device-mapper-event-libs x86_64 8:1.02.171-5.el8               baseos    266 k
 device-mapper-libs       x86_64 8:1.02.171-5.el8               baseos    405 k
 device-mapper-persistent-data
                          x86_64 0.8.5-4.el8                    baseos    468 k
 dhcp-client              x86_64 12:4.3.6-41.el8                baseos    317 k
 dhcp-common              noarch 12:4.3.6-41.el8                baseos    206 k
 dhcp-libs                x86_64 12:4.3.6-41.el8                baseos    147 k
 diffutils                x86_64 3.6-6.el8                      baseos    361 k
 dmidecode                x86_64 1:3.2-6.el8                    baseos     91 k
 dnf                      noarch 4.2.23-4.el8                   baseos    512 k
 dnf-data                 noarch 4.2.23-4.el8                   baseos    148 k
 dnf-plugins-core         noarch 4.0.17-5.el8                   baseos     65 k
 dosfstools               x86_64 4.1-6.el8                      baseos    121 k
 dracut                   x86_64 049-95.git20200804.el8         baseos    366 k
 dracut-config-rescue     x86_64 049-95.git20200804.el8         baseos     55 k
 dracut-network           x86_64 049-95.git20200804.el8         baseos    102 k
 dracut-squash            x86_64 049-95.git20200804.el8         baseos     56 k
 e2fsprogs                x86_64 1.45.6-1.el8                   baseos    1.0 M
 e2fsprogs-libs           x86_64 1.45.6-1.el8                   baseos    232 k
 efibootmgr               x86_64 16-1.el8                       baseos     47 k
 efivar                   x86_64 37-4.el8                       baseos     35 k
 efivar-libs              x86_64 37-4.el8                       baseos    107 k
 elfutils-debuginfod-client
                          x86_64 0.180-1.el8                    baseos     63 k
 elfutils-default-yama-scope
                          noarch 0.180-1.el8                    baseos     48 k
 elfutils-libelf          x86_64 0.180-1.el8                    baseos    214 k
 elfutils-libs            x86_64 0.180-1.el8                    baseos    292 k
 ethtool                  x86_64 2:5.0-2.el8                    baseos    151 k
 expat                    x86_64 2.2.5-4.el8                    baseos    110 k
 file                     x86_64 5.33-16.el8                    baseos     76 k
 file-libs                x86_64 5.33-16.el8                    baseos    542 k
 filesystem               x86_64 3.8-3.el8                      baseos    1.1 M
 findutils                x86_64 1:4.6.0-20.el8                 baseos    528 k
 firewalld                noarch 0.8.2-2.el8                    baseos    487 k
 firewalld-filesystem     noarch 0.8.2-2.el8                    baseos     75 k
 fuse                     x86_64 2.9.7-12.el8                   baseos     82 k
 fuse-common              x86_64 3.2.1-12.el8                   baseos     21 k
 fuse-libs                x86_64 2.9.7-12.el8                   baseos    102 k
 gawk                     x86_64 4.2.1-1.el8                    baseos    1.1 M
 gdbm                     x86_64 1:1.18-1.el8                   baseos    130 k
 gdbm-libs                x86_64 1:1.18-1.el8                   baseos     60 k
 geolite2-city            noarch 20180605-1.el8                 baseos     19 M
 geolite2-country         noarch 20180605-1.el8                 baseos    1.0 M
 gettext                  x86_64 0.19.8.1-17.el8                baseos    1.1 M
 gettext-libs             x86_64 0.19.8.1-17.el8                baseos    312 k
 glib2                    x86_64 2.56.4-8.el8                   baseos    2.5 M
 glibc                    x86_64 2.28-127.el8                   baseos    3.6 M
 glibc-common             x86_64 2.28-127.el8                   baseos    1.3 M
 glibc-langpack-ja        x86_64 2.28-127.el8                   baseos    329 k
 gmp                      x86_64 1:6.1.2-10.el8                 baseos    322 k
 gnupg2                   x86_64 2.2.20-2.el8                   baseos    2.4 M
 gnupg2-smime             x86_64 2.2.20-2.el8                   baseos    283 k
 gobject-introspection    x86_64 1.56.1-1.el8                   baseos    255 k
 gpgme                    x86_64 1.13.1-3.el8                   baseos    335 k
 grep                     x86_64 3.1-6.el8                      baseos    274 k
 groff-base               x86_64 1.22.3-18.el8                  baseos    1.0 M
 grubby                   x86_64 8.40-41.el8                    baseos     49 k
 gzip                     x86_64 1.9-9.el8                      baseos    166 k
 hardlink                 x86_64 1:1.3-6.el8                    baseos     29 k
 hdparm                   x86_64 9.54-2.el8                     baseos    100 k
 hostname                 x86_64 3.20-6.el8                     baseos     32 k
 hwdata                   noarch 0.314-8.6.el8                  baseos    1.6 M
 ima-evm-utils            x86_64 1.1-5.el8                      baseos     55 k
 info                     x86_64 6.5-6.el8                      baseos    199 k
 initscripts              x86_64 10.00.9-1.el8                  baseos    338 k
 ipcalc                   x86_64 0.2.4-4.el8                    baseos     38 k
 iprutils                 x86_64 2.4.19-1.el8                   baseos    255 k
 ipset                    x86_64 7.1-1.el8                      baseos     45 k
 ipset-libs               x86_64 7.1-1.el8                      baseos     71 k
 iputils                  x86_64 20180629-2.el8                 baseos    148 k
 irqbalance               x86_64 2:1.4.0-4.el8                  baseos     55 k
 iwl100-firmware          noarch 39.31.5.1-99.el8.1             baseos    168 k
 iwl1000-firmware         noarch 1:39.31.5.1-99.el8.1           baseos    231 k
 iwl105-firmware          noarch 18.168.6.1-99.el8.1            baseos    252 k
 iwl135-firmware          noarch 18.168.6.1-99.el8.1            baseos    261 k
 iwl2000-firmware         noarch 18.168.6.1-99.el8.1            baseos    255 k
 iwl2030-firmware         noarch 18.168.6.1-99.el8.1            baseos    264 k
 iwl3160-firmware         noarch 1:25.30.13.0-99.el8.1          baseos    1.7 M
 iwl5000-firmware         noarch 8.83.5.1_1-99.el8.1            baseos    312 k
 iwl5150-firmware         noarch 8.24.2.2-99.el8.1              baseos    165 k
 iwl6000-firmware         noarch 9.221.4.1-99.el8.1             baseos    185 k
 iwl6000g2a-firmware      noarch 18.168.6.1-99.el8.1            baseos    328 k
 iwl6050-firmware         noarch 41.28.5.1-99.el8.1             baseos    261 k
 iwl7260-firmware         noarch 1:25.30.13.0-99.el8.1          baseos     15 M
 jansson                  x86_64 2.11-3.el8                     baseos     46 k
 json-c                   x86_64 0.13.1-0.2.el8                 baseos     40 k
 kbd                      x86_64 2.0.4-10.el8                   baseos    390 k
 kbd-legacy               noarch 2.0.4-10.el8                   baseos    481 k
 kbd-misc                 noarch 2.0.4-10.el8                   baseos    1.5 M
 kernel                   x86_64 4.18.0-240.el8                 baseos    4.3 M
 kernel-core              x86_64 4.18.0-240.el8                 baseos     30 M
 kernel-modules           x86_64 4.18.0-240.el8                 baseos     26 M
 kernel-tools             x86_64 4.18.0-240.el8                 baseos    4.5 M
 kernel-tools-libs        x86_64 4.18.0-240.el8                 baseos    4.3 M
 keyutils-libs            x86_64 1.5.10-6.el8                   baseos     33 k
 kmod                     x86_64 25-16.el8                      baseos    127 k
 kmod-libs                x86_64 25-16.el8                      baseos     69 k
 kpartx                   x86_64 0.8.4-5.el8                    baseos    108 k
 krb5-libs                x86_64 1.18.2-5.el8                   baseos    837 k
 langpacks-ja             noarch 1.0-12.el8                     appstream 9.4 k
 less                     x86_64 530-1.el8                      baseos    164 k
 libacl                   x86_64 2.2.53-1.el8                   baseos     35 k
 libaio                   x86_64 0.3.112-1.el8                  baseos     32 k
 libarchive               x86_64 3.3.2-9.el8                    baseos    357 k
 libassuan                x86_64 2.5.1-3.el8                    baseos     83 k
 libattr                  x86_64 2.4.48-3.el8                   baseos     27 k
 libbasicobjects          x86_64 0.1.1-39.el8                   baseos     31 k
 libblkid                 x86_64 2.32.1-24.el8                  baseos    216 k
 libcap                   x86_64 2.26-4.el8                     baseos     59 k
 libcap-ng                x86_64 0.7.9-5.el8                    baseos     33 k
 libcollection            x86_64 0.7.0-39.el8                   baseos     48 k
 libcom_err               x86_64 1.45.6-1.el8                   baseos     48 k
 libcomps                 x86_64 0.1.11-4.el8                   baseos     81 k
 libcroco                 x86_64 0.6.12-4.el8_2.1               baseos    112 k
 libdaemon                x86_64 0.14-15.el8                    baseos     36 k
 libdb                    x86_64 5.3.28-39.el8                  baseos    749 k
 libdb-utils              x86_64 5.3.28-39.el8                  baseos    149 k
 libdhash                 x86_64 0.5.0-39.el8                   baseos     34 k
 libdnf                   x86_64 0.48.0-5.el8                   baseos    649 k
 libdrm                   x86_64 2.4.101-1.el8                  appstream 164 k
 libedit                  x86_64 3.1-23.20170329cvs.el8         baseos    102 k
 libestr                  x86_64 0.1.10-1.el8                   appstream  27 k
 libevent                 x86_64 2.1.8-5.el8                    baseos    253 k
 libfastjson              x86_64 0.99.8-2.el8                   appstream  37 k
 libfdisk                 x86_64 2.32.1-24.el8                  baseos    249 k
 libffi                   x86_64 3.1-22.el8                     baseos     37 k
 libgcrypt                x86_64 1.8.5-4.el8                    baseos    462 k
 libgpg-error             x86_64 1.31-1.el8                     baseos    242 k
 libidn2                  x86_64 2.2.0-1.el8                    baseos     93 k
 libini_config            x86_64 1.3.1-39.el8                   baseos     70 k
 libkcapi                 x86_64 1.2.0-2.el8                    baseos     48 k
 libkcapi-hmaccalc        x86_64 1.2.0-2.el8                    baseos     31 k
 libksba                  x86_64 1.3.5-7.el8                    baseos    134 k
 libldb                   x86_64 2.1.3-2.el8                    baseos    178 k
 libmaxminddb             x86_64 1.2.0-10.el8                   baseos     33 k
 libmetalink              x86_64 0.1.3-7.el8                    baseos     32 k
 libmnl                   x86_64 1.0.4-6.el8                    baseos     30 k
 libmodulemd              x86_64 2.9.4-2.el8                    baseos    188 k
 libmount                 x86_64 2.32.1-24.el8                  baseos    231 k
 libmspack                x86_64 0.7-0.3.alpha.el8.4            appstream  71 k
 libndp                   x86_64 1.7-3.el8                      baseos     41 k
 libnetfilter_conntrack   x86_64 1.0.6-5.el8                    baseos     65 k
 libnfnetlink             x86_64 1.0.1-13.el8                   baseos     33 k
 libnfsidmap              x86_64 1:2.3.3-35.el8                 baseos    119 k
 libnftnl                 x86_64 1.1.5-4.el8                    baseos     83 k
 libnghttp2               x86_64 1.33.0-3.el8_2.1               baseos     77 k
 libnl3                   x86_64 3.5.0-1.el8                    baseos    324 k
 libnl3-cli               x86_64 3.5.0-1.el8                    baseos    198 k
 libnsl2                  x86_64 1.2.0-2.20180605git4a062cf.el8 baseos     58 k
 libpath_utils            x86_64 0.2.1-39.el8                   baseos     34 k
 libpcap                  x86_64 14:1.9.1-4.el8                 baseos    166 k
 libpciaccess             x86_64 0.14-1.el8                     baseos     32 k
 libpipeline              x86_64 1.5.0-2.el8                    baseos     54 k
 libpng                   x86_64 2:1.6.34-5.el8                 baseos    126 k
 libpsl                   x86_64 0.20.2-6.el8                   baseos     61 k
 libpwquality             x86_64 1.4.0-9.el8                    baseos    102 k
 libref_array             x86_64 0.1.5-39.el8                   baseos     33 k
 librepo                  x86_64 1.12.0-2.el8                   baseos     89 k
 libseccomp               x86_64 2.4.3-1.el8                    baseos     67 k
 libsecret                x86_64 0.18.6-1.el8                   baseos    163 k
 libsemanage              x86_64 2.9-3.el8                      baseos    164 k
 libsepol                 x86_64 2.9-1.el8                      baseos    340 k
 libsigsegv               x86_64 2.11-5.el8                     baseos     30 k
 libsmartcols             x86_64 2.32.1-24.el8                  baseos    175 k
 libsolv                  x86_64 0.7.11-1.el8                   baseos    358 k
 libss                    x86_64 1.45.6-1.el8                   baseos     53 k
 libssh                   x86_64 0.9.4-2.el8                    baseos    214 k
 libssh-config            noarch 0.9.4-2.el8                    baseos     18 k
 libsss_autofs            x86_64 2.3.0-9.el8                    baseos    108 k
 libsss_certmap           x86_64 2.3.0-9.el8                    baseos    140 k
 libsss_idmap             x86_64 2.3.0-9.el8                    baseos    110 k
 libsss_nss_idmap         x86_64 2.3.0-9.el8                    baseos    117 k
 libsss_sudo              x86_64 2.3.0-9.el8                    baseos    106 k
 libsysfs                 x86_64 2.1.0-24.el8                   baseos     53 k
 libtalloc                x86_64 2.3.1-2.el8                    baseos     49 k
 libtasn1                 x86_64 4.13-3.el8                     baseos     76 k
 libtdb                   x86_64 1.4.3-1.el8                    baseos     58 k
 libteam                  x86_64 1.31-2.el8                     baseos     64 k
 libtevent                x86_64 0.10.2-2.el8                   baseos     49 k
 libtirpc                 x86_64 1.1.4-4.el8                    baseos    112 k
 libtool-ltdl             x86_64 2.4.6-25.el8                   baseos     58 k
 libunistring             x86_64 0.9.9-3.el8                    baseos    422 k
 libuser                  x86_64 0.62-23.el8                    baseos    416 k
 libutempter              x86_64 1.1.6-14.el8                   baseos     31 k
 libuuid                  x86_64 2.32.1-24.el8                  baseos     94 k
 libverto                 x86_64 0.3.0-5.el8                    baseos     24 k
 libxcrypt                x86_64 4.1.1-4.el8                    baseos     73 k
 libxkbcommon             x86_64 0.9.1-1.el8                    baseos    116 k
 libxml2                  x86_64 2.9.7-8.el8                    baseos    695 k
 libxslt                  x86_64 1.1.32-5.el8                   baseos    249 k
 libyaml                  x86_64 0.1.7-5.el8                    baseos     61 k
 libzstd                  x86_64 1.4.4-1.el8                    baseos    266 k
 linux-firmware           noarch 20200619-99.git3890db36.el8    baseos    101 M
 logrotate                x86_64 3.14.0-4.el8                   baseos     85 k
 lshw                     x86_64 B.02.19.2-2.el8                baseos    340 k
 lsscsi                   x86_64 0.30-1.el8                     baseos     69 k
 lua-libs                 x86_64 5.3.4-11.el8                   baseos    118 k
 lvm2                     x86_64 8:2.03.09-5.el8                baseos    1.6 M
 lvm2-libs                x86_64 8:2.03.09-5.el8                baseos    1.1 M
 lz4-libs                 x86_64 1.8.3-2.el8                    baseos     65 k
 lzo                      x86_64 2.08-14.el8                    baseos     69 k
 man-db                   x86_64 2.7.6.1-17.el8                 baseos    887 k
 memstrack                x86_64 0.1.11-1.el8                   baseos     47 k
 mokutil                  x86_64 1:0.3.0-10.el8                 baseos     45 k
 mozjs60                  x86_64 60.9.0-4.el8                   baseos    6.7 M
 mpfr                     x86_64 3.1.6-1.el8                    baseos    221 k
 ncurses                  x86_64 6.1-7.20180224.el8             baseos    387 k
 ncurses-base             noarch 6.1-7.20180224.el8             baseos     81 k
 ncurses-libs             x86_64 6.1-7.20180224.el8             baseos    335 k
 nettle                   x86_64 3.4.1-2.el8                    baseos    300 k
 newt                     x86_64 0.52.20-11.el8                 baseos    121 k
 nftables                 x86_64 1:0.9.3-16.el8                 baseos    311 k
 npth                     x86_64 1.5-4.el8                      baseos     26 k
 numactl-libs             x86_64 2.0.12-11.el8                  baseos     36 k
 open-vm-tools            x86_64 11.1.0-2.el8                   appstream 715 k
 openldap                 x86_64 2.4.46-15.el8                  baseos    351 k
 openssh                  x86_64 8.0p1-5.el8                    baseos    520 k
 openssh-clients          x86_64 8.0p1-5.el8                    baseos    666 k
 openssh-server           x86_64 8.0p1-5.el8                    baseos    483 k
 openssl-pkcs11           x86_64 0.4.10-2.el8                   baseos     66 k
 os-prober                x86_64 1.74-6.el8                     baseos     51 k
 p11-kit                  x86_64 0.23.14-5.el8_0                baseos    272 k
 p11-kit-trust            x86_64 0.23.14-5.el8_0                baseos    139 k
 pam                      x86_64 1.3.1-11.el8                   baseos    738 k
 parted                   x86_64 3.2-38.el8                     baseos    555 k
 passwd                   x86_64 0.80-3.el8                     baseos    114 k
 pciutils                 x86_64 3.6.4-2.el8                    baseos    102 k
 pciutils-libs            x86_64 3.6.4-2.el8                    baseos     53 k
 pcre                     x86_64 8.42-4.el8                     baseos    208 k
 pcre2                    x86_64 10.32-2.el8                    baseos    246 k
 pigz                     x86_64 2.4-4.el8                      baseos     79 k
 pinentry                 x86_64 1.1.0-2.el8                    baseos    100 k
 platform-python          x86_64 3.6.8-31.el8                   baseos     83 k
 platform-python-pip      noarch 9.0.3-18.el8                   baseos    1.7 M
 platform-python-setuptools
                          noarch 39.2.0-6.el8                   baseos    632 k
 plymouth                 x86_64 0.9.4-7.20200615git1e36e30.el8 appstream 126 k
 plymouth-core-libs       x86_64 0.9.4-7.20200615git1e36e30.el8 appstream 121 k
 plymouth-scripts         x86_64 0.9.4-7.20200615git1e36e30.el8 appstream  42 k
 policycoreutils          x86_64 2.9-9.el8                      baseos    377 k
 polkit                   x86_64 0.115-11.el8                   baseos    154 k
 polkit-libs              x86_64 0.115-11.el8                   baseos     76 k
 polkit-pkla-compat       x86_64 0.1-12.el8                     baseos     46 k
 popt                     x86_64 1.16-14.el8                    baseos     61 k
 prefixdevname            x86_64 0.1.0-6.el8                    baseos    460 k
 procps-ng                x86_64 3.3.15-3.el8                   baseos    328 k
 publicsuffix-list-dafsa  noarch 20180723-1.el8                 baseos     56 k
 python3-configobj        noarch 5.0.6-11.el8                   baseos     68 k
 python3-dateutil         noarch 1:2.6.1-6.el8                  baseos    251 k
 python3-dbus             x86_64 1.2.4-15.el8                   baseos    134 k
 python3-decorator        noarch 4.2.1-2.el8                    baseos     27 k
 python3-dmidecode        x86_64 3.12.2-15.el8                  baseos     93 k
 python3-dnf              noarch 4.2.23-4.el8                   baseos    525 k
 python3-dnf-plugins-core noarch 4.0.17-5.el8                   baseos    220 k
 python3-firewall         noarch 0.8.2-2.el8                    baseos    391 k
 python3-gobject-base     x86_64 3.28.3-2.el8                   baseos    312 k
 python3-gpg              x86_64 1.13.1-3.el8                   baseos    244 k
 python3-hawkey           x86_64 0.48.0-5.el8                   baseos    110 k
 python3-libcomps         x86_64 0.1.11-4.el8                   baseos     52 k
 python3-libdnf           x86_64 0.48.0-5.el8                   baseos    755 k
 python3-libs             x86_64 3.6.8-31.el8                   baseos    7.8 M
 python3-libxml2          x86_64 2.9.7-8.el8                    baseos    236 k
 python3-linux-procfs     noarch 0.6.2-2.el8                    baseos     42 k
 python3-nftables         x86_64 1:0.9.3-16.el8                 baseos     26 k
 python3-perf             x86_64 4.18.0-240.el8                 baseos    4.4 M
 python3-pip-wheel        noarch 9.0.3-18.el8                   baseos    1.0 M
 python3-pyudev           noarch 0.21.0-7.el8                   baseos     84 k
 python3-rpm              x86_64 4.14.3-4.el8                   baseos    156 k
 python3-schedutils       x86_64 0.6-6.el8                      baseos     29 k
 python3-setuptools-wheel noarch 39.2.0-6.el8                   baseos    288 k
 python3-six              noarch 1.11.0-8.el8                   baseos     38 k
 python3-slip             noarch 0.6.4-11.el8                   baseos     38 k
 python3-slip-dbus        noarch 0.6.4-11.el8                   baseos     39 k
 python3-unbound          x86_64 1.7.3-14.el8                   baseos    118 k
 readline                 x86_64 7.0-10.el8                     baseos    199 k
 rng-tools                x86_64 6.8-3.el8                      baseos     59 k
 rootfiles                noarch 8.1-22.el8                     baseos     13 k
 rpm                      x86_64 4.14.3-4.el8                   baseos    540 k
 rpm-build-libs           x86_64 4.14.3-4.el8                   baseos    154 k
 rpm-libs                 x86_64 4.14.3-4.el8                   baseos    338 k
 rpm-plugin-selinux       x86_64 4.14.3-4.el8                   baseos     75 k
 rpm-plugin-systemd-inhibit
                          x86_64 4.14.3-4.el8                   baseos     76 k
 rsyslog                  x86_64 8.1911.0-6.el8                 appstream 731 k
 sed                      x86_64 4.5-2.el8                      baseos    297 k
 selinux-policy           noarch 3.14.3-54.el8                  baseos    621 k
 selinux-policy-targeted  noarch 3.14.3-54.el8                  baseos     15 M
 setup                    noarch 2.12.2-6.el8                   baseos    180 k
 sg3_utils                x86_64 1.44-5.el8                     baseos    919 k
 sg3_utils-libs           x86_64 1.44-5.el8                     baseos     99 k
 shadow-utils             x86_64 2:4.6-11.el8                   baseos    1.2 M
 shared-mime-info         x86_64 1.9-3.el8                      baseos    328 k
 slang                    x86_64 2.3.2-3.el8                    baseos    368 k
 snappy                   x86_64 1.1.8-3.el8                    baseos     37 k
 sqlite-libs              x86_64 3.26.0-11.el8                  baseos    580 k
 squashfs-tools           x86_64 4.3-19.el8                     baseos    165 k
 sssd-client              x86_64 2.3.0-9.el8                    baseos    170 k
 sssd-common              x86_64 2.3.0-9.el8                    baseos    1.5 M
 sssd-kcm                 x86_64 2.3.0-9.el8                    baseos    223 k
 sssd-nfs-idmap           x86_64 2.3.0-9.el8                    baseos    104 k
 tar                      x86_64 2:1.30-5.el8                   baseos    837 k
 teamd                    x86_64 1.31-2.el8                     baseos    130 k
 trousers                 x86_64 0.3.14-4.el8                   baseos    152 k
 trousers-lib             x86_64 0.3.14-4.el8                   baseos    168 k
 unbound-libs             x86_64 1.7.3-14.el8                   baseos    499 k
 util-linux               x86_64 2.32.1-24.el8                  baseos    2.5 M
 vim-minimal              x86_64 2:8.0.1763-15.el8              baseos    572 k
 virt-what                x86_64 1.18-6.el8                     baseos     35 k
 which                    x86_64 2.21-12.el8                    baseos     49 k
 xfsprogs                 x86_64 5.0.0-4.el8                    baseos    1.1 M
 xkeyboard-config         noarch 2.28-1.el8                     baseos    782 k
 xmlsec1                  x86_64 1.2.25-4.el8                   appstream 190 k
 xmlsec1-openssl          x86_64 1.2.25-4.el8                   appstream  93 k
 xz                       x86_64 5.2.4-3.el8                    baseos    153 k
 xz-libs                  x86_64 5.2.4-3.el8                    baseos     94 k
 yum                      noarch 4.2.23-4.el8                   baseos    191 k
 zlib                     x86_64 1.2.11-16.el8_2                baseos    102 k
依存関係のインストール:
 grub2-tools-efi          x86_64 1:2.02-90.el8.alma             baseos    469 k
ダウングレード:
 iproute                  x86_64 5.3.0-1.el8                    baseos    658 k
 libusbx                  x86_64 1.0.23-3.el8                   baseos     73 k

トランザクションの概要
================================================================================
インストール     1 パッケージ
アップグレード  36 パッケージ
ダウングレード   2 パッケージ

ダウンロードサイズの合計: 368 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/387): libusbx-1.0.23-3.el8.x86_64.rpm        433 kB/s |  73 kB     00:00
(2/387): acl-2.2.53-1.el8.x86_64.rpm            438 kB/s |  81 kB     00:00
(3/387): iproute-5.3.0-1.el8.x86_64.rpm         2.8 MB/s | 658 kB     00:00
<略>
  zlib-1.2.11-16.el8_2.x86_64

失敗しました:
  filesystem-3.8-3.el8.x86_64            filesystem-3.8-3.el8.x86_64

エラー: トランザクションが失敗しました
[root@almalinux ~]#

おや????

[root@almalinux ~]# dnf distro-sync
メタデータの期限切れの最終確認: 0:10:17 時間前の 2021年02月09日 17時08分11秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ          Arch            バージョン           リポジトリー    サイズ
================================================================================
再インストール:
 filesystem          x86_64          3.8-3.el8            baseos          1.1 M

トランザクションの概要
================================================================================

ダウンロードサイズの合計: 1.1 M
インストール済みのサイズ: 0
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
filesystem-3.8-3.el8.x86_64.rpm                 1.2 MB/s | 1.1 MB     00:00
--------------------------------------------------------------------------------
合計                                            1.2 MB/s | 1.1 MB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  scriptletの実行中: filesystem-3.8-3.el8.x86_64                            1/1
  準備             :                                                        1/1
  再インストール   : filesystem-3.8-3.el8.x86_64                            1/2
Error unpacking rpm package filesystem-3.8-3.el8.x86_64
  検証             : filesystem-3.8-3.el8.x86_64                            1/2
  検証             : filesystem-3.8-3.el8.x86_64                            2/2

失敗しました:
  filesystem-3.8-3.el8.x86_64            filesystem-3.8-3.el8.x86_64

エラー: トランザクションが失敗しました
[root@almalinux ~]#

filesystemの置き換えがうまくいってない模様。

とりあえずOracle Linuxへのコンバート時に問題となったgrub2-efi.cfgは生成されている

[root@almalinux ~]# ls -l /etc/grub2-efi.cfg
lrwxrwxrwx. 1 root root 31  1月 19 08:21 /etc/grub2-efi.cfg -> ../boot/efi/EFI/centos/grub.cfg
[root@almalinux ~]# ls -l /boot/efi/EFI/*
/boot/efi/EFI/BOOT:
合計 1568
-rwx------. 1 root root 1237503  1月 15 22:34 BOOTX64.EFI
-rwx------. 1 root root  362968  1月 15 22:34 fbx64.efi

/boot/efi/EFI/centos:
合計 5436
-rwx------. 1 root root     122  1月 15 22:34 BOOTX64.CSV
drwx------. 2 root root    4096  1月 19 08:21 fonts
-rwx------. 1 root root    6544  2月  9 16:45 grub.cfg
-rwx------. 1 root root    1024  2月  9 17:15 grubenv
-rwx------. 1 root root 1890896  1月 19 08:21 grubx64.efi
-rwx------. 1 root root 1171320  1月 15 22:34 mmx64.efi
-rwx------. 1 root root 1240144  1月 15 22:34 shimx64-almalinux.efi
-rwx------. 1 root root 1237503  1月 15 22:34 shimx64.efi
[root@almalinux ~]#

…いや、grub.cfgの作成時間が古いのでCentOS8で作成されたものなので再作成します。

[root@almalinux ~]# grub2-mkconfig -o /etc/grub2-efi.cfg
Generating grub configuration file ...
Adding boot menu entry for EFI firmware configuration
done
[root@almalinux ~]# ls -l /boot/efi/EFI/centos/grub.cfg
-rwx------. 1 root root 6544  2月  9 17:21 /boot/efi/EFI/centos/grub.cfg
[root@almalinux ~]#

「CentOS Linux … Security Violation」・・・・お??

あー、Secure Bootか

セキュアブートを無効化して電源ON

再起動後、「dnf distro-sync」を実行したところ正常に完了した。

で・・・改めてESXi7.0で仮想マシンを作る際にセキュアブート無効設定で仮想マシンを作ってからインストールを試みる。

無事起動

ChromeOSリカバリイメージを流用して汎用ChromeOSを作り出すBrunch


公式のChromeOSリカバリイメージを利用して、汎用のChromeOSイメージを作り出すBrunchというものを発見。

権利的にはかなり微妙なもの。

とりあえず試してみた。

使用できる条件

UEFIブート可能

Intel CPUの場合、第1世代Intel Coreプロセッサー(Nehalem)以

AMD CPUの場合、Stoney Ridge世代のみ(E2-90??, A4-91??, A6-92??, A9-94??, Pro A4-4350B, Pro A6-7350B)
Ryzenは非サポート

Nvidia GPUは非サポート

2023/11/24追記:brunch 2023/11/10付け更新でIntel第4,5世代がサポートから外れました。

2023/07/10追記:ChromeOSリカバリイメージの名称が変更。および古い世代のCPU対応が終了した、ということもありbrunchとしてもCPUの対応が変わりました。Intelだと第4世代(Haswell)以降となりました。
AMDはAMD 3015Ce(zen 2コア/4スレッド)搭載機のリカバリイメージを使用し、zenコア(Ryzen系)対応となりました。


Intel 4th~9th用: ASUS Chromebook FLip C434 (機種コードネーム:Shyvana, 基板名:rammus) AUE:2026年6月まで
Intel 10th用: HP Elite c1030 Chromebook (機種コードネーム:jinlon, 基板名:hatch) AUE:2028年6月まで
Intel 11th以降用: Acer Chromebook Spin 713(CP713-3W) (機種コードネーム:Voxel, 基板名:volteer) AUE:2029年6月まで
AMD用: HP CHromebook x360 14a-cb0010ng(機種コードネーム:Gumboz,基板名:zork) AUE:2029年6月
 機種コードネーム/基板名についての出典: Developer Information for Chrome OS Devices
 AUE(サポート終了期限)についての出典:自動更新ポリシー

手順0: Ubuntuパッケージの追加

Brunshのshell scriptで「cgpt」と「pv」を使用するため、この2つのパッケージをインストールする

osakanataro@ubuntuserver:~/cros$ sudo apt install cgpt pv
<略>
osakanataro@ubuntuserver:~/cros$

手順1: ChromeOSリカバリイメージを入手

ChromeOSリカバリイメージをGoogleのページからダウンロードする。

ただし、Google公式では一覧ページ的なものは用意されていないので、 https://cros-updates-serving.appspot.com/ https://cros.tech/ でURLを調べてダウンロードする。

前者の https://cros-updates-serving.appspot.com/ の方が一覧になっていて分かりやすい。

Brunshで利用できるリカバリイメージは下記の3種類で、ハードウェアによって選択する

「shyvana」(rammus)

ASUS Chromebook C425, ASUS Chromebook Flip C433, ASUS Chromebook Flip C434用リカバリイメージ
 → 第4世代Intel Coreプロセッサー(Haswell)以降の機種向け
 → 第6世代Intel Coreプロセッサー~第9世代Intel Coreプロセッサー向け(Skylake,Kaby Lake,Coffee Lake,Coffee Lake-R)

「jinlon」(hatch)

Chromebook x360 13c-ca0用リカバリイメージ
 → 第10世代Intel Coreプロセッサー向け(Comet Lake-S)

「voxel」(volteer)

Acer Chromebook Spin 713 (CP713-3W)用リカバリーイメージ
 → 第11世代Intel Coreプロセッサー向け(Rocket Lake-S)

「gumboz」(zork)

HP Chromebook x360 14a-cb0用リカバリイメージ
 → AMD Ryzen向け

「samus」→廃止

Google Chromebook Pixel (2015) 用リカバリイメージ
 → 第3世代Intel Coreプロセッサー(Ivy Bridge)以前の機種向け

「grunt」→廃止

Acer Chromebook 315 (CB315-2H), HP Chromebook 11A G6 EE / HP Chromebook 11A G8 EE, HP Chromebook 14 db0000-db0999 / HP Chromebook 14A G5, Acer Chromebook 311 (C721), Acer Chromebook Spin 311 (R721T), Lenovo 14e Chromebook, Lenovo Chromebook S345-14, NEC Chromebook Y1 Gen2A, 100e 2nd Gen AMD, 300e 2nd Gen AMD用リカバリイメージ
 → AMD プロセッサー機種向け

ちなみに、プロダクトコードネームからだと具体的にCPUを採用しているかわかりませんが、ChromeOSハードウェア向けにカスタマイズしたcorebootを提供している「MrChromebox.tech」のSupported Devicesを見るとCPU毎に分類されていて参考になります。

さて、ダウンロードしたファイルは、zip形式なので展開します。

osakanataro@ubuntuserver:~/cros$ wget https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin.zip
`chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin.zip' に保存中
chromeos_13421.99.0_samus_recove 100%[=========================================================>]   1.08G  9.04MB/s    時間 1m 51s
2020-12-07 00:24:12 (9.90 MB/s) - `chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin.zip' へ保存完了 [1154643907/1154643907]
osakanataro@ubuntuserver:~/cros$ unzip chromeos_13421.99.0_samus_recovery_stable
-channel_mp-v3.bin.zip
Archive:  chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin.zip
  inflating: chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin
osakanataro@ubuntuserver:~/cros$
osakanataro@ubuntuserver:~/cros$ ls -l
-rw-r--r-- 1 osakanataro osakanataro 2320468480 11月 11 23:54 chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin
-rw-rw-r-- 1 osakanataro osakanataro 1154643907 12月  2 01:55 chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin.zip
osakanataro@ubuntuserver:~/cros$

手順2: Brunchファイルを入手

BrunchのReleaseにアクセスして最新版のBrunchファイルを入手。「brunch_r86_k5.4_stable_20201201.tar.gz」というような感じになっている。

これをダウンロードして、展開する。

osakanataro@ubuntuserver:~/cros$ wget https://github.com/sebanc/brunch/releases/
download/r86-k5.4-stable-20201201/brunch_r86_k5.4_stable_20201201.tar.gz
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 356198827 (340M) [application/octet-stream]
`brunch_r86_k5.4_stable_20201201.tar.gz' に保存中
brunch_r86_k5.4_sta 100%[===================>] 339.70M  8.50MB/s    時間 58s
2020-12-07 09:32:44 (5.85 MB/s) - `brunch_r86_k5.4_stable_20201201.tar.gz' へ保 存完了 [356198827/356198827]
osakanataro@ubuntuserver:~/cros$
osakanataro@ubuntuserver:~/cros$ ls -l
合計 4855664
-rw-rw-r-- 1 osakanataro osakanataro  356198827 12月  3 04:27 brunch_r86_k5.4_stable_20201201.tar.gz
-rwxr-xr-x 1 osakanataro osakanataro      13521 12月  2 05:17 chromeos-install.sh
-rw-r--r-- 1 osakanataro osakanataro 2320468480 11月 11 23:54 chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin
-rw-rw-r-- 1 osakanataro osakanataro 1154643907 12月  2 01:55 chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin.zip
-rw-r--r-- 1 osakanataro osakanataro   33554432 12月  2 05:32 efi_legacy.img
-rw-r--r-- 1 osakanataro osakanataro   33554432 12月  2 05:32 efi_secure.img
-rw-r--r-- 1 osakanataro osakanataro 1073741824 12月  2 05:32 rootc.img
osakanataro@ubuntuserver:~/cros$

手順3: USBメモリへ書き込み

LinuxにUSBメモリを差し込んでからコマンドを実行。

直接USBメモリに書き込む以外にも「-dst ファイル名」と指定することでイメージファイルを作成することもできる。

osakanataro@ubuntuserver:~/cros$ sudo bash chromeos-install.sh -src chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin -dst chromeos.img
Creating image file
0+0 レコード入力
0+0 レコード出力
0 bytes copied, 0.000438446 s, 0.0 kB/s
WARNING: Primary GPT header is invalid
WARNING: Secondary GPT header is invalid
DE9B9ECE-0883-AA43-A8C1-CAEAEAB0E243
       start        size    part  contents
           0           1          PMBR (Boot GUID: DE9B9ECE-0883-AA43-A8C1-CAEAEAB0E243)
           1           1          Pri GPT header
           2          32          Pri GPT table
    19255304    10104776       1  Label: "STATE"
                                  Type: Linux data
                                  UUID: 0E6FAFDE-D6D7-184A-A64D-CD63CF869244
     2117638       65536       2  Label: "KERN-A"
                                  Type: ChromeOS kernel
                                  UUID: 3A09DFE5-08AB-2948-975D-24C1D96A136A
                                  Attr: priority=15 tries=15 successful=0
    10866696     8388608       3  Label: "ROOT-A"
                                  Type: ChromeOS rootfs
                                  UUID: DEC257F3-CB10-5F47-8D04-22E777B01FE7
     2183174       65536       4  Label: "KERN-B"
                                  Type: ChromeOS kernel
                                  UUID: 131595A8-5812-1749-B2C3-D3EFE1B20D9E
                                  Attr: priority=0 tries=15 successful=0
     2478088     8388608       5  Label: "ROOT-B"
                                  Type: ChromeOS rootfs
                                  UUID: D47CACE8-6505-5C49-8DDC-3967F2367108
       16448           1       6  Label: "KERN-C"
                                  Type: ChromeOS kernel
                                  UUID: E8025D6B-7477-2E48-8655-69E8FEF91887
                                  Attr: priority=0 tries=15 successful=0
       16456     2097152       7  Label: "ROOT-C"
                                  Type: ChromeOS rootfs
                                  UUID: C1E18F01-4178-4E4E-9726-B4E212EBF270
     2248712       32768       8  Label: "OEM"
                                  Type: Linux data
                                  UUID: 87C5B1DE-66D1-2645-84BD-1E8B0A6EB040
     2113608           1       9  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: C1D004AE-CD97-124E-864A-BFF3A72A3D6E
     2113609           1      10  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 1EE850E8-22AC-4E45-A88A-F29C9AC25A93
          64       16384      11  Label: "RWFW"
                                  Type: ChromeOS firmware
                                  UUID: CEAA44C9-C738-7A4A-A372-B043109C1419
     2412552       65536      12  Label: "EFI-SYSTEM"
                                  Type: EFI System Partition
                                  UUID: DE9B9ECE-0883-AA43-A8C1-CAEAEAB0E243
    29360095          32          Sec GPT table
    29360127           1          Sec GPT header
Writing partition 1
8.95MiB 0:00:00 [ 119MiB/s] [<=>                                               ]
Writing partition 2
16.0MiB 0:00:00 [74.7MiB/s] [<=>                                               ]
Writing partition 3
2.00GiB 0:00:47 [43.2MiB/s] [                                            <=>   ]
Writing partition 4
16.0MiB 0:00:00 [57.2MiB/s] [<=>                                               ]
Writing partition 5
2.00GiB 0:00:49 [41.1MiB/s] [                                             <=>  ]
Writing partition 6
 512 B 0:00:00 [3.37KiB/s] [<=>                                                ]
Writing partition 7
1.00GiB 0:00:21 [47.8MiB/s] [                   <=>                            ]
Writing partition 8
16.0MiB 0:00:03 [4.38MiB/s] [  <=>                                             ]
Writing partition 9
 512 B 0:00:00 [10.5KiB/s] [<=>                                                ]
Writing partition 10
 512 B 0:00:00 [26.1KiB/s] [<=>                                                ]
Writing partition 11
8.00MiB 0:00:00 [69.4MiB/s] [<=>                                               ]
Writing partition 12
32.0MiB 0:00:00 [89.6MiB/s] [<=>                                               ]
ChromeOS disk image created.
To boot directly from this image file, add the lines between stars to either:
- A brunch usb flashdrive grub config file (then boot from usb and choose boot from disk image in the menu),
- Or your hard disk grub install if you have one (refer to you distro's online resources).
********************************************************************************
menuentry "ChromeOS (boot from disk image)" {
        rmmod tpm
        img_part=/dev/mapper/ubuntu--vg-root
        img_path=/home/osakanataro/cros/chromeos.img
        search --no-floppy --set=root --file $img_path
        loopback loop $img_path
        linux (loop,7)/kernel boot=local noresume noswap loglevel=7 disablevmx=off \
                cros_secure cros_debug loop.max_part=16 img_part=$img_part img_path=$img_path \
                console= vt.global_cursor_default=0 brunch_bootsplash=default
        initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
}
********************************************************************************
osakanataro@ubuntuserver:~/cros$

できたchormeos.imgをUSBメモリに書き込んで完成

ノートパソコンで起動

先日手に入れたCore i5-5200Uのノートパソコンで起動してみる。

画像

このBrunch Frameworkの画面がそこそこ時間がかかる。

待つと普通のChromeBookの初期画面になった。

画像

Androidアプリも普通に動くやつになっていた。

画像
画像

上記はsamusイメージをベースにしてたけど、rammusベースにしてみたところ、起動時のgrubでkernel行に「options=alt_touchpad_config」を追加して起動しないとキーボード/タッチパッドが使用できない状態だったが、LTEも使える形になった。

おまけの記録:コマンドが足りなくて失敗した場合のログ

Ubuntu 20.04だとパッケージ「pv」と「cgpt」を追加する必要があった。

osakanataro@ubuntuserver:~/cros$ sudo bash chromeos-install.sh -src chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin -dst chromeos.img
[sudo] osakanataro のパスワード:
cgpt needs to be installed first
osakanataro@ubuntuserver:~/cros$ apt search cgpt
ソート中... 完了
全文検索... 完了
cgpt/bionic 0~R63-10032.B-3 amd64
  GPT manipulation tool with support for Chromium OS extensions
vboot-utils/bionic 0~R63-10032.B-3 amd64
  Chrome OS verified u-boot utilities
osakanataro@ubuntuserver:~/cros$ sudo apt install cgpt
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  linux-hwe-5.4-headers-5.4.0-42 linux-hwe-5.4-headers-5.4.0-45
  linux-hwe-5.4-headers-5.4.0-47 linux-hwe-5.4-headers-5.4.0-51
  linux-hwe-5.4-headers-5.4.0-52
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
  cgpt
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
30.7 kB のアーカイブを取得する必要があります。
この操作後に追加で 77.8 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 cgpt amd64 0~R63-10032.B-3 [30.7 kB]
30.7 kB を 0秒 で取得しました (359 kB/s)
以前に未選択のパッケージ cgpt を選択しています。
(データベースを読み込んでいます ... 現在 350304 個のファイルとディレクトリがインストールされています。)
.../cgpt_0~R63-10032.B-3_amd64.deb を展開する準備をしています ...
cgpt (0~R63-10032.B-3) を展開しています...
cgpt (0~R63-10032.B-3) を設定しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...
osakanataro@ubuntuserver:~/cros$
osakanataro@ubuntuserver:~/cros$ sudo bash chromeos-install.sh -src chromeos_13421.99.0_samus_recovery_stable-channel_mp-v3.bin -dst chromeos.img
pv needs to be installed first
osakanataro@ubuntuserver:~/cros$
osakanataro@ubuntuserver:~/cros$ sudo apt install pv
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  linux-hwe-5.4-headers-5.4.0-42 linux-hwe-5.4-headers-5.4.0-45
  linux-hwe-5.4-headers-5.4.0-47 linux-hwe-5.4-headers-5.4.0-51
  linux-hwe-5.4-headers-5.4.0-52
これを削除するには 'sudo apt autoremove' を利用してください。
提案パッケージ:
  doc-base
以下のパッケージが新たにインストールされます:
  pv
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
48.3 kB のアーカイブを取得する必要があります。
この操作後に追加で 123 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 pv amd64 1.6.6-1 [48.3 kB]
48.3 kB を 0秒 で取得しました (621 kB/s)
以前に未選択のパッケージ pv を選択しています。
(データベースを読み込んでいます ... 現在 350309 個のファイルとディレクトリがインストールされています。)
.../archives/pv_1.6.6-1_amd64.deb を展開する準備をしています ...
pv (1.6.6-1) を展開しています...
pv (1.6.6-1) を設定しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...
osakanataro@ubuntuserver:~/cros$