Updating a Samsung SSD (840) Firmware with Linux
If you are lucky and have an (external) CD drive you can burn one of the ISO images provided on the Samsung SSD page. However as I bought the SSD (a 840 non-pro) for my netbook and had already installed the SSD and didn't want to remove it again I didn't have this option.
After some trial and error I succeeded by extracting a part of the ISO image and putting it on the FreeDOS stick that I created using UNetbootin. Neither using the executable for Windows on FreeDOS nor creating a USB Stick using UNetbootin and the ISO image worked for me.
I read that under Windows you can create a bootable USB stick using Magican (can be found on the same download page). I didn't know this before and haven't tried it but if you have a Windows somewhere this might be a safer option than what I suggest here.
For those of you who don't want to repeat the trial and error, here is what worked for me. Updating the firmware is a dangerous procedure, your SSD could be damaged irreparably if the update fails. If you follow these instructions you do that at your own risk.
I have a Samsung 840 (non-pro) SSD but I could imagine that this could work for other Samsung SSDs, too.
The short version
You need the
samsung directory from the
isolinux/btdsk.img image inside the ISO, copy it on the USB stick. Once you have booted the stick, change the directory to
C:\samsung\DSRD\ directory and execute
The long version
- Use UNetbootin to install FreeDOS on the USB stick
- Download the ISO image. I assume it is in
- Mount the ISO image. I've create a directory
/mnt/testfor this purpose:
mount -o loop /tmp/Samsung_SSD_840_DXT07B0Q.iso /mnt/test
- Unmount the ISO image:
mount -o loop /tmp/btdsk.img /mnt/test
/mnt/test/samsungon the USB stick
- Reboot from the USB stick
- Select one of the live versions of FreeDOS
- In FreeDOS execute:
C:\ cd samsung\dsrd\ DSRDGUIO.exe
- Follow the instructions that appear
Feel free to comment if it worked for you or if it didn't so other people can learn from your experiences.
@Andreas Gohr: You can find the firmware version in the output of
hdparm -i /dev/sdX, there should be
FwRev= and after that the firmware version.
For my model they improved “sustained performance” and I found people claiming that the performance in some cases was really increased, that's why I decided to update. The download page also mentions that they fixed “minor bugs”, I don't know what a minor bug in a SSD could be.
I just downloaded the Windows ISO for my 840 drive, DXT08B0Q in my in my case, and then used 'sudo unetbootin' to create a bootable USB flash drive. I used FreeDOS 1.0 as the distribution and version.
I rebooted with that and the Samsung DOS program ran. Thanks for pointing me to that method and the site for the firmware ISO!
In Windows to create all this you can just use something like 7-Zip to extract the 'samsung' directory and copy to USB! :)
Thanks Michael for your clear instructions!
I just want to make a note to others that your instructions apply to the Windows version of the firmware .iso, not to the Mac version of the .iso. The Mac version contains some different directories and filenames which don't match those in your instructions.
Also, besides using hdparm, people can find out the firmware version of their ssd by installing the smartmontools package,
# sudo aptitude install smartmontools
and then issuing the command:
# sudo smartctl –info <device>
Check the man page for lots of other goodies.
Worked great with firmware DXT08B0Q, thanks for the instructions!
Thanks! The Samsung image only got me to “PANIC: mcb chain corrupted” but following your steps worked. I could not run `dir` in the samsung\drsd directory (it just froze) and failed to run it a few times. I went through all the steps again with a different USB stick (this one also only had one partition) and finally realized that it's zero at the end of DRSDGUI0.exe :D
NOTE: it is important that the partition id is correct in fdisk, for me b (W95 FAT32) worked. If it's wrong you probably won't be able to change to C: at all.
At the end of the update the utility reported “FIRMWARE UPDATE UNSUCCESSFUL!!!”, but after turning the computer off and on again, and entering the utility it reported that it had the latest version, so all is well. Phew!
I have a dual-boot machine, with Ubuntu 14.4 installed on a Samsung 840 SSD, and Windows 7 on a HDD. Under Windows, I have the Samsung SSD wizard installed, and it informed me that there's a firmware update. Any idea if it would be safe to run this update from within Windows?
@Ethan: I have no idea how that wizard works. I think the safest option is to use the wizard in order to generate a bootable USB stick (apparently that's possible) and to apply the update using that stick.
As the firmware update shouldn't change any data on the SSD there shouldn't be any problems with a dual-boot system, the only (unlikely) problem I could imagine is that the update works by installing a special boot loader which might not work in a dual-boot system and might corrupt your existing boot loader.
As always create a backup so you can at least get your data back if anything should go wrong.
Hi guys, this procedure works great but the firmware has not been updated! :( I tryied two times with no success on asus eeepc 1201ha, 2Gb ram ssd is Samsung 840 evo 120Gb FW EXT0BB0Q, new FW EXT0BB6Q. I can read everyone has an different error and I worry to loose data on sdd. So, are there news about? Thanks a lot
@Pier: I forget to mention the operating system used, it is xubuntu 14.04 32bit kernel 3.15.5
Great, thanks! I managed to use UNetbootin under Windows to create a bootable FreeDOS USB-stick and extracted and copied the Samsung-files with 7-ZIP. One small thing: In step 11 “C:\” should be “C:”
I have a Dell Optiplex 780DT with a Samsung 840 EVO (FW EXT0BB0Q) and Ubuntu Studio 14.04.1-LTS on it, using LVM. So I decided to upgrade the SSD firmware to EXT0BB6Q and loaded the “Windows ISO” from http://www.samsung.com/global/business/semiconductor/samsungssd/downloads/Samsung_SSD_840_EVO_EXT0BB6Q.iso but it gave the “unhandled exception” error mentioned elsewhere.
So I simply mounted the ISO and the btdsk.img within its isolinux folder and copied over the “samsung” folder and all its contents (several subfolders) onto my DOS-bootable HBCD USB stick. I could then boot the stick, navigate to the folder “samsung/DSRD” and execute “DSRDGUI0.EXE” from there.
ATTENTION: It checked the drive and offered the FW update but warned me it would clear the whole drive and I should make a backup before. Which I did (using Clonezilla). Afterwards I booted with the stick again, updated the firmware, and used Clonezilla to put my Ubuntu Studio system back onto the drive.
All good. Now I'm using 4 of these Samsung 840 EVOs, in several machines, all with the same firmware on them. I can't yet see any great performance improvements (the system was quite fast before), but at least I'm happy to have all my Samsung SSDs “on the same level”.
@Moonbase: Forgot to mention I was talking about 1TB Samsung 840 EVO SSDs, so I didn't really expect a big performance increase (the larger drives have always been faster than the small ones).
And, well, the backup/restore process (~500GB in use) to a conventional external USB 2 drive took an extra 8 hours. Unfortunately, I didn't have a spare eSATA drive with enough free space on it, and the Dell 780DT only has USB 2 ports …
Hi – Have a query, will be grateful if someone could help me on this? Samsung has released a firmware update & performance restoration of 840 EVO for Linux and Max. http://www.samsung.com/global/business/semiconductor/minisite/SSD/global/html/support/downloads.html The instructions for doing the update using USB bootable is bit confusing to me, as a total noob. For the update, do I need FreeDOS in USB or just extracting the files would suffice? Have you tried this yet on your SSD? Thanks.
I'm a little late on this but I just did an Update on my 840 Pro by copying the btdsk.img on a USB stick (like “cp btdsk.img /dev/sdX”). Legacy boot needed of cause.
I got “upgrade unsuccessful” though but at least it boots without hassle.
I just upgraded my Samsung 840 PRO firmware from the Samsung iso image for the 840 PRO (available on-line from Samsung), using your excellent instructions. The only issue was the poor instructions in the Samsung tool which made no clear call to action at the point where the drive had to be power cycled. You need to power cycle the drive as soon as you see “power cycle” mentioned. Much appreciated. Thank you.
For everyone who runs into a “BREAKING!” error: go into your bios and change the SATA port from AHCI to ATA/IDE before booting into the firmware upgrade (and don't forget to revert this before trying to boot into your normal operating system).
After that I still got a “version mismatch, upgrade failed”-message after the power cycle, but after power off and rebooting into linux smartctl displayed the correct firmware version.
How do I find out which firmware version my SSD has?
What are the benefits of an updated firmware?