📀
Samsung 980 NVMe 1TB のファームウェアをLinux (Proxmox) からリモートで更新する方法
Samsung公式のファームウェアアップデート方法では、ISOをUSBメモリに焼き、BIOSブートして更新する必要があります。
しかし、サーバーのある実家に行くのは面倒だし、USBの準備も手間ですよね。
そこで今回は非公式な方法で、Proxmox環境からLinux上で直接ファームウェアを更新したので手順をまとめました。
対象環境・背景
- 対象ディスク:
Samsung SSD 980 1TB
- 現在のファームウェア:
2B4QFXO7
- 目標バージョン:
3B4QFXO7
- OS: Proxmox (Debian Linux)
最近、突然認識しなくなってIOエラーが頻発する、という現象が発生していて、もしかしてファームウェアが原因かもしれないのでアップデートしてみることにしました。
事前にファームウェアのバージョンを確認する
sudo apt-get install smartmontools -y
sudo smartctl -a -s on /dev/nvme0n1 | grep "Firmware Version"
出力例:
Firmware Version: 2B4QFXO7
アップデートの概要
今回のアップデートでは以下のようなバージョン変更を目指します。
2B4QFXO7 → 3B4QFXO7
更新手順
更新を行う前に必ずバックアップを取ってください!
1. VMを停止してNVMeを開放
Proxmox GUIで以下の操作を行う
- LVMに載っている仮想マシンをすべてシャットダウン
-
Datacenter > Storage > nvme(今回のSSD)
を選び、Edit
からEnable
のチェックを外す
2. Samsung公式サイトからISOをダウンロード
以下ページからファームウェアのISOファイルをダウンロードします。
例: Samsung_SSD_980_3B4QFXO7.iso
wget https://download.semiconductor.samsung.com/resources/software-resources/Samsung_SSD_980_3B4QFXO7.iso
3. LinuxからISOをマウント・展開してファームウェア更新
sudo apt-get -y install gzip unzip wget cpio
mkdir /mnt/iso
sudo mount -o loop ./Samsung_SSD_980_3B4QFXO7.iso /mnt/iso/
mkdir /tmp/fwupdate
cd /tmp/fwupdate
gzip -dc /mnt/iso/initrd | cpio -idv --no-absolute-filenames
cd root/fumagician/
sudo ./fumagician
画面に以下のようなインターフェースが表示されるので、アップデートを進めます。
______________________________DISK(s) DETECTED______________________________
|#| Drive Model | Serial Number | Firmware |
|1| Samsung SSD 980 1TB | S649NX0T******A | 2B4QFXO7 |
アップデート確認:
Do you want to continue the firmware update? [Y/N]: y
終了後のメッセージ:
Exiting Samsung SSD Firmware Update Utility Ver. 3.1
4. Proxmoxを再起動
アップデートの反映のため、Proxmoxホストを再起動します。
5. ファームウェアの更新確認
sudo smartctl -a -s on /dev/nvme0n1 | grep "Firmware Version"
出力に Firmware Version: 3B4QFXO7
が表示されていれば成功です。
6. NVMeを再EnableしてVMを起動
Proxmox GUIに戻り、Datacenter > Storage > nvme
で Enable
を再チェックします。
その後VMを起動し、データ消失などが起きていないことを確認しましょう。
最後に
公式ではサポートされていない方法ですが、Linux上からでもSamsung SSDのファームウェア更新できます。
サーバーを物理的に操作しなくてもよいので、リモート管理している環境において非常に有効です。
ただし、アップデートは自己責任で行ってください~
参考リンク
Discussion