Home > Admin | Server > DellのサーバマシンのBIOS設定をLinux上から行う方法

DellのサーバマシンのBIOS設定をLinux上から行う方法


  • 要約: activateCmosToken 0xXXXX でDellのサーバマシンのBIOS設定は変えられます (但し、サポート外)

既に CentOS 5.x をインストール済みの Dell PowerEdge 830 サーバで、OS上でメモリがなぜか256MBしか認識されていませんでした。何か壊れてるのかと思い、既にインストールしてあったDell提供のサーバ管理ソフトウェア OpenManage でハードウェア情報を確認してみると、1GBのメモリが2枚認識されており、合計2GBと表示されていました。

そこで調べてみるとDellのサーバマシンのBIOSには、巨大なメモリが見えるとインストールが失敗するようなOSインストール用に OS Install Mode という設定があり、これが Enable になっているとメモリが256MBしか見えないようにハード的に制約を加えるようです。

というわけで、BIOSの設定を変えれば良いことが判りました。でも、このサーバは遠隔地に置いてあって、現地に行くのがちょっと大変です。こういう時にリモートKVMが使える別売りのDell Remote Access Controller(DRAC)が入っていれば、BIOS画面を直に見ながら簡単に設定できるのですが、残念ながらこのマシンにはDRACは入っていませんでした。というわけで、Linux上からBIOSの設定を変えられないのかなと調べたら変えられました。方法としては次の2つあります。

  1. OpenManage 上のBIOS設定で変更
  2. smbios に含まれるコマンドで変更

1は、WEB UIから設定する方法ですが、設定できる項目に限りがありました。基本的な項目以外は設定できないと思って良いでしょう。今回設定を変えたかった OS Install Mode も設定できませんでした。以下に、PowerEdge 830 で設定可能な項目と設定されていた値を記しておきます。

  • 一般
    • Num Lock: オン
    • Diskette: 自動
    • NIC: PXE で有効
    • USB: BIOS サポートありで有効
    • IDE: 自動
    • Boot Sequence: デバイスリスト
    • Speaker: オン
    • CPU Logical Processor (HyperThreading): 有効
    • AC Power Recovery Mode: 最終
    • Embedded SATA Controller: ATA
    • SATA Port 0: 自動
    • SATA Port 1: 自動
    • SATA Port 2: オフ
    • SATA Port 3: オフ
    • IDE Primary Drive 0: 自動
    • IDE Primary Drive 1: オフ
    • Demand-Based Power Management: 無効
  • シリアル通信
    • Serial Port 1: 不明
    • Console Redirection After Boot: 有効
    • Console Redirection: シリアルポート 1
    • Console Redirection Failsafe BAUD Rate: 19200

OpenManage はyumで簡単にインストールできるので、上記で設定した項目があれば、OpenManage で設定するのが良いと思います。

2は、コマンドラインから設定する方法です。smbios と libsmbios は、OpenManage を入れると一緒にインストールされるDellのサーバマシンのBIOSにアクセスするためのユーティリティ群です。

こちらはおそらくDellのサーバマシンに用意されているBIOSの設定項目すべてを設定できるのだと思います。ただし、BIOSの設定を変える activateCmosToken というコマンドは Unsupported Binaries に分類されています。従って、この記事を読んで設定したらBIOSが壊れてマシンが起動しなくなることもあるかもしれません。そうなっても自分で責任とれる方以外は絶対に行わない方が良いでしょう。

というわけで、設定の仕方です。設定を行うのはactivateCmosToken コマンドを使います。基本構文は次のとおりです。

# /usr/sbin/activateCmosToken 0x"Token Value"

Token Valueというのは、BIOS設定の項目とというる値に対してユニークに割り振られている値になります。Token Valueの一覧は以下にあります。先頭の項目がToken Valueになります。

見てみれば判りますが、よくあるBIOS設定項目、最新の技術に関する設定項目、そして、Dell独自の設定項目があります。

現在の値を確認するには、isCmosTokenActive コマンドを使います。activateCmosToken 同様、引数に 0x"Token Value" を取ればいいだけです。出力の BITFIELD が 1 の場合、それが有効になっているという意味です。

では具体的に OS Install Mode を設定を変え、設定が変わっているか確認します。Token Value List より、OS Install Mode のとりうる値は Enable と Disable の2つで、それぞれに 0x008a と 0x008b の Token Value が割り当てられています。片方の Token Value に対して activateCmosToken を実行すると、もう片方の Token Value の BITFIELD が無効を示す 0 に自動的に変わります。

  • Limit System Memory (OS Install Mode) を無効化する方法
# /usr/sbin/activateCmosToken 0x008b
DMI type 0xd4  Handle 0xd401  Index Port 0x70  Data Port 0x71  Type 0x008b  Location 0x55 AND(fe) OR(0)  BITFIELD: 1
# /usr/sbin/isCmosTokenActive 0x008a
Running...
DMI type 0xd4  Handle 0xd401  Index Port 0x70  Data Port 0x71  Type 0x008a  Location 0x55 AND(fe) OR(1)  BITFIELD: 0
# /usr/sbin/isCmosTokenActive 0x008b
Running...
DMI type 0xd4  Handle 0xd401  Index Port 0x70  Data Port 0x71  Type 0x008b  Location 0x55 AND(fe) OR(0)  BITFIELD: 1
  • Limit System Memory (OS Install Mode) 有効化する方法
# /usr/sbin/activateCmosToken 0x008a
DMI type 0xd4  Handle 0xd401  Index Port 0x70  Data Port 0x71  Type 0x008a  Location 0x55 AND(fe) OR(1)  BITFIELD: 1
# /usr/sbin/isCmosTokenActive 0x008a
Running...
DMI type 0xd4  Handle 0xd401  Index Port 0x70  Data Port 0x71  Type 0x008a  Location 0x55 AND(fe) OR(1)  BITFIELD: 1
# /usr/sbin/isCmosTokenActive 0x008b
Running...
DMI type 0xd4  Handle 0xd401  Index Port 0x70  Data Port 0x71  Type 0x008b  Location 0x55 AND(fe) OR(0)  BITFIELD: 0

以上です。設定はマシンを再起動すると反映されます。

実際に上記の OS Install Mode を無効化する方法で実際に設定しました。その結果、次のように正常にメモリ2GB認識されるようになりました。

  • 設定前
# free
             total       used       free     shared    buffers     cached
Mem:        252164     232364      19800          0       9264     129620
-/+ buffers/cache:      93480     158684
Swap:      2097144        236    2096908
  • 設定後
# free
             total       used       free     shared    buffers     cached
Mem:       2059368     220968    1838400          0      10396     134724
-/+ buffers/cache:      75848    1983520
Swap:      2097144          0    2097144

無事、サーバのある現地に行くことなく、BIOS設定を変えることができました。遠隔地にあるサーバマシンのBIOS設定をどうしてもリモートで変えたい場合は、試してみると良いかもしれません。ただし、サポート外の方法ですので、BIOSが壊れて起動しなくなるかもしれないことは覚えておいてくださいね!

この記事に関連する別の記事:

  1. Software Design 2007/11号の第2特集5章 DRBD+HeartbeatのGFS2環境 アグレッシブな記事です。ただ記事中に /etc/lvm/lvm.conf のlocking_typeを1から3に変更する説明が無かったです。確かデフォルトだと1になってるため、GFS2のロック情報のやりとりが上手くいかな [...]...
  2. VAIO type P届いた 勢いで2009-01-08 (Thu)にSonyStyleで注文したtype Pが届きました。お届け予定日は1月20日頃でしたが今日届きました。 届いた箱は意外とでかかったものの緩衝材がたくさん入ってるだけで、本体出した [...]...
  3. Windows 7 RC (x86/x64) と Vista SP2 お試し ...
  4. DRBDとクラスタファイルシステムのテストで手詰まり中 (解決済み) ...
  5. LVS + keepalived + VRRP + DSR環境を構築する際のRed Hat Enterprise Linux/CentOSでのネットワーク周りの便利な設定方法 KlabのDSAS開発者さんのパソコン1台ではじめるロードバランサ体験は基本的にDebianをターゲットにされているため、Red Hat Enterprise Linux/CentOSで構築する場合固有の便利な設定方法が [...]...

コメント:0

コメントフォーム
Remember personal info

トラックバック:0

このエントリーのトラックバックURL
http://jfut.integ.jp/2009/11/12/dell-bios-on-linux/trackback/
Listed below are links to weblogs that reference
DellのサーバマシンのBIOS設定をLinux上から行う方法 from ふたつの川うるおう日記

Home > Admin | Server > DellのサーバマシンのBIOS設定をLinux上から行う方法

検索
フィード
メタ情報

Return to page top