Beelink CS-George
Thank you very much George and Ian from Support.
Here the guided steps that worked for me.
Because of the missing VMD option using a USB ISO Boot is not possible.
Guide: Samsung 990 PRO Firmware Update on Linux/TrueNAS (No Bootable Media Required)
This guide explains how to update the firmware of Samsung 990 PRO SSDs when they are installed in a system (e.g., a Beelink with a PCIe-switch backplane) without using a bootable USB stick. We will extract the official Samsung tool directly from the ISO and run it within your existing environment.
Prerequisites
- A running Linux distribution (e.g., Debian, Ubuntu) or TrueNAS (Scale).
- Installed packages: p7zip-full, nvme-cli.
- The correct Firmware ISO downloaded from the Samsung Semiconductor website.
Step 1: Prepare the Directory & Extract the ISO
We extract the initrd (the RAM disk image) from the ISO, as it contains the actual flash binary and the encrypted firmware container.
mkdir -p ~/nvme_update && cd ~/nvme_update
Copy your downloaded ISO into this folder
1. Extract ‘initrd’ from the ISO
7z e Samsung_SSD_990_PRO_XXXX.iso “initrd” -r
2. Extract the content of ‘initrd’ (Gzip/CPIO) into a subfolder
mkdir -p ./tools
zcat initrd | sudo cpio -idv -D ./tools
Step 2: Prepare the Samsung Update Tool
Navigate to the directory containing the fumagician binary and make it executable.
cd ./tools/root/fumagician/
sudo chmod +x fumagician
Step 3: Scan & Flash (The Safe Method)
Instead of flashing manually with nvme-cli, we use the official Samsung tool. This tool validates the encrypted .enc firmware containers before writing any data to the drive.
Scan Drives: Verify that all SSDs (even those behind a PCIe switch) are detected.
sudo ./fumagician -l
Flash Firmware: Start the interactive update process.
sudo ./fumagician
Follow the on-screen instructions and confirm with y when prompted.
Step 4: Mandatory Cold Boot
After a successful flash (“Success”), the controllers must be completely depowered to load the new firmware. A simple soft reboot is often insufficient for systems with PCIe switches.
Shut down the system: sudo poweroff
Unplug the power cable and wait for at least 60 seconds.
Plug back in and boot the system.
Step 5: Verification
After booting, check if the new Firmware Revision (FR) and Serial Numbers (SN) are displayed correctly:
sudo nvme list
Alternatively, for a detailed list of all controllers:
for i in $(ls /dev/nvme[0-9] | cut -d’/' -f3); do
echo “— $i —”
sudo nvme id-ctrl /dev/$i | grep -E ‘sn |fr ’;
done
Step 6: Cleanup
Once everything is verified, you can safely remove the temporary directory:
sudo rm -rf ~/nvme_update
Note: Perform these steps at your own risk. Ensure you have a backup of your data (e.g., ZFS pool) before proceeding with a firmware update.
P.S. I have no clue why the text is formatted this way.