[FreeBSD-users-jp 95653] UEFI起動改善作戦へのお誘い
Tomoaki AOKI
junchoon @ dec.sakura.ne.jp
2016年 1月 31日 (日) 14:27:24 UTC
青木@名古屋です。
UEFI対応のPCをheadのUEFI起動でお使いの方、何かトラブってインストール用の
memstickから起動して修復しようとしても壊れた内蔵ドライブから起動しようと
してしまって何ともならない現象に悩まされていませんか?
逆に、普通に使えている状況で、たまたまインストール用のmemstickを挿した
まま起動した時、UEFIファームウェアの起動設定では内蔵ディスクから起動する
筈なのにインストーラが起動してきてびっくり、という経験はありませんか?
これ、現状のboot1.efi(EFIパーティションにbootx64.efiとしてインストール
するもの)が起動するパーティションを選択する部分に問題があるのですが、
現時点ではheadでも直っていません。 Root-on-ZFS(stable/10にもMFC済)
に対応したバージョンでも同様です。
現在、freebsd-current MLでやり取りしながらsmh@が直してくれているのです
が、私のテスト環境はThinkPad T420が1台だけなので、他社製品等でのレポート
もあった方が彼もレビュアー(PHABRICATORではemaste@とimp@が指定されていま
す)も決心し易いかと思います。
そこで、UEFIのhead環境(できればシリアルコンソールが使える環境)をお持ち
の方、特に私と異なるメーカー・機種の方、テストしてfreebsd-current MLに
レポートしてみませんか?
議論自体は、(freebsd-currentなので英文ですが)
https://lists.freebsd.org/pipermail/freebsd-current/2016-January/059387.html
あたりから見て頂ければ、「その時点でのRoot-on-ZFS対応パッチでもこの問題
があるよ」と私が方向転換した分以降は全部見られるかと。
パッチは、
https://reviews.freebsd.org/D5108
で上方右側の「Download Raw Diff」をクリックすると表示されますので、
ブラウザのSave Page Asあたりで保存して頂ければ。 現在第6版(Diff6)で、
headのr295032以降になら正常に当たる筈です。
※私もDiff1をテストしてレポートしたらDiff4が出ていて、MLでDiff5を待つ
ようにという話だったため動けるようになった時点でダウンロードに行った
らDiff6になっていてこれでテスト&レポート、という状況ですが...。
私以外には、レビュアーでもあるimp@がPHABRICATORで不具合のレポート
(Diff1時点。 私の環境では使っていない/boot.config絡みのため確認
できず)をしているくらいです。
なお、Stevenの修正版(Diff6)の挙動は、
1)ドライブ単位で、ZFS→UFSの順に/boot/loader.efiを探す。
2)最初にboot1.efi(bootx64.efi)が読み込まれたドライブをトライ。
3)見つからなかった場合、それ以外のドライブを、boot1.efiが認識できた
順番で1)のルールで順次トライ。
というものです。 特に違う挙動をお望みの場合は、待ったをかけるなら今の
うちかと。
※どこかで複数のUFSのどれから起動するかをパーティションのactiveフラグで
制御できるようにしたいという要望を見かけたような気がしますが、その
機能までは入っていませんし、boot0extのようなセレクタも入っていませ
ん。 その制約の中ではリーズナブルな挙動だと考えていますので、私の
暴走を放っておくとこのままの方向性でプッシュしていくことになります。
まずは10.3-RELEASEに確実に入るように進めた方が幸せになれる人が多い
かと思いますし、一旦loader.efi,loader.confと*.4thを読んでしまえば
そちらに機能を持たせるという選択肢もあると思われますので。
なお、(-DDEBUGも指定していないと何か情報が欠落するかどうかは未確認です
が)-DEFI_DEBUGを指定してビルドすると動作中の画面を見ながら控えるには
辛いレベルの出力が出ます(が、レポートするならあるに越したことはない)。
シリアルコンソールをお持ちでそちらでログを取れればそれがベストです。
スマホで動画撮影して打ち込むのは神経が疲れましたので、...。
補足: 現在、MFCされていない変更の都合で、残念ながらstable/10では
パッチは当たりません。 headでビルドしてしまえば出来上がった
boot1.efiでstable/10を起動することは可能です。
補足2: このメールをほぼ書き上げたところで、Diff7のテスト要請があり
ました。 今から前述の方法でダウンロードすると、そちらが
落ちてきますが、変更点は
・同じデバイスが複数回認識されることが原因のfalse positive防止
・上記に伴い、デバッグ出力の見直し
の模様です。 なお、-DEFI_DEBUGさえ指定していればOKっぽいです。
--
青木 知明 [Tomoaki AOKI]
junchoon at dec.sakura.ne.jp
freebsd-users-jp メーリングリストの案内