[FreeBSD-users-jp 95792] Re: GPT and EFI

Tomoaki AOKI junchoon @ dec.sakura.ne.jp
2016年 4月 24日 (日) 09:01:50 UTC


青木@名古屋です。

最近更新出来ていないのでlenovofixの件等は載っていませんが、GPTとUEFIの
絡みその他でハマったことと対処の覚え書きを下記で公開していますので、
ご参考まで。

 http://www.dec.sakura.ne.jp/~junchoon/machine/freebsd.html

チョット情報過多気味で見辛いようならむしろ下記英語版サマリーの方が
読み易いかもしれません。

 http://www.dec.sakura.ne.jp/~junchoon/machine/freebsd-e.html

英語版の方はそもそも海外の開発者に「ここに纏めといたから何とかしてよ」と
投げるためという側面が強いことと、全部訳すのはめんどくさい(笑)ことから
内容を絞り込んでいます。

# uefi gpt freebsdでググると未だに1ページ目にあったり。 とっくの昔に
# 10ページ目以降ぐらいまで追いやられるくらい情報量が増えてくれないと
# 自分がハマった時に困るのですが。


古い分、整理できていない部分もあるので、補足を下記します。

 UEFIファームウェアによる起動可否のパターン
  1)標準のままで問題なし
  2)PMBRのGPTのエントリにactive属性が【付いていると】駄目
    →現行のgpartなら大丈夫な筈。 古いgpartで作成した場合
     デフォルトで付いているため、現行のもので外す。
  3)PMBRのGPTのエントリにactive属性が【付いていないと】駄目
    →現行のgpartは設定しない筈なので、付ける。
  4)PMBRのパーティションテーブルの先頭にGPTのエントリは不可
    →gpartでlenovofix属性を設定。
  5)PMBRのGPTのエントリが0xeeだと駄目
    →fdiskで0xef等を強制設定。 loaderへのパッチも必須。

2),3)は排他ですが、1)以外は組合せのパターンもあり得ます。
私のThinkPad T420は4)か5)のどちらか一方で可能でした。


2),3)の場合の対処は(上記ページからもリンクしてありますが)

  https://lists.freebsd.org/pipermail/svn-src-stable-9/2013-August/005361.html

のコミットログに(英語で)記載されているとおり、

  gpart set -a active ada0
  gpart unset -a active ada0

のようにすれば良い筈です。 4)の場合はactiveの代わりにlenovofixですね。

 ※私のページではlenovofix属性については未記載ですが、同等の手動での
  やり方が記載してあります。

なお、3)〓4)は全てpmbrの設定として不正ですので、FreeBSD以外のOSや
FreeBSDのgpart,fdisk以外のパーティション管理ツールでは操作不能だった
り強制的に2)相当の状態に「修正」されたり、最悪、GPTのテーブルやディスク
の内容まで含めてクラッシュ(変なものを変な場所に書き込んで強制終了等)
させられる可能性が否定できません...が、FreeBSDのみで使う分には問題あり
ません。

5)はMBRの設定としては正常ですがPMBRとしては異常(不正ではない)なため、
FreeBSD以外ではGPTとして認識できない(0xefにした場合、MBRでのEFIパーティ
ションとして認識される)可能性があります。 FreeBSDのGEOM階層では普通に
GPTとして認識されますが、loader / zfsloaderでは構造をチェックしにいく
前の段階でGPT以外と判定されてしまうため、設定したパーティションコードも
GPT扱いさせるようなパッチが必要です。(私のものをご参照下さい)


On Fri, 22 Apr 2016 14:53:51 +0900
maruyama at ism.ac.jp (丸山直昌) wrote:

> 青木 様
> 
> 統計数理研究所の丸山です。
> 
> 丁寧な解説、有難うございます。今 dynabookN51 の UEFIブートで悪戦苦闘して
> いるので、ありがたい情報です。
> 
> Tue, 19 Apr 2016 21:41:19 +0900
> Tomoaki AOKI <junchoon at dec.sakura.ne.jp> writes:
> 
> >おまけですが、UEFIファームウェアによっては規格どおりのGPTだとLegacy
> >での起動を許さないもの(Lenovo等)があり、PMBRパーティションテーブルの
> >GPTを示すエントリを2番め以降にずらす(gpartでlenovofix属性を付けると
> >こうしてくれます)なりタイプを0xeeから0xefその他に変えるなり(当初、
> >そのためのパッチを作って対応しました)しないといけなかったりします。
> >UEFI非対応のBIOSなら無用の苦労でしょうけど。
> 
> lenovofix ってそういう意味でしたか。これを読んで X260 を買うかどうか、
> ちょっと決心が鈍りましたが、ま UEFI で FreeBSD(PC-BSD)を起動できるように
> なっていれば関係ないってことですね。
> 
> 今悪戦苦闘している dnyabookN51 の UEFI の問題でこの ML に質問するかも知
> れません。その折はよろしく。
> 
> # 「修復の名の下の破壊」は的確な表現ですね。このMLの常連でも昔被害にあっ
> #  た人がいると思いますが、既に鯖缶引退しているかな?
> 
> --------
> 丸山直昌@統計数理研究所
> 


-- 
青木 知明  [Tomoaki AOKI]
    junchoon at dec.sakura.ne.jp


freebsd-users-jp メーリングリストの案内