[BitVisor-devel:102] Re: UEFI/GRUB2の設定(Ubuntu1610 on ThinkPAD T440s)
Hideki EIRAKU
hdk @ igel.co.jp
2017年 1月 18日 (水) 17:29:38 JST
イーゲル 榮樂です。
From: k.suzaki <k.suzaki @ aist.go.jp>
Subject: [BitVisor-devel:101] UEFI/GRUB2の設定(Ubuntu1610 on ThinkPAD T440s)
Date: Wed, 18 Jan 2017 17:09:46 +0900
> この環境(Secure BootはDisenableにした)で/etc/grub.d/40_customを編集し
> てBitvisorが起動できるか試したのですが、このごウンスンになります。
> GRUB2に戻らないまでも、何かメッセージが出ると思ったのですが。
>
> ちなみにSecure BootはEnableにすると
> エラー Secure Boot forbids loading module form
> (hd0,msdos)/grub/x86_64-efi/multiboot/mod
> と表示されて楽しい。:-)
multiboot コマンドで読み込むと BitVisor の動作が BIOS モードになります
ので動作しません。BIOS モードではテキスト VRAM にログを書き込みますが、
UEFI 環境では画面モードがグラフィックモードになっていますので何も見え
ません。また、UEFI 環境では BIOS 用の割り込みベクターは空っぽの場合も
あり、BitVisor がメモリー情報取得などで BIOS を呼び出そうとしたところ
で暴走することも考えられます。
UEFI 環境で BitVisor を multiboot で実行できない理由は、UEFI でファー
ムウェアによるデバイス制御を終わらせる (オペレーティング・システムがデ
バイスを使えるようにする) ExitBootServices という API を GNU GRUB が呼
び出してしまうためです。BitVisor 起動後、オペレーティング・システムの
起動に引き続き UEFI ファームウェアを使いたいので、ExitBootServices を
呼ばれては困るのです。そのような理由により、BitVisor は multiboot で開
始されたら BIOS モード、という風に実装されています。
UEFI 環境で GRUB2 から BitVisor を起動するには chainload コマンドを使
用して loadvmm.efi を呼び出すようにしてください。chainload コマンドを
使うには各ファイルを FAT パーティション (EFI システムパーティションで
OK) においておく必要があったかと思います。chainload コマンドを使う場合
でも、loadvmm.efi に署名がないので Secure Boot を有効にしていると起動
できません。
--
Hideki EIRAKU <hdk @ igel.co.jp>
BitVisor-devel メーリングリストの案内