This is a short tutorial how to update the firmware of Samsung's consumer SSD/NVME drives in Proxmox.
!! CAUTION !! Upgrading firmwares is always a risk!
Before proceeding, make sure
- to backup your VMs which are located on the target drive(s)
- stop all your VMs/LXCs which are located on the target drive(s)
If Proxmox VE itself is located on the drives be sure to backup your configs and anything else which is important to you!
---
Determine current firmware versions with DC Toolkit V2
To get an overview of all installed SSD/NVME firmware you can use the DC Toolkit for Linux V2.
URL: https://semiconductor.samsung.com/consumer-storage/support/tools/
Direct Link: https://download.semiconductor.sams...sources/Samsung_SSD_DC_Toolkit_for_Linux_V2.1
Installation & usage
Login via shell to your PVE. Within the /root directory (or any other directory of your choice) download the DC Toolkit:
	
	
	
		
Make it executable with
	
	
	
		
List all SSD/NVME drives with
	
	
	
		
The tool will detect and list all drives including model, serial no., firmware, capacity, drive health and TBW. It's possible to update the firmware with the DC Toolkit but you'll need the appropiate .BIN file which is encrypted in the ISO files.
To manually decrypt the firmware from an ISO, take a look on this Python script at GitHub:
URL: https://github.com/chrivers/samsung-firmware-magic
There's another script available ion GitHub which decrpyts the .BIN file directly from the downloaded ISO:
URL: https://gist.github.com/Zibri/3b3c34c3ce36ec6c6f57618eeda6f200
It needs 7zip which can be installed with
	
	
	
		
Place the script in a directory of your choice and make it executable with
	
	
	
		
Usage:
./sfwd2.sh <Name-of-your-downloaded.iso>
It will automatically extract and create these files:
DSRD.bin, DSRD.magic, SVTXXXX.bin (<-- the decrypted firmware file) and SVTXXXX.magic
With the appropiate .BIN file available, you can update the firmware with the DC Toolkit.
For a complete set of instructions take a look on the official manual:
URL: https://download.semiconductor.sams...-manual/Samsung_DCToolkit_V2.1_User_Guide.pdf
---
Firmware upgrade with ISO files from Samsung
Step 1
Login via shell and create some temporary directories.
From the root directory we'll use /temp as the base folder:
	
	
	
		
Now you should have /temp with "iso" and "fwupgrade" as subfolders.
Step 2
Open the URL with Samsung's firmware and copy the download link (ISO file) for your drive(s).
URL: https://semiconductor.samsung.com/consumer-storage/support/tools/
In this example, we'll update the 990 Pro firmware.
CD into your /temp dir:
	
	
	
		
Step 3
Mount and unpack the content of the ISO file:
	
	
	
		
Step 4
Within /temp/fwupgrade you should see the following folders:
bin dev etc init lib lib32 linuxrc media mnt opt proc root run sbin sys tmp usr var
CD into /temp/fwupgrade/root/fumagician
	
	
	
		
and start the firmware upgrade process by
	
	
	
		
Do not run the fumagician.sh, it will only reboot your PVE.
Follow the steps in the update utility. It will automatically detect your drives and offer an upgrade. If everything worked well be sure to reboot your Proxmox VE so that the new firmware gets active. To be absolutely sure, power off your host and switch it on again after a few seconds.
The /temp dir can be removed after the reboot.
Hope this tut helps.
Cheers
				
			!! CAUTION !! Upgrading firmwares is always a risk!
Before proceeding, make sure
- to backup your VMs which are located on the target drive(s)
- stop all your VMs/LXCs which are located on the target drive(s)
If Proxmox VE itself is located on the drives be sure to backup your configs and anything else which is important to you!
---
Determine current firmware versions with DC Toolkit V2
To get an overview of all installed SSD/NVME firmware you can use the DC Toolkit for Linux V2.
URL: https://semiconductor.samsung.com/consumer-storage/support/tools/
Direct Link: https://download.semiconductor.sams...sources/Samsung_SSD_DC_Toolkit_for_Linux_V2.1
Installation & usage
Login via shell to your PVE. Within the /root directory (or any other directory of your choice) download the DC Toolkit:
		Bash:
	
	wget -O ssdtoolkitv2 https://download.semiconductor.samsung.com/resources/software-resources/Samsung_SSD_DC_Toolkit_for_Linux_V2.1Make it executable with
		Bash:
	
	chmod +x ssdtoolkitv2List all SSD/NVME drives with
		Bash:
	
	./ssdtoolkitv2 -LThe tool will detect and list all drives including model, serial no., firmware, capacity, drive health and TBW. It's possible to update the firmware with the DC Toolkit but you'll need the appropiate .BIN file which is encrypted in the ISO files.
To manually decrypt the firmware from an ISO, take a look on this Python script at GitHub:
URL: https://github.com/chrivers/samsung-firmware-magic
There's another script available ion GitHub which decrpyts the .BIN file directly from the downloaded ISO:
URL: https://gist.github.com/Zibri/3b3c34c3ce36ec6c6f57618eeda6f200
It needs 7zip which can be installed with
		Bash:
	
	apt install p7zip-fullPlace the script in a directory of your choice and make it executable with
		Bash:
	
	chmod +x sfwd2.shUsage:
./sfwd2.sh <Name-of-your-downloaded.iso>
It will automatically extract and create these files:
DSRD.bin, DSRD.magic, SVTXXXX.bin (<-- the decrypted firmware file) and SVTXXXX.magic
With the appropiate .BIN file available, you can update the firmware with the DC Toolkit.
For a complete set of instructions take a look on the official manual:
URL: https://download.semiconductor.sams...-manual/Samsung_DCToolkit_V2.1_User_Guide.pdf
---
Firmware upgrade with ISO files from Samsung
Step 1
Login via shell and create some temporary directories.
From the root directory we'll use /temp as the base folder:
		Bash:
	
	mkdir -p /temp/{iso,fwupgrade}Now you should have /temp with "iso" and "fwupgrade" as subfolders.
Step 2
Open the URL with Samsung's firmware and copy the download link (ISO file) for your drive(s).
URL: https://semiconductor.samsung.com/consumer-storage/support/tools/
In this example, we'll update the 990 Pro firmware.
CD into your /temp dir:
		Bash:
	
	cd /temp
wget https://download.semiconductor.samsung.com/resources/software-resources/Samsung_SSD_990_PRO_4B2QJXD7.isoStep 3
Mount and unpack the content of the ISO file:
		Bash:
	
	mount -o loop ./Samsung_SSD_990_PRO_4B2QJXD7.iso /temp/iso
cd /temp/fwupgrade
gzip -dc /temp/iso/initrd | cpio -idv --no-absolute-filenamesStep 4
Within /temp/fwupgrade you should see the following folders:
bin dev etc init lib lib32 linuxrc media mnt opt proc root run sbin sys tmp usr var
CD into /temp/fwupgrade/root/fumagician
		Bash:
	
	cd /temp/fwupgrade/root/fumagicianand start the firmware upgrade process by
		Bash:
	
	./fumagicianDo not run the fumagician.sh, it will only reboot your PVE.
Follow the steps in the update utility. It will automatically detect your drives and offer an upgrade. If everything worked well be sure to reboot your Proxmox VE so that the new firmware gets active. To be absolutely sure, power off your host and switch it on again after a few seconds.
The /temp dir can be removed after the reboot.
Hope this tut helps.
Cheers
			
				Last edited: 
				
		
	
										
										
											
	
										
									
								 
	 
	 
 
		