作業前にリカバリSDカードを作成しておく
忘れるとにっちもさっちもいかなくなる、注意
Chromebox自身でリカバリ(chrome://imageburner/ でアプリをインストール)のアプリを起動しSDカード8GBに作りました。
レガシーブート
Chromebook (Intel の Haswell や Broadwell が搭載されている機種) には”レガシーブート”モードが存在し Linux や他のオペレーティングシステムを簡単に起動することができます。このレガシーブートモードは Coreboot の SeaBIOS ペイロードによって提供されています。Coreboot は Intel が搭載されている Chromebook に載っているファームウェアです (第一世代は除く)。SeaBIOS がディスクの MBR に起動する伝統的な BIOS のように振る舞い、そこから Syslinux や GRUB などの標準的なブートローダーを起動します。
ファームウェア書き込み保護
全ての Chromebox、Chromenook にはファームウェア書き込み保護が存在します。インストールの途中で (GBB フラグを更新したりカスタムファームウェアを書き込むために) 書き込み保護を無効化する必要があるかもしれないので、注意しておいてください。
一般的なlinuxのインストール手順
デベロッパーモードを有効にする
SeaBIOS のある Chromebook:
レガシーブート / SeaBIOS を有効化する
SeaBIOS をデフォルトに設定 (必須ではありませんが推奨。書き込み保護を無効にする必要があります)
デベロッパーモードの有効化
ChromeOS の中からスーパーユーザーシェルにアクセスするには デベロッパーモード が必要です。SeaBIOS での起動を許可するなど、システムに変更を加えるために有効化は必須になります
警告: デベロッパーモードを有効化するとデータが全て消去されます
Chromeboxでデベロッパーモードに入るには
リセットボタンを押しながら、Power
ボタンを押して下さい
Ctrl + D
を押して下さい
リセットボタンを押す
30秒後にデベロッパーモードが始まる(もしくはCtrl+Dを押す)
スーパーユーザーシェルにアクセス
デベロッパーモードに移行した後は、スーパーユーザーのプロンプトを表示する必要があります。スーパーユーザーシェルのアクセス方法は Chrome OS を設定したかどうかで変わります。
Chrome OS の設定をせずにスーパーユーザーシェルにアクセス
Chrome OS を設定しない場合は、Ctrl + Alt + F2
を押せば (F2 は上段の”右”矢印です, →)、ログインプロンプトが表示されます。
chronos
をユーザー名として使って下さい、パスワードは聞かれません。
sudo bash
でスーパーユーザーになってください。
Chrome OS の設定をしてスーパーユーザーシェルにアクセス
Chrome OS を既に設定している場合は:
Ctrl + Alt + T
で crosh window を開いて下さい。
shell
コマンドで bash シェルを開いて下さい。
sudo bash
でスーパーユーザーになってください
SeaBIOS の有効化
Coreboot のデベロッパーモード画面で、プリインストールされている SeaBIOS にアクセスする方法です
- スーパーユーザーシェルで以下を入力:
# crossystem dev_boot_usb=1 dev_boot_legacy=1
- マシンを再起動。
これで白いブートスプラッシュ画面で Ctrl + L
を押すことで SeaBIOS を起動できます。
ノート: プリインストールされている SeaBIOS をずっと使い続けるつもりであり、SeaBIOS を起動のに毎回 Ctrl + L
を押す必要があるのが鬱陶しいときは、デフォルトで SeaBIOS を起動するように Coreboot を設定することができます。この設定は Chrome OS の中から行う必要があり、(ハードウェアとソフトウェアの) 書き込み保護を無効化しなくてはなりません。後でリカバリインストールメディアを使って Chrome OS を再インストールする必要がなくなるので、ここで今すぐ設定するほうが良いでしょう。Chrome OS を捨てないつもりならば (Arch を外部ストレージにインストールするか、内部ストレージの中に Chrome OS と一緒にインストールする)、あとから SeaBIOS をデフォルトに設定できます。
デフォルトで SeaBIOS を起動
デフォルトで SeaBIOS を起動するには、Chrome OS で set_gbb_flags.sh を実行する必要があります (Chrome OS に初めから入っています)
chromebookの場合の書き込み保護解除手順
- スーパーユーザーシェルで次を入力:
# sudo su
- ソフトウェア書き込み保護の無効化。
# flashrom --wp-disable
- 書き込み保護が無効化されているか確認。
# flashrom --wp-status
- 何もパラメータを付けずに
set_gbb_flags.sh
を実行。
# set_gbb_flags.sh
/usr/share/vboot/bin/set_gbb_flags.sh
に移動されており、デフォルトではパスが通っていません ($PATH に含まれていない)。- 以下の出力がされたか確認、[4] を参照。
GBB_FLAG_DEV_SCREEN_SHORT_DELAY 0x00000001 GBB_FLAG_FORCE_DEV_SWITCH_ON 0x00000008 GBB_FLAG_FORCE_DEV_BOOT_LEGACY 0x00000080 GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY 0x00000400
- SeaBIOS をデフォルトに設定。
# set_gbb_flags.sh 0x489
- ソフトウェア書き込み保護を有効に戻す。
# flashrom –wp-enable
chromeboxの場合の書き込み保護解除
wifi横のショートナットを緩めて外す
# set_gbb_flags.sh 0x489 多分これでOKだろう、確認はまだしていない 以上で Chromebook は SeaBIOS をデフォルトで起動するようになります。linuxのインストールに進んで下さい。デバイスが正しく起動したら、ハードウェア書き込み保護を有効に戻して下さい。 chromeboxは多分ショートネジを戻してショートさせれば書き込み保護になるのだろう
インストールメディアの起動
USB ドライブを Chromebox に接続して、(SeaBIOS をデフォルトに設定していない場合) 白いブートスプラッシュ画面で Ctrl + L
を押して SeaBIOS を起動します。
Esc
を押してブートメニューを表示して USB ドライブの番号を選択してください。
参考サイト
たとえlinuxだけで立ち上がっていても簡単にchromeboxオリジナルに戻せる
10分もいらない
最初、OS確認の画面で停止するが
Ctrl+L
これでchromeが立ち上がる
Ctrl+Lを押さなくて30秒ほっておくと自動で立ち上がる
デベロッパーモードの立ち上げ
電源ボタン+リセットボタン
Ctrl+D
リセットボタン
Ctrl+D電源オンで「OS確認機能はオフ」の画面が表示され、そのまま30秒放おっておくか ctrl+DでChrome OS
ctrl+Lで SSDのlinuxを起動、カウントダウン中にesc押すとUSBからの起動を選べる
コメント