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. 😉

TS3 Server automatisch aktualisieren (The default license has expired.)

Hallo,
mit diesem kleinen Blog Beitrag möchte ich euch zeigen, wie ihr einen Linux Teamspeak 3 Server automatisch aktualisieren könnt.

Die Aktualisierung ist notwendig, um eventuelle Fehler oder Sicherheitslücken zu beheben und um die Lizenz der Community Version von Teamspeak z.B. auf einem selbst betriebenem Server zu aktualisieren, da diese nach ein bzw. zwei Jahren ausläuft.

Wenn die Lizenz ausgelaufen ist bekommt man diese Fehlermeldung:

CRITICAL|Accounting | |The default license has expired. Please use the latest server version.

Da mir die ständige manuelle Installation des Servers keine Freude bereitet, obwohl es sich nur um die folgenden 5 Schritte handelt:

#Herausfinden der aktuellsten Version, am besten im Browser in dieses Versionsdatei anschauen: https://www.teamspeak.com/versions/server.json
#Aktuell ist die aktuellste Version 3.13.7, daher 
VERSION="3.13.7" 
#Download der aktuellsten Version: 
wget https://files.teamspeak-services.com/releases/server/${VERSION}/teamspeak3-server_linux_amd64-${VERSION}.tar.bz2 
#Server stoppen 
./teamspeak3-server_linux_amd64/ts3server_startscript.sh stop 
#Entpacken 
tar -xjf teamspeak3-server_linux_amd64-${VERSION}.tar.bz2 
#Server starten 
./teamspeak3-server_linux_amd64/ts3server_startscript.sh start

Habe ich ein Skript entwickelt und auf Github.com veröffentlicht, um dies in einen einzigen Schritt zusammenzufassen, den Vorgang deutlich zu vereinfachen und zu automatisieren:

https://github.com/yannik995/TS3-Update/

Mit folgendem Befehl lässt es sicher herunterladen und auch direkt ausführen, sodass der TS3 Server aktualisiert und neu gestartet wird (Ich empfehle immer vorher ein Backup des Servers anzulegen):

apt install jq -y && wget -Nnv https://raw.githubusercontent.com/yannik995/TS3-Update/main/ts3update.sh && chmod +x ts3update.sh; ./ts3update.sh

Zu beachten ist aber das sich der Teamspeak 3 Server im aktuellem Verzeichnis unter teamspeak3-server_linux_amd64 befinden muss, da das Skript sonst nicht funktioniert.

Damit das Update nicht immer manuell angestoßen werden muss habe ich bei mir einen Crontab eingerichtet, dazu startet man den Crontab Editor mit dem Befehl:

crontab -e

Und fügt dort folgendes ein, um es nach jedem Reboot auszuführen:

@reboot bash ts3update.sh

Oder am 2. des Monats um 04:35 Uhr, die Zeit kann natürlich frei geändert werden:

35 4 2 * * bash ts3update.sh

(Ggf. muss der Pfad zum Skript angepasst bzw. hinzugefügt werden. Bei mir liegt das Skript im Home Verzeichnis des TS3 Users und daher funktioniert es auch so ohne Probleme)

Ich hoffe ich konnte euch damit weiterhelfen und wünsche euch viel Spaß beim nutzen des Skripts.

Viele Grüße

Windows Übermittlungsoptimierung deaktivieren

Was ist die Übermittlungsoptimierung?

Microsoft hat ab Windows 10 die Übermittlungsoptimierung eingebaut. Durch die Übermittlungsoptimierung wird mit anderen Computern ein Peer-to-Peer Netzwerk aufgebaut und über dieses Netzwerk werden die Windows Updates verteilt.

Microsoft spart sich so, auf kosten der Nutzer, einen Teil der Kosten für die Bereitstellung der Windows Updates. Dieses Feature lässt sich aber ganz leicht deaktivieren, wenn die Übermittlungsoptimierung, wie bei mir, die komplette Bandbreite verwendet.

Wie kann ich die Übermittlungsoptimierung deaktivieren?

Einstellungen

Zum Deaktivieren öffnet man die „Einstellungen„:

Dort wählt man „Update und Sicherheit“ aus:

Update und Sicherheit

Und dort „Übermittlungsoptimierung„.
Dort kann man die Downloads von anderen PCs verbieten oder nur für PCs im lokalen Netzwerk erlauben:

Übermittlungsoptimierung