Firmware update Samsung SSD in Linux

I love using Samsung SSDs (SATA or NVMe) and have them in most of my builds. But for some reason, Samsung does not publish a way to update the SSD firmware on Linux and their ISO boot tool is completely broken. Let’s fix that!

Trying to update a Samsung 980 Pro 1TB

In my case I was trying to update 2 Samsung 980 Pro 1TB NVMe drives which are present in one of my Chia plotter boxes. This box is built around a x570 motherboard with a Ryzen 9 5900x.

Easy you’d say, just download the firmware update ISO, put it on a USB stick, boot, update the firmware, done!

Yeah, except that Samsungs Linux boot environment has been broken **for a few years now**! It will not work with your AMD system, two main problems:

  • Refuses to recognize SATA SSDs
    • Doesn’t understand the controller somehow
  • USB keyboard won’t work
    • Broken kernel, no way around it, have to use PS2 keyboard or you are just stuck

And well, I was stuck on the “no keyboard” issue once again, like I had also been a few years back. At that time I solved it by moving those SATA drives to an Intel based system, but that was no option for these NVMe drives.

Flashing in Linux anyway

The machine these drives where in was running Ubuntu 21.04, luckily, with a few easy to follow command-line steps, we can extract the firmware tool from Samsungs ISO file and run it in our modern Linux environment, this helped flashing the drives without any issues for me!

Word of Warning
Although this worked fine for me, your results might be different
Try at your own risk!

Flashing steps

First, unmount any filesystem mounted on the drive(s). If it’s your boot drive, no luck there and you can try flashing while it’s mounted.

Get the URL for your SSD

Samsung keeps a list of downloadable Firmware ISO files here: right click on the version you need and select “copy link” and paste it in the command lines below.

umount /dev/md0

apt-get -y install gzip unzip wget cpio
mkdir /mnt/iso
sudo mount -o loop ./Samsung_SSD_980_PRO_3B2QGXA7.iso /mnt/iso/
mkdir /tmp/fwupdate
cd /tmp/fwupdate
gzip -dc /mnt/iso/initrd | cpio -idv --no-absolute-filenames
cd root/fumagician/
sudo ./fumagician

Parts borrowed from original post

Flash the firmware

Once the tool loads it should recognize your SSD/NVMe drives and ask you if you want to update them.

Once updated I strongly recommend rebooting or even turning the whole system off and then on again.

End remarks

After the system booted up again, I noticed no issues and all my data was still there and I confirmed using “sudo smartctl -a” on my NVMe drives that they where indeed running the new firmware!

I have no clue why Samsung stopped providing a way to firmware flash your SSDs from Linux, they used to do so but now only offer it for Enterprise SSDs.

This wouldn’t be too big of a problem if their own tooling would work, but as said, their ISO boot environment has been completely broken for a few years now, making it no option.

Next time buying SSDs, if there is a viable alternative vs the Samsung and they do offer tooling to do this, It’ll be a plus on their side….

If you are looking at picking up some of these Samsung SSDs (they are excellent performers), consider using my affiliate links:
👉 Samsung 970Pro 1TB:
👉 Samsung 980Pro 1TB:

Hope this helps you! 😀

9 thoughts on “Firmware update Samsung SSD in Linux”

  1. Hm. This is a lot to take in. Yeah, so let me start with I never used Linux before. LOL. Do I need to buy a PS2 keyboard, or just an adapter would do the trick?
    Thanks again great tutorial and awesome videos.

    1. What? No, if you are using Windows, just flash using that? Confused here….

  2. Hello and thank you for such informative posts. I am currently copying your plotting rig.
    Unfortunately I am not very knowledgeable about Linux and I’m wondering if updating a samsung 970 pro is a must.
    Thank you

    1. Not sure what you mean, but running the newest firmware is always smart!

  3. Hi,
    Thanks for this knowledge! I really love your video about Chia 🙂
    Do you update the firmware just to resolve boot issue or is it usefull regarding the plotting speed?

    1. There where some rumors out there that the 980 Pro 1TB had worse performance in Linux vs Windows, so I updated to the newest version. They have been performing great for me in this Linux boxes. 🙂

  4. Hello,
    after updating, I have always the old version onto the nvme : 2B2QGXA7 instead 3B2QGXA7.

    Did you notice the problem ?

    (I have a raid0 configuration on an Asus B550 chipset). Ubuntu 20.x with an mdadm configuration in raid0 also because the os see 2 drives instead of one logical.

    1. Interesting, mine do show the new version after updating, so not sure what’s going wrong there!

      Yeah, for me the RAID0 performs great and it makes managing things even easier!

Leave a Reply

Your email address will not be published. Required fields are marked *