本番ファームウェア更新が難しい理由と fwupd の位置づけ
ファームウェアの更新は OS パッチや設定変更と異なり、失敗したときの影響が直接ハードウェアレイヤーに及びます。書き込みが途中で止まれば起動不能になるケースもあり、多くの運用環境では「触らぬ神に祟りなし」として長期間放置されてきた経緯があります。
一方で、2024〜2025年にかけて UEFI・NVMe・ネットワークカードを標的にした攻撃手法が相次いで公開されたことで、ファームウェアの脆弱性対応は運用上の義務に近い位置づけになりつつあります。CVE 管理ツールがファームウェア層を対象外にしたまま「全脆弱性対応済み」とレポートするのはもはや通用しない状況です。
fwupd は Linux エコシステムが LVFS(Linux Vendor Firmware Service)を介して提供するファームウェア管理デーモンです。Dell・Lenovo・HP・Intel・AMD・Western Digital など主要ベンダーが公式署名済みパッケージを LVFS にアップロードしており、ディストリのパッケージ管理と同じ感覚でファームウェアを更新・ロールバックできます。ベンダーサイトから手動でイメージを取得して USB ブートする従来手法と比べると、自動化・監査・ロールバック対応の点で大きく前進しています。
事前準備:更新前に確認すべき 4 項目
段階適用の流れに入る前に、まず現状把握と安全網の確認を済ませます。
1. デバイス一覧と現行バージョンの確認
sudo fwupdmgr get-devices
出力には Device ID・現行ファームウェアバージョン・更新履歴が含まれます。対象ホストのデバイスリストをテキストファイルに保存しておくと、復旧時の比較に役立ちます。
2. LVFS から利用可能な更新の取得
sudo fwupdmgr refresh
sudo fwupdmgr get-updates
refresh でローカルキャッシュを最新化してから get-updates を実行します。更新ごとに LVFS URI・リリースノート URL・信頼度フラグ(Trusted Payload / Trusted Metadata)が表示されるため、適用前にリリースノートを必ず目視確認してください。特に「reboot required」「AC power required」の注記は見落としがちです。
3. BMC・IPMI 経由のリモート電源制御の確認
UEFI ファームウェア更新は再起動を伴います。物理アクセスが難しいデータセンター環境では、BMC(iDRAC・iLO・IPMI)経由でのリモート電源操作が可能な状態であることを事前に確認します。更新直後に OS が応答しない状況でも、BMC コンソールから起動状態を把握できます。
4. ストレージのスナップショットまたはバックアップ
ファームウェア更新の失敗でストレージが破損するケースはまれですが、NVMe コントローラーのファームウェアを更新する場合は事前スナップショットを推奨します。LVM シン・ZFS スナップショット・Btrfs サブボリュームのどれでも構いませんが、スナップショット取得時刻を記録しておくことが大切です。
段階適用の進め方:テスト機 → ステージング → 本番
本番環境に直接適用する前に、同一ハードウェア構成のテスト機(または役割上の影響が最小なノード)で更新を試します。fwupd の更新フローそのものはどのノードでも同じですが、段階を踏むことで「特定ハードウェアリビジョンでの問題」「自社ワークロード固有の起動シーケンス問題」を事前に検知できます。
- テスト機での確認ポイント:更新後の再起動時間・POST 画面の変化・OS の正常起動・デバイス認識の継続性
- ステージング機:本番相当の設定(RAID・HBA・NIC ティーミングなど)が乗った環境で同じ確認を繰り返す
- 本番展開:サービスに影響が出にくいメンテナンスウィンドウを設定し、1 台ずつ順次適用する
クラスター構成(Kubernetes・Pacemaker など)では、ノードを一時的にクラスターから切り離してからファームウェア更新→再結合の手順を取ります。ローリングアップデートの要領でノードを 1 台ずつ処理することで、サービス継続性を確保しながら更新を進められます。
更新実行と完了後の検証手順
更新の実行
# すべての利用可能な更新を適用
sudo fwupdmgr update
# 特定デバイスのみ更新する場合(Device ID を指定)
sudo fwupdmgr update <DEVICE-ID>
多くの場合、コマンド実行後に再起動プロンプトが表示されます。UEFI ファームウェア更新は再起動時の POST フェーズで実際の書き込みが行われるため、電源断や強制リセットは絶対に避けてください。AC 電源が必要なデバイス(ノートPC のバッテリーのみ運用など)では更新がブロックされ警告が表示されます。
再起動後の検証
# バージョンが更新されたことを確認
sudo fwupdmgr get-devices
# 更新履歴の確認
sudo fwupdmgr get-history
get-history は適用済みのファームウェアバージョン・適用時刻・成否のステータスを返します。Success 表示を確認したうえで、実際のサービス疎通・ハードウェアセンサー値(ipmitool sdr など)・dmesg のエラーログを確認するのが確実です。
失敗時の復旧フロー
更新が完全に失敗した場合と、書き込みは完了したが動作不良が起きた場合で対処が分かれます。
ケース A:更新コマンドがエラー終了し、再起動前の状態が保たれている
この場合はファームウェアの書き込み自体が始まっていないか、バックアップが保持されています。fwupdmgr get-devices でバージョンが変わっていないことを確認したうえで、エラーメッセージを journalctl -u fwupd で精査します。よくある原因は「AC 電源未接続」「Secure Boot ポリシー」「デバイスが busy 状態」です。条件を解消して再試行するか、更新をスキップします。
ケース B:更新後に OS が起動しない・デバイスが認識されない
fwupd は多くのデバイスで旧バージョンのイメージをキャッシュしており、ロールバックコマンドで以前のバージョンに戻せます。
sudo fwupdmgr downgrade
OS が起動しない状態では Live USB(同一ディストリ)から起動し、chroot 環境で fwupd を操作するか、ベンダー提供のリカバリーイメージを使います。Dell の場合は iDRAC の「Firmware Rollback」機能、HP では iLO の「Firmware Recovery」がこれに対応しています。事前に BMC の管理アカウントと接続情報を記録しておくことが、このシナリオでは決定的に重要になります。
ケース C:NVMe コントローラーのファームウェア更新後にデバイスが消える
まれなケースですが発生報告があります。この場合は別ストレージから OS を起動し、問題の NVMe を接続した状態でベンダー提供の CLI ツール(Samsung Magician の Linux 版・nvme-cli など)を用いて手動でファームウェアを書き戻します。nvme id-ctrl /dev/nvme0 でコントローラー情報とファームウェアリビジョンを確認してから操作してください。
2026年の現行環境で押さえておくべき差分
fwupd は 2025〜2026年にかけて以下の点で挙動が変わっています。手順書が古い場合は見直しが必要です。
- LVFS の信頼レベル区分が細分化:
get-updatesの出力にNotify・Stable・Testingのチャンネル区分が明示されるようになっています。本番環境ではStableチャンネルのみを対象にするポリシーを設定ファイル(/etc/fwupd/daemon.conf)で明示することを推奨します。 - Secure Boot 対応の強化:RHEL 9.x / Ubuntu 24.04 以降では Secure Boot が有効なまま fwupd が動作しますが、MOK(Machine Owner Key)の管理が自動化される代わりに初回セットアップ時に
mokutilの承認手順が必要なケースがあります。 - systemd サービス名の変更なし、ただし D-Bus ポリシーの見直し:
systemctl status fwupdは従来通りですが、非 root ユーザーが更新を実行できる条件が polkit ルールで厳格化されています。自動化スクリプトで sudo なしに fwupdmgr を呼ぶ構成は要確認です。 - ARM サーバー(Ampere・Graviton 系)の対応拡充:x86_64 中心だった LVFS 登録が ARM サーバー向けにも広がっており、クラウドプロバイダーのオンプレミス版や Edge サーバーでも fwupd が実用的な選択肢になっています。ただし対応デバイス ID の確認は
fwupdmgr get-devices --show-all-devicesで実施してください。 - コンテナ環境での注意:Kubernetes ノードの OS をコンテナイメージで管理する Flatcar Linux・Talos Linux では fwupd は OS レイヤーではなく Node OS の管理ツールチェーンから別途呼び出す構成になります。fwupd デーモン自体をコンテナ内から直接動かすことは想定外の動作を招く可能性があるため、ノードの特権コンテナから HostPath マウントで操作するアプローチは慎重に評価してください。
ファームウェア更新は「やらない」コストが「やる」コストを静かに上回る領域です。fwupd を組み込んだ段階適用フローを標準化することで、属人的な判断に依存せず、チーム全体で再現性のある更新運用を維持できます。リリースノートの確認・テスト機での先行検証・復旧手順の事前整備という 3 つを習慣にするだけで、本番障害のリスクは大幅に下がります。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
PR・広告
コマンド操作から基本運用までを手を動かして学べる定番書。記事で触れた技術の土台固めに。
※ Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。
