[centos-users 1635] Re: UEFI ブートの起動設定

豊田 二郎 jiro.toyoda @ gmail.com
2013年 9月 2日 (月) 17:21:57 JST


矢木様

 アドバイスありがとうございます。

> 矢木です。
> 
> /var/log/message に何か関連した情報がないでしょうか。BIOS は最新バージョンですか。

/var/log/message はよくわかりませんでした。
とりあえず、最新 BIOS が、2013-08-13 に出ていましたので update(1.6 -> 1.8)しました。
アップデート直後、BIOS の UEFI モードで HDD が2台とも見えなくなり、HDD から起動できな
くなって少し焦りましたが、CentOS 6.4 の DVD-R から rescue モードで起動し、 efibootmgr 
コマンドを実行して、何とか HDD から起動することができました。

結論から言うと、今度は、Boot0000 が優先されるようになっただけで、全く同じ
動作でした。

BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0000,0004,0002,0003
Boot0000* CentOS sda
Boot0001* CentOS sdb
Boot0002  Hard Drive 
Boot0003  CD/DVD Drive 
Boot0004* UEFI: Built-in EFI Shell 
Boot0005  Hard Drive 
Boot0006  CD/DVD Drive 

上記の状態で reboot すると、sdb 側で立ち上がることが予想されますが、
実際は、なぜか sda で立ち上がってしまいます。

BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001,0004,0002,0003
Boot0000* CentOS sda
Boot0001* CentOS sdb
Boot0002  Hard Drive 
Boot0003  CD/DVD Drive 
Boot0004* UEFI: Built-in EFI Shell 
Boot0005  Hard Drive 
Boot0006  CD/DVD Drive 

よくわからないです。

仕方ないので、/etc/rc.local から、次のような perl スクリプトを呼び出すように
設定しておきました。

#----- cut ----- cut ----- cut ----- cut ----- cut ----- cut ----- cut -----
#!/usr/bin/perl
#
use strict;
my $efibootmgr = "/usr/sbin/efibootmgr";
#
open(EFIBOOT,"$efibootmgr|");
while(<EFIBOOT>){
   chop;
   if (/^BootCurrent: ([0-9]+)/) {
      my $boot_current = $1;
      print "$efibootmgr -n $boot_current\n";
      system("$efibootmgr -n $boot_current");
   }
}
#
exit 0;
#----- cut ----- cut ----- cut ----- cut ----- cut ----- cut ----- cut -----


--
豊田 二郎
jiro.toyoda @ gmail.com



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