Samsung SSD Firmware unter Linux aktualisieren – trotz kaputtem ISO

Ich nutze seit Jahren Samsung SSDs – egal ob SATA oder NVMe – und habe sie in einigen meiner Setups verbaut. Performance, Zuverlässigkeit, alles top.
Was allerdings überhaupt nicht top ist: Samsung bietet bis heute keinen sauberen Weg, SSD-Firmware unter Linux zu aktualisieren.

Stattdessen gibt es ein bootbares ISO. Klingt erstmal okay – ist aber leider seit mehreren Jahren schlicht kaputt.
Zeit, das Problem zu umgehen.


Ausgangslage: Firmware-Update für Samsung NVMe SSDs

In meinem konkreten Fall ging es um zwei Samsung 990 Pro 2TB NVMe-SSDs, die in einem Server verbaut waren.
Der Server lief mit Debian 12 – also eigentlich perfekte Voraussetzungen.

Der offensichtliche Weg wäre:

  1. Firmware-ISO herunterladen
  2. Auf USB-Stick schreiben
  3. Booten
  4. Firmware flashen
  5. Fertig

theoretisch.


Warum Samsungs Boot-ISO keine Option ist

Leider ist Samsungs Linux-Bootumgebung seit Jahren problematisch. Typische Fehler:

  • SATA-SSDs werden nicht erkannt
  • Controller werden nicht korrekt angesprochen
  • USB-Tastaturen funktionieren nicht
  • Veralteter Kernel, keine Workarounds möglich
  • Teilweise nur mit PS/2-Tastatur bedienbar

Und ja: Genau an der „keine Tastatur erkannt“-Stelle hing ich schon wieder fest – wie vor ein paar Jahren auch schon.
Damals konnte ich SATA-SSDs noch kurzfristig in ein Intel-System stecken. Bei NVMe-SSDs im Server? Keine Chance.


Lösung: Firmware direkt unter Linux flashen 🚀

Zum Glück lässt sich das eigentliche Flash-Tool aus dem ISO extrahieren und direkt unter einem modernen Linux ausführen.

⚠️ Wichtiger Hinweis:
Das hat bei mir problemlos funktioniert – aber Firmware-Updates sind nie ohne Risiko.
Alles auf eigene Gefahr!


Schritt-für-Schritt Anleitung

1️⃣ Dateisystem(e) aushängen

Falls auf der SSD ein Dateisystem gemountet ist, möglichst vorher aushängen:

umount /dev/md0

⚠️ Wichtiger Hinweis:
Es ist auch möglich ein Update ohne unmount durchzuführen, aber ich empfehle es nicht. Nutze sonst möglichst ein Linux Live System.


2️⃣ Passendes Firmware-ISO herunterladen

Samsung listet alle Firmware-ISOs hier:
https://www.samsung.com/semiconductor/minisite/ssd/download/tools/

Rechtsklick auf die passende Version → Link kopieren.

Beispiel:

wget https://download.semiconductor.samsung.com/resources/software-resources/Samsung_SSD_990_PRO_8B2QJXD7.iso

3️⃣ Benötigte Tools installieren

apt-get -y install gzip unzip wget cpio

⚠️ Wichtiger Hinweis:
Ist z.B. unzip nicht installiert bricht das Update einfach ab.


4️⃣ ISO mounten und Firmware-Tool extrahieren

mkdir /mnt/iso
sudo mount -o loop ./Samsung_SSD_990_PRO_8B2QJXD7.iso /mnt/iso/

mkdir /tmp/fwupdate
cd /tmp/fwupdate

gzip -dc /mnt/iso/initrd | cpio -idv --no-absolute-filenames

5️⃣ Firmware-Tool starten

cd /tmp/fwupdate/root/fumagician/
sudo ./fumagician

Jetzt sollte das Tool starten und die verbauten SSDs bzw. NVMe-Laufwerke korrekt erkennen.


Firmware flashen

Sobald fumagician läuft:

  • SSD auswählen
  • Update bestätigen
  • Flash-Vorgang abwarten

Nach erfolgreichem Update empfehle ich dringend:

  • Neustart
  • oder noch besser: System komplett ausschalten und wieder einschalten

Kontrolle nach dem Reboot

Nach dem Hochfahren habe ich geprüft, ob alles sauber läuft:

sudo smartctl -a /dev/nvme0n1

