仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

完全に沈黙してしまったDell R620のiDRACにUART接続して復旧させる

最近の弊社では、久々に検証機材の近代化を行っている最中です(それでも安〜い中古ですが……)。そうすると、サーバーラックからは古い機材が押し出されて、素直に廃棄をしたり、お知り合いで古くても欲しいという方がいればお譲りしたりしています。

今回押し出された機材は、Dell R620やHPE DL360p Gen8といった、Xeon E5-2600 V1/V2世代です。CentOS Stream 10では残念ながらサポートが打ち切られてしまいますが、おそらく数年くらいなら、まだちょっとくらいは遊べそうです。今回もお知り合いからの引き合いはあるとのことだったので、お譲りできるように機材の調整と、iDRACやiLOに残ったユーザー情報の初期化をしていきました。引き合いがなくても廃棄前にはもちろん作業しますが。

iDRACが完全に沈黙している……?

ほとんどの機材は問題なくリセット作業が完了しましたが、Dell R620のうち2台だけが、通電してもiDRACに接続できませんでした。フロントパネルのボタンと画面も反応しませんし、起動してもBIOSがiDRACとの通信ができずにOSの起動まで行けませんでした。ファンが全回転のままなら起動できるようなメッセージこそ表示されますが、キー入力をしても先に進めませんでした。

つまり、iDRACが壊れてしまったようです。1台は、2年くらい前までは確実に稼働していましたが、その後はずっと通電していなかったため、フラッシュに何らかの影響があったのかもしれません。発売から12年くらいの機材になるので、どんなにきれいな見た目をしていても古いものは古いし、壊れるものは壊れます。でも、BIOSとかは動くので、何らか復旧方法があるのではないかと調べてみると、ありました。

UART接続してシリアル通信でコマンドを打って直す

見つけた記事曰く、システムボードからiDRACのUARTのパターンを見つけ出して、手近にあったと思われるストローとブルータック(日本で言うひっつき虫とか、練り消しみたいなものです)でポゴピンを押し当てながら接続して、シリアル通信でコマンドを打ち込んで復旧させたようです。

https://www.reddit.com/r/homelab/comments/16z1ntx/i_unbricked_my_idrac7_with_a_drinking_straw_and/

システムボードを見てみると、ご丁寧にも「J_IDRAC_UART」とシルク印刷されたパターンを見つけたので、実践してみることにしました。

iDRACのファームウェアは、あらかじめSDカードに書き込んでおき、フロントパネルに挿入しておきます。

シリアル通信に使用したのは、Raspberry Pi 5のUART接続や、Raspberry Pi Picoのデバッグ接続に使える「Raspberry Pi Debug Probe」という製品です。ピンヘッダータイプのケーブルが付属しているため、すぐに作業に取りかかれました。たいへん便利。2000円くらいで購入できます。

Raspberry Pi デバッグプローブ — スイッチサイエンス

今回は、元ネタのように固定はやらずに、手で押し当て続けて通信を試みる雑な作戦で行きます。

ボーレート115200bpsで接続すると、プロンプトが表示されました(!)。util recoverコマンドが存在することを確認して、以下のコマンドを実行しました。元の記事のコマンドはやや誤っていたようで、少し修正をしてあります。後述しますが、-cleanは一旦はつけないほうが良いです。

> util recover -emmc -from sd -f firmimg.d7 -noreset -clean

書き込みが終わるまでケーブルを押さえる手はそのままで見守りました(おそらく関係ないので手を離して待っていても良いと思います)。完了したらリセットコマンドを入力して、iDRACを再起動します。

> util reset

しばらくするとSuperH Linuxなるものが起動してきて、しばらくすると無事に起動しました。フロントパネルのディスプレイやボタンも反応するようになり、サーバーの起動も問題なくできるようになりました。すごい……!

しかし、設定はリセットされて、ライセンス情報も吹き飛んでしまいました。設定はともかく、ライセンスがないとリモートコンソールなどが使えなくなってしまうため、利用価値が損なわれてしまいます。このことは記事にも書かれていましたが、ライセンスのバックアップがない限りはリストアできないそう。しかし、壊れて起動しない環境からバックアップはできないでしょうから、これは諦めるしかなさそうです。無念。

設定とライセンスを維持したままリカバリーもできた

2台目の作業では余裕ができたので、試しに-cleanオプションを無しにして実行してみました。だめなら-cleanをつければいいだけですし。

> util recover -emmc -from sd -f firmimg.d7 -noreset

すると、このコマンドでもiDRACが無事に復旧できて、設定もライセンスも維持されていることが確認できました。1台目もこれならライセンスが犠牲にならずに済んだのに……。いや、もしかしたら元からExpressライセンスだったかもしれない……そう思うことにしましょうか。元の設定でWeb UIへのアクセスを確認した後、サーバーのシステム設定画面からiDRACの初期化を実行しました。ちなみにこの方法ではライセンスは消えません。

まとめ

完全沈黙してしまったDellサーバーも、UART接続できる機材とSDカード1枚で直せてしまったというお話でした。直せたところで放出か廃棄なので、やる意味はないように思いますが、2台目の復旧の通り、設定が蘇ってしまうことがわかったため、難易度が高くなければ直してでも初期化をするのが安心と言えそうです。

iDRACが何をしても応答しなくなったけど、どうしても復旧したい……!という時は、試してみてみる価値アリです。