- Updating the SSD firmware on Linux improves stability, performance, and fixes serious controller errors.
- Each manufacturer offers different methods: bootable ISOs, specific executables, or dashboards only for Windows.
- In addition to the firmware, the following are key: AHCI mode, TRIM, secure spot erase, and correct mounting configuration.
- After updating, it's advisable to check SMART and, if errors persist, contact technical support or the warranty.

If you use Linux daily and have a modern SSD, sooner or later you'll have to deal with the disk firmware updatesIt's not exactly the most fun thing in the world: each manufacturer does its own thing, many only offer utilities for Windows, and in the case of some brands, they don't even release a simple binary that you can use directly with typical Linux tools like nvme-cli o hdparmEven so, with a little know-how, you can keep your SSD up to date without leaving your favorite distribution.
Updating the firmware is not a whim. In practice, it can make the difference between a stable system and a device that freezes. iowait triggered, random crashes, and boot problemsThis is especially true with some older SSD models. Furthermore, many firmware updates fix major bugs with certain file systems, improve performance, or add proper support for features like TRIM. We'll take a detailed look at how this issue is handled in Linux by different manufacturers and what precautions should be taken.
Why is it so important to update the SSD firmware?
Before we delve into commands and tools, it's important to understand what's at stake. Firmware is the “internal operating system” of the SSDThis includes the code that manages how data is written and read, the flash memory controller, the internal block tables, wear leveling, and so on. An error there is no trivial matter; it can cause anything from performance loss to critical failures.
Some users, after a few days of happiness with their new SSD, have started to suffer extremely high I/O wait times (iowait), extreme slowness, and system semi-locksThis has even reached the point where newly installed Linux systems refuse to boot. In many of these cases, the first step to rectify the situation has been to update the firmware to a version corrected by the manufacturer.
In specific models (such as some older OCZ Octane or Vertex models), the firmware change has meant not only eliminate stability problemsbut also a noticeable performance boost. It's an adjustment we usually leave for "another day," but in the case of SSDs, it should be treated almost as an integral part of system startup.
However, while the process typically doesn't erase your data, any flashing operation falls into the category of "if something goes wrong, it will happen at the worst possible moment." That's why it's highly recommended. have a backup or system image before touching anything in the firmware.
Firmware manufacturers and support on Linux: the real picture
The biggest problem you'll encounter isn't technical, but ecosystem-related: each brand handles firmware updates differently, and often the Official support focuses almost exclusively on Windows.For Linux, you often have to use bootable ISO images, specific utilities, or simply make do.
In the case of Samsung, for example, there are situations where a direct binary for use with is not provided. nvme-cliThis forces us to resort to update ISO images These are designed to boot into their own environment and flash from there. However, from Linux we can "unpack" that ISO and run the update tool directly.
Other manufacturers, such as OCZ (before being acquired, very popular with Vertex and Octane), distributed Linux-specific utilities These are executable files that connect to the internet, detect the model, and download the latest firmware version. The process typically involves preparing a USB drive with a live distribution and working from there to avoid using the hard drive.
At the opposite extreme, there are brands that provide virtually no official Linux tools, or that only allow updates from Windows or from the motherboard's own utility. This is the case with many OEM systems (Dell, HP, Lenovo, etc.), where the SSD upgrades come integrated into the manufacturer's upgrade mechanisms and are not offered directly to the user as a generic firmware file.
Updating the firmware of a Samsung NVMe SSD (example with 980 Pro)
Let's take the example of a fairly common NVMe SSD, such as a Samsung 980 ProThe manufacturer provides firmware update ISO images that, in theory, are intended to be burned to a USB drive and booted from there. However, from Linux, we can use that ISO without needing to reboot into a different environment.
The basic procedure would be as follows. First, locate the ISO corresponding to your SSD model in the Samsung support tools section, around their storage utilities (the typical path is usually something like this): “consumer storage / support / tools” on their website). Once you've identified the correct ISO, you download it using something like:
wget https://semiconductor.samsung.com/resources/software-resources/Samsung_SSD_980_PRO_5B2QGXA7.iso
Next, create a mount point and mount the image using the loop option:
sudo mkdir /mnt/iso
sudo mount -o loop Samsung_SSD_980_PRO_5B2QGXA7.iso /mnt/iso
Within that ISO there is usually a initrd with the entire update environmentFrom Linux you can extract it with a command like this:
sudo unmkinitramfs /mnt/iso/initrd ~/980
Once unpacked, you'll see that inside is the binary responsible for the update, known in this context as fumagicianYou mark it as executable and launch it directly:
sudo chmod +x 980/root/fumagician/fumagician
sudo ./980/root/fumagician/fumagician
The tool will guide you and, at some point, will ask for confirmation. At that point, you need to say yes, accept the process, and let the program do its work. Write the new firmware to the NVMe drive.Do not interrupt the process under any circumstances, and especially do not turn off the machine.
When finished, it's advisable to turn off or restart the device to force a complete power cycle. After restarting, you can verify that the firmware version has been updated correctly with:
sudo nvme list
In the output of this command, you will see the SSD model and the updated firmware field. If the revision number matches the expected one, the operation has completed successfully and your Samsung 980 Pro is now up to date.
Updating firmware of classic SATA SSDs (e.g., OCZ Octane / Vertex)
Moving on to older SATA SSDs, the approach is usually different. A typical example is that of the OCZ Octane or VertexThese drives, very popular at the time, suffered from some stability issues in older firmware versions. Users with these drives experienced extremely high boot times, partial freezes, and recurring failures when booting various distributions.
In these types of units, the manufacturer offered specific tools (such as OCZ Toolbox on Windows) with several limitations: for example, They did not allow flashing the disk from the same system SSD.They forced you to have the operating system on a separate drive, and could fail if you had certain drivers installed (such as specific versions of Intel RST). A significant hassle, especially if you already use the SSD as your primary drive.
The practical solution for most users was to resort to a bootable USB flash drive with a live Linux distribution (for example, Ubuntu), copy the firmware update executable provided by OCZ to it and perform the entire process booting from that USB drive. The procedure, broadly speaking, would be:
First, prepare a USB drive of at least 1 GB and write a live Ubuntu image to it using utilities such as unetbootinThis tool allows you to both download the ISO directly (if you don't already have it) and reuse a downloaded ISO to write it to a USB drive, after formatting it in FAT32. It is essential to select the correct unit from the USB drive so you don't accidentally flash another hard drive.
Next, you download the OCZ firmware executable (a file named something like fwupdand place it in the root directory of the USB drive. When you restart your computer, enter the BIOS, restore the default settings if you wish, change the SATA controller mode to AHCI, and select to boot from the Ubuntu live USB.
When you load the live environment, you confirm that you have internet access (for example, by opening Firefox and verifying that you can browse) and locate the file fwupdwhich in many cases will appear mounted under a route type /cdromThis distribution treats the USB drive as if it were an optical drive, so it's normal to see the contents under that directory.
From a terminal, you run the utility using sudo and pointing to the corresponding SATA device, For example:
sudo /cdrom/fwupd /dev/sda
The program should identify the SSD model (for example, OCZ-VERTEX2), display the serial number, the current firmware version, and, if everything is correct, proceed to flash the new revision. You will see a success message on the screen, and when you check again, the firmware version will have changed to the new one (for example, from 1.24 to 1.29).
It is possible that the SSD is in a state “locked” or “frozen”This prevents flashing. In that case, the tool will display an error message indicating that the drive is locked and suggesting a power cycle. A common way to unlock the drive in this context is to force the computer to suspend from within Ubuntu Live (standby mode), wait a few seconds, and resume. After this cycle, many drives will no longer be frozen and will allow you to run the program again. fwupd successfully.
Once the drive is updated, restart, return to the BIOS, restore any previous settings (including overclocking), and boot your usual operating system from the SSD. Windows, if it's your primary operating system on that machine, will detect changes to the device and prompt you to restart once more. From then on, the drive will operate with the New firmware already applied.
Secure erase, AHCI mode and TRIM: key steps around firmware
Firmware updates are usually accompanied by other important adjustments to extend the SSD's lifespan and prevent rare problems. One key concept to understand is that an SSD is not treated like a traditional mechanical hard drive: solid-state drives They emulate the interface of an HDD, but inside they're a different story.Therefore, rather than "formatting" them, it often makes sense to perform a secure erase.
Secure erase is simply a secure erase at the controller level that It resets the flash cells and leaves them like new.It can be launched from the manufacturer's own utilities (for example, the OCZ tool) or from Linux using commands such as hdparmAlways with great care. Before you start, it's a good idea to correctly identify the disc with:
sudo fdisk -l
There you'll see something like:
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
and the partition details. To find out if the disk is frozen or supports secure erase operations, the following is usually used:
sudo hdparm -I /dev/sda
At the output there is a “Security” block where the status can appear “frozen” or “not frozen”If it is frozen, some guides recommend unplugging and replugging the data/power cable while the system is running (with extreme caution) until the status changes to "not frozen", or resorting to suspending and resuming the system, similar to what was discussed earlier with fwupd.
Another key aspect is how the SATA controller is configured in the BIOS. It's very important that the SSD works in AHCI mode and not in IDE/LegacyUnless, for some reason, you're using an outdated kernel. If you switch from IDE mode, you lose features like NCQ and, in many cases, proper TRIM support, which ultimately leads to performance degradation and potential problems as the disk fills up.
With Linux installed and running on the SSD in AHCI mode, the next step is TRIM. On systems with ext4 It is common to enable the mounting option discard so that the file system tells the SSD which blocks are no longer in use. This can be done by editing the file. /etc/fstab and adding the corresponding option to the SSD partition lines, for example:
UUID=... / ext4 discard,errors=remount-ro,relatime 0 1
UUID=... /home ext4 discard,defaults,relatime 0 2
With discard activated, the system launches TRIM in real time When you delete files or free up blocks. The option relatime (which is already the default in recent kernels) reduces the frequency with which file access times are updated, slightly lowering the write load on the SSD. Another common strategy is to move things like swap space to a traditional mechanical hard drive. /var or browser caches, especially if you're concerned about the longevity of the solid-state drive.
When the firmware is only updated from Windows or OEM
Not all scenarios are so "friendly" to Linux. In many cases, especially with SSDs sold under brands like SanDisk or WD, the official tool for managing the drive and updating its firmware is a Dashboard available only for WindowsThis program detects both SanDisk and WD drives, communicates directly with the SSD, and if it finds a newer firmware version hosted in the manufacturer's cloud, it downloads and installs it.
In these environments, Mac or Linux versions of the Dashboard simply don't exist. If you have a pure Linux system and your SSD is from one of these brands, you'll find that There is no official application to flash from your system.The alternative usually involves one of these options: temporarily booting Windows from another disk or USB drive, using a different Windows computer to update the disk, or, in the case of OEM machines (Dell, HP, Lenovo, etc.), relying on the update utilities integrated by the computer manufacturer.
In OEM systems things get a bit more complicated: even if the SSD is physically a SanDisk or WD model, its firmware is usually a specific variant for that manufacturerFirmware updates are then distributed through tools such as “Dell Updates”, “HP Support Assistant” and similar, and the “retail” Dashboard does not apply them, because they are not intended for consumer units but for the specific OEM configuration.
Very important: if the Dashboard indicates that your firmware is up to date, but you have seen elsewhere that a newer version exists, it may be precisely this difference between retail firmware and OEM firmwareIt is not recommended to try to mix firmwares from different channels, because OEM SSDs may have different characteristics or operating parameters.
Regarding receiving the default firmware file for manual application, manufacturers are usually very clear: the manual Dashboard update option is intended for special cases where technical support provides a very specific test file and precise instructions for loading it. It's not common for them to freely provide you with that binary for you to run from Linux on your own.
If your SSD is already out of life (EOL), official utilities usually allow you to apply the latest firmware version released while the product was on saleBut there won't be any further revisions after that. And if the Dashboard fails to flash the drive, the only option left is to open a support case and see if they offer any alternative solutions.
Checking the SSD status after the upgrade
After tinkering with the firmware, it's a good idea to perform some disk health checks. Beyond simply checking the version number with nvme list or through the BIOS, it is advisable to take a look at the SMART data of the unit to confirm that no unusual relocated sectors, critical errors, or anything out of the ordinary are detected.
On Linux you can install the package smartmontools and use smartctl To read this information. For example:
sudo apt-get install smartmontools
sudo smartctl -a /dev/sda
This will show you a large number of metrics: error count, number of reallocated blocks, temperature, power-on hours, etc. Some graphical interfaces, such as the "Disks" utility in GNOME environments, also offer a tab for SMART status and basic benchmarksPlease note that if the disk is mounted, certain benchmarks may fail, indicating that the device is busy.
If, after updating the firmware, configuring AHCI, enabling TRIM, and checking parameters, the SSD continues to have serious problems, the most sensible thing to do is prepare the SMART data and contact the brand's technical supportIt wouldn't be the first or the last unit that has to be replaced under warranty because it came "damaged" from the factory or has suffered abnormal degradation.
In the end, although the process of updating SSD firmware in Linux might seem like a bit of an ordeal involving ISOs, specific tools, AHCI modes, and "frozen" states, it's worth having it under control: having stable firmware, with properly configured TRIM, secure erase when necessary, and regular SMART monitoring makes a huge difference to your system's performance. SSD and Linux work fast, reliably, and without strange surprises during years.
Passionate writer about the world of bytes and technology in general. I love sharing my knowledge through writing, and that's what I'll do on this blog, show you all the most interesting things about gadgets, software, hardware, tech trends, and more. My goal is to help you navigate the digital world in a simple and entertaining way.