➡️ Neue Firmware war aktiv
➡️ Keine Datenverluste
➡️ Keine Auffälligkeiten

So soll es sein.


Fazit

Ich verstehe ehrlich gesagt nicht, warum Samsung den Linux-Support für Consumer-SSDs aufgegeben hat.
Früher ging das mal problemlos – heute gibt es Firmware-Tools nur noch für Enterprise-SSDs.

Das wäre halb so wild, wenn das offizielle Boot-ISO funktionieren würde.
Tut es aber nicht – und das seit Jahren.

Zum Glück lässt sich das Ganze mit ein paar Handgriffen direkt unter Linux lösen.
Nicht schön, aber effektiv.

Vielleicht hilft dieser Beitrag ja dem nächsten, der wieder vor einem nicht reagierenden Samsung-ISO sitzt. 😉

Hetzner: No bootable Device nach Festplattentausch

Falls nach einem Festplattentausch der Bootloader nicht erneut geschrieben wurde, kommt es zu dem Problem, dass der Server nach einen Neustart nicht Rebooten wird und nur die Meldung No bootable Device anzeigt.

In diesem Artikel möchte ich erklären, wie man die Datenträger wieder bootfähig macht, da ich selber dachte der Schritt sei nicht notwendig, weil alle Daten durch das MDADM Raid 1 gespiegelt werden. Leider ist das nicht so.

Um die Datenträger wieder bootbar zu machen startet man das System in den Hetzner Rescue Modus und verbindet sich per SSH. Dies wirdauch hier erklärt:
https://docs.hetzner.com/de/robot/dedicated-server/troubleshooting/hetzner-rescue-system/

Dort bindet man die benötigten Laufwerke ein und wechselt per chroot von dem Rescue System in den Kontext des eigentlichen Systems. Die macht man mit folgenden Befehlen:

mount /dev/md2 /mnt                                 #Für Systeme mit MDADM
#bzw.
mount /dev/sda3 /mnt                                #Für Systeme ohne MDADM

chroot-prepare /mnt
#Falls der Befehl nicht funktionieren sollte
mount -t none -o bind /dev /mnt/dev
mount -t proc -o bind /proc /mnt/proc
mount -t sysfs -o bind /sys /mnt/sys

chroot /mnt
#Ab hier sind wir im Kontext des eigentlichen Systems
mount -a                                            #Mountet Boot/Swap Partition, wenn vorhanden 

Nun befinden wir uns im Kontext unseres Systems und haben alle nötigen Partitionen gemounted, können also mit dem schrieben des Bootloaders beginnen:

grub-mkdevicemap -n
update-initramfs -u
grub-install /dev/sda
grub-install /dev/sdb
#usw. am besten auf alle Platten, von denen gebootet wird.

Nun muss das System noch einmal neu gestartet werden und sollte dann wieder erfolgreich booten können:

shutdown -r now

Ich hoffe ich konnte auch mit diesem Beitrag helfen und wir werden ab jetzt nicht mehr vergessen den Bootloader nach dem Platten tausch neu zu schreiben.
Das geht einfach mit diesen zwei Befehlen und spart euch stressige Stunden 🙂 :

grub-mkdevicemap -n
grub-install /dev/sdb                                      #sdb durch getauschte Platte ersetzen

Proxmox + pfSense: Kein Internet auf der VM

Ich habe mir einen Proxmox Server mit pfSense als Router VM und mehreren virtuellen Maschinen eingerichtet.
Nach einiger Netzwerkkonfiguration war es möglich auf der Router VM über den Port Check Verbindungen herzustellen und auch eine Windows VM konnte sich mit dem Internet Verbinden, allerdings sehr langsam.

Von allen VMs war es möglich ins Internet zu pingen, allerdings konnten von den Linux VMs keine TCP und UDP Verbindungen hergestellt werden. Verbindung wurde einseitig geöffnet, fand aber scheinbar keinen Weg zurück zur VM.

Nach einigem Googlen fand ich hier das es an dem Hardware Offloading liegen kann. Nachdem es deaktiviert wurde und die Router VM neu gestartet wurde, funktionierte ein apt update endlich 🙂

Wie deaktiviere ich Hardware Offloading in pfSense?

System -> Advanced -> Networking

Und folgende Punkte aktivieren:

Ich hoffe euch hilft dieser Tipp