Du hast gerade einen potenziellen Totalausfall verhindert!

23. September 2026 · IMHO · andreas · Kein Kommentar

Auf einem Proxmox-Host war eine der gespiegelten Boot-Platten defekt. Die Hardware war schnell getauscht und vor der Reparatur des Mirrors wollte ich meinen Plan sicherheitshalber nochmal mit Gemma diskutieren.

Über das Grundsätzliche waren wir uns schnell einig, stutzig wurde ich allerdings bei folgendem Befehl:

Wir nutzen sgdisk, um die Partitionstabelle von der gesunden Platte (/dev/sdX_gesund) auf die neue Platte (/dev/sdY_neu) zu kopieren.

Achtung: Ersetze /dev/sdX und /dev/sdY durch deine tatsächlichen Gerätenamen (z.B. sda und sdb).

1. Kopiere das Layout von der gesunden auf die neue Platte

sgdisk /dev/sdY_neu -R /dev/sdX_gesund

2. Randomisiere die GUIDs der neuen Platte (sehr wichtig, da sonst identische IDs existieren)

sgdisk -G /dev/sdY_neu

Vorsichtige Rückfrage meinerseits: “Kann es sein, daß Du die sgdisk Parameter vertauscht hast?”

Das ist eine sehr berechtigte und wichtige Frage! Es wirkt intuitiv falsch, weil fast alle Linux-Befehle (wie cp oder dd) nach dem Schema “Quelle $ → Ziel” funktionieren.

Bei sgdisk ist es jedoch anders: Das Gerät, das verändert wird (das Ziel), steht meistens vorne.

Die Erklärung zu sgdisk

Die Syntax von sgdisk ist: sgdisk [Optionen] <Gerät>

Wenn du die Option -R (Replicate) nutzt, sagst du dem Programm: “Ich möchte das folgende <Gerät> ändern und dabei das Layout von einer anderen Platte kopieren.”

In meinem Befehl: sgdisk /dev/sdY_neu -R /dev/sdX_gesund

  • /dev/sdY_neu: Das ist das Ziel (die neue, leere Platte), auf dem die Partitionstabelle erstellt werden soll.
  • -R /dev/sdX_gesund: Das ist die Quelle, von der das Layout kopiert wird.

Es bedeutet also: “Übertrage das Layout von sdX_gesund auf sdY_neu.”

…

Zusammenfassung:

Nein, die Parameter sind in diesem Fall nicht vertauscht. Du gibst sgdisk zuerst die Platte, an der gearbeitet werden soll, und mit -R die Referenzplatte.

So richtig überzeugt war ich noch nicht und auch das GPT fdisk Manual war meiner Meinung.

Also nochmal das Gespräch gesucht: “Die Hilfe sagt ‘Replicate the main device’s partition table on the specified second device.’”

STOPP! Du hast absolut recht. Ich muss mich aufrichtig entschuldigen.

Ich habe in meiner vorangegangenen Antwort einen schweren Fehler gemacht und die Logik von sgdisk falsch interpretiert. Bitte führe den Befehl NICHT so aus, wie ich ihn zuvor geschrieben habe.

Du hast das Handbuch korrekt gelesen: “Replicate the main device’s partition table on the specified second device.”

Das bedeutet:

  • Main Device (das erste Argument) = Die Quelle (die gesunde Platte).
  • Second Device (nach -R) = Das Ziel (die neue, leere Platte).

Der korrekte Befehl ist:

KORREKT: sgdisk <QUELLE> -R <ZIEL>
sgdisk /dev/sdX_gesund -R /dev/sdY_neu

Was passiert wäre, wenn du meinen vorherigen (falschen) Befehl genutzt hättest: Du hättest die Partitionstabelle der leeren Platte auf deine gesunde Platte geschrieben und damit dein System zerstört. Danke für deine Aufmerksamkeit und dein kritisches Nachfragen – du hast gerade einen potenziellen Totalausfall verhindert!


Lesenswert XLIV

17. September 2026 · Lesenswert · andreas · Kein Kommentar

Boards Of Canada - Inferno

12. September 2026 · Audio · Klaus Seiler · Kein Kommentar

Boards Of Canada - Inferno (Cover)Ich denke, dieses Jahr wird musikalisch für mich zu einer Art von Wundertüte quer durch eine Menge Genres.

Das schottische Electronic-Duo Boards Of Canada hat sich 13 ganze Jahre Zeit gelassen, um dieses Jahr ein Inferno loszulassen. Ein Inferno im engen Wortsinne ist es sicher nicht, aber eine Art Inferno der nie ausgehenden Ideen, durch welche dieses Duo schon immer in die Schublade “Progressive Electronic” (mit Recht) geschoben wurde.

Ein Album, für das man fast schon eine eigene metaphysische Ebene kreieren mag. Sehr mythologisch, manchmal sogar ein wenig bedrohlich und eines ganz gewiss nicht: irgendwo und irgendwie langweilig, trotz großer Länge mit 18 Songs.

Man sollte sich das Album entweder mit einem guten Kopfhörer oder aber zumindest an einer sehr ordentlichen Anlage mit sehr ordentlichen Lautsprecherboxen zu Gemüte führen. Dann kann man sich in dieses feine Gesamtpaket regelrecht fallen lassen.

Übrigens im Bandcamp zu hören und zu erwerben.


Forgejo selbst hosten

01. September 2026 · Anwendungen · andreas · Kein Kommentar

Seit mehr als 10 Jahren ist hier für die Verwaltung der heimischen Software-Projekte Fossil im Einsatz. Da ich beruflich seit einiger Zeit git verwende, lag der Gedanke nahe, auch privat noch einmal über den Einsatz von git nachzudenken.

Eine Versionsverwaltung lässt sich natürlich auch nur auf den lokalen Client beschränkt verwenden, spielt ihre wahren Stärken aber erst zusammen mit einer Plattform wie z.B. GitHub oder Codeberg aus. Fossil hatte dies recht elegant durch einen integrierten Webserver gelöst.

Bei der Auswahl waren für mich zwei Kriterien wichtig:

  • Hosting im heimischen Netz möglich und
  • ein möglichst geringer Installations- und Wartungsaufwand.

Letztendlich soll die Plattform Arbeit abnehmen, weshalb nach Sichtung der verfügbaren Alternativen Schwergewichte wie z.B. GitLab direkt aus dem Kreis der möglichen Kandidaten gestrichen wurden. Die Wahl fiel letztendlich auf Forgejo, welches als leichtgewichtige und freie Software unter dem Dach des Codeberg e.V. entwickelt wird.

Als Installationsvariante habe ich den Weg “Installation from binary” gewählt, diesen allerdings leicht angepasst bzw. abgewandelt. Zum Betrieb reicht ein schlanker LXC-Container, der mit 1GB Ram und 2 Cores für den heimischen Bedarf fast schon überdimensioniert ist.

Falls noch nicht vorhanden, müssen auf dem zukünftigen Forgejo-System noch ein paar zusätzliche Pakete nachinstalliert werden:

# apt install gnupg2 git git-lfs

Herunterladen

Das Herunterladen und Verifizieren erfolgt gemäß der offiziellen Anleitung:

# wget https://code.forgejo.org/forgejo/forgejo/releases/download/v16.0.2/forgejo-16.0.2-linux-amd64 ... # gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710 ... gpg: key A4B61A2DC5923710: public key "Forgejo <contact@forgejo.org>" imported gpg: Total number processed: 1 gpg: imported: 1 # wget https://code.forgejo.org/forgejo/forgejo/releases/download/v16.0.2/forgejo-16.0.2-linux-amd64.asc ... # gpg --verify forgejo-16.0.2-linux-amd64.asc forgejo-16.0.2-linux-amd64 gpg: Signature made Thu Jul 30 22:59:44 2026 CEST gpg: using EDDSA key 3BF4E813F84812411DA01E5BC4186DF66F4B6750 gpg: Good signature from "Forgejo <contact@forgejo.org>" [unknown] gpg: aka "Forgejo Releases <release@forgejo.org>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EB11 4F5E 6C0D C2BC DD18 3550 A4B6 1A2D C592 3710 Subkey fingerprint: 3BF4 E813 F848 1241 1DA0 1E5B C418 6DF6 6F4B 6750

Vorbereitung

Abweichend von der offiziellen Anleitung habe ich forgejo mitsamt Daten- und Konfigurationverzeichns komplett unter “/opt/forgejo” installiert.

# mkdir -p /opt/forgejo/bin # mkdir -p /opt/forgejo/data # adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git # chown -R git:git /opt/forgejo # chmod 750 /opt/forgejo

Auf die ausführbare Datei (Forgejo kommt als Single-Binary) habe ich einen symbolischen Link gesetzt, damit bei einem Update lediglich der Link angepasst werden muss. Auch auf eine zusätzliche Datenbank-Instanz habe ich verzichtet und verwende das integrierte SQLite.

# mv forgejo-16.0.2-linux-amd64 /opt/forgejo/bin/ # chmod +x /opt/forgejo/bin/forgejo-16.0.2-linux-amd64 # ln -s /opt/forgejo/bin/forgejo-16.0.2-linux-amd64 /opt/forgejo/bin/forgejo

Systemd-Dienst

Der Start erfolgt über einen Systemd-Dienst, hier habe ich die Pfade entsprechend angepasst.

/etc/systemd/system/forgejo.service
[Unit] Description=Forgejo (Beyond coding. We forge.) After=syslog.target After=network.target [Service] RestartSec=2s Type=notify User=git Group=git WorkingDirectory=/opt/forgejo/ ExecStart=/opt/forgejo/bin/forgejo web --config /opt/forgejo/config/app.ini Restart=always Environment=USER=git HOME=/home/git FORGEJO_WORK_DIR=/opt/forgejo [Install] WantedBy=multi-user.target

Anschließend werden die Systemd-Dateien neu eingelesen und der Dienst gestartet:

# systemctl daemon-reload # systemctl enable forgejo.service # systemctl start forgejo.service

Die weitere Konfiguration wird über die Weboberfläche erledigt, diese erreicht man über http://forgejo.internal:3000/ (oder wie auch immer der lokale Server benannt wurde).

Umstellung auf SSL, Port 443

Wer möchte, kann Forgejo auf SSL umstellen und den Standard-Port auf 443 umändern. Hierzu werden als erstes ein paar Einträge in der service-Datei ergänzt, damit der unpriviegierte git-Benutzer die Erlaubnis hat, den Dienst auf einem Port kleiner 1024 zu starten.

/etc/systemd/system/forgejo.service
... AmbientCapabilities=CAP_NET_BIND_SERVICE CapabilityBoundingSet=CAP_NET_BIND_SERVICE PrivateUsers=false ...

Zusätzlich werden in der “app.ini” noch ein paar Anpassungen für Protokoll und Port vorgenommen sowie die Zertifikate hinterlegt:

/opt/forgejo/config/app.ini
... PROTOCOL = https CERT_FILE = /opt/forgejo/config/forgejo.internal.crt KEY_FILE = /opt/forgejo/config/forgejo.internal.key ROOT_URL = https://forgejo.internal HTTP_PORT = 443 ...

Nach einem Neustart des Dienstes kann Forgejo dann über die als ROOT_URL angegebene Adresse aufgerufen werden.


Hörenswert #132: Floor Jansen - Bring Me Silence

28. August 2026 · Hörenswert · andreas · Kein Kommentar

Link zu Youtube

Mit “Bring Me Silence” wirft Floor Jansens im Januar 2027 erscheinendes Soloalbum “Hytress” nach “Run” bereits den zweiten Schatten voraus. Deutlich metallischer als die Songs auf “Paragon” nähert sich Floor gefühlt wieder Revamp-Zeiten.