NetbootでSunのPROMをアップデート

SunのワークステーションのOpenBoot PROM をアップデートするのに、ネットワーク経由の起動でうまくいったのでその方法です。

サーバーマシンとしてLinuxのCentOS 4/x86_64を使いました。

サーバー側の準備

  1. rarpとtftpが必要なので、rarpdとtftpdをyumを使ってインストール。
  2. /etc/ethersの設定

    /etc/ethersにアップデートするマシンのEthernet addressと,適当な同一サブネットのIPアドレスを記述。

  3. tftpdの設定

    /etc/xinetd.d/tftpの中をdisable=noに書き換え

  4. rarpdの起動

    rarpd -vde eth0

  5. ブートイメージの準備

    /tftpbootにSunSolveからダウンロードできた PROMアップデートパッチのZIPの中のflash-update-Blade1000-latest などという名前のものを入れておく

    もはやSunSolveはないので、 便利なサイト で対応する機種のパッチ番号6桁を調べて、tar.Zなどのキーワードで検索するとよい。 なお、Z形式はgunzipで展開できる。

  6. arpテーブルの設定

    tftpがデータを送り返せるようにarpテーブルを設定。 arp -s アップデートするマシンのIP アップデートするマシンのMACアドレス で大丈夫。アップデートが終わったら arp -d アップデートするマシンのIPで元に戻す。

アップデートするマシンでの操作

Initializing Memory...のときにL1(Stop)とAを同時に押すとokで止まるので、 そこでboot net:rarp,flash-update-Blade1000-latestなどのコマンドで 起動できる。

SUNW,Sun-Blade-1000 (2 X UltraSPARC-III) , No Keyboard
Copyright 1998-2002 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.5, 1024 MB memory installed, Serial #XXXXXXXX.
Ethernet address XX:XX:XX:XX:XX:XX, Host ID: XXXXXXXX.

{0} ok boot net:rarp,flash-update-Blade1000-latest
Boot device: /pci@8,700000/network@5,1:rarp,flash-update-Blade1000-latest  File and args:
Timeout waiting for ARP/RARP packet
26dc00

これでいくつかのマシンではうまくいきました(Blade1000, Blade2000, 3台のUltra60)。 ところがUltra30では「Fast Instruction Access MMU Miss」で起動できませんでした。 ファームウェアのバグでファームウェアがアップデートできない...