Wie man von einer nachgerüsteten NVME SSD bootet

Meine langjährige Linux-Notlösung ging letzte Woche eine innige Verbindung zwischen Mainboard und Netzteil ein, das führte leider zu neuer PC-Hardware, wovon Ihr jetzt allerdings profitiert 😉

Wie man von einer nachgerüsteten NVME SSD bootet

Hier eine Impression der neuen permanenten Verbindung zwischen Mainboard und Netzteil:

ATX 12V Leitung ins Mainboard

Nur mit Gewalt konnten Buchse und Stecker getrennt werden. Eine Inspektion ergab dann, daß drei Spannungswandler, die befinden sich unter dem Kühlkörper links im Bild, ein bisschen zu warm geworden sind.

Hinweis: Für alle Linux am Dienstag Teilnehmer, abweichend zum gestrigen Textchat, gibt es bei den Anweisungen für die UUIDs noch eine kleine Erweiterung wo man die ersetzen muß.

Der neue RYZEN 5600X

Weil ich mir gleich was vernünftiges kaufen wollte, kam ein ASROCK B550µ Pro4 und ein RYZEN 5600X in den Warenkorb, noch NVME SSD (Samsung 1TB), RAM und Netzteil dazu gepackt und beim Großhändler sammeln lassen.

Das Board kannte ich einem früheren Einkauf und entsprechend wußte ich, daß diese Hardware mit Linux  laufen würde. Laufen ist in dem Fall übrigens glatte Untertreibung, Rennen wäre treffender, weil die NVME SSD in dem Setup 7 GB/s lesend schafft 😀

Da ich den PC für die Arbeit brauchte, war ein funktionierendes System an Tag 1 erst einmal wichtiger, als von der NVME SSD booten zu können, also wurde die HW nur zusammen gesteckt und die alte SATA SSD gebootet. Lief sofort ohne zu murren. Der Arbeitstag neigte sich dem Ende zu, also war es Zeit die SATA SSD auf die NVME SSD zu clonen und die Umstellung zu machen.

Nun ist mein Fedora System von 2014 und dessen Bootconfig weiß noch nichts von NVME. Also muß man das erst nachrüsten und ein Initramfs bauen, daß auch passende NVME Treiber hat. Dummerweise wusste ich das nicht, als die ich die SSD geclont habe 🙁 Ergebnis: „Geil, bootet von NVME .. ähhhhhh!?!?!“ Weil der Bootprozess vor dem Entschlüsseln der LUKS Paritionen einfach stehen blieb.

Zwei Möglichkeiten

Entweder VOR dem Clonen das neue Initramfs bauen, was deutlich einfacher ist, oder nochmal von der alten SSD Booten, Initramfs neubauen und die erzeugten Files von Hand rüberkopieren.

So, oder so, sieht der richtige Weg so aus:

  1. NVME-Treiber hinzufügen

    echo „add_drivers+= \“ nvme \““ > /etc/dracut.conf.d/nvme.conf
    # initramfs für aktiven Kernel neubauen
    dracut -f
  2. Disk Clonen

booten von einem Livestick
sudo su
dd if=/dev/quelle of=/dev/nvme0n1 bs=64M status=progress

Bei einer 1 TB SSD dauert das so 21-23 Minuten, da die SATA Geräte auf den meisten PCs mit 6 Gb/s angebunden sind, was ein theoretisches Maximum von 512 MB/s erlauben würde, aber 480 MB/s sind realistischer 😉

Wenn man die alte Platte nicht mehr benutzen will ist hier Schluß, die Platte muß dann aber auch gleich vom PC entfernt oder neu formatiert werden. Wieso, wird gleich klar werden.

Oder Ihr wollt mal wissen, was der Onkel Doktor machen müßte um die neue NVME SSD parallel zur alten SATA SSD booten zu können 🙂 Wir haben die Platte geclont und damit auch alle UUIDs zur identifizierung von Partitionen und Containern. UUIDs zeichnen sich durch eine gewisse EINMALIGKEIT aus, sprich, doppelte UUIDs produzieren lustige Fehler beim Bootprozess 😀

Gestern beim Linux am Dienstag kam die Frage auf, wieso ich nach dem Clonen nicht einfach die SATA SSD platt gemacht habe: Redundanz. Fällt die NVME SSD aus, habe ich noch ein System, das garantiert bootet.

Wie man die UUIDs von LUKS und EXTx ändert

Der Einfachheit

halber nehmen wir das „Gnome-Laufwerke“ Tool zur Hand um die alten UUIDs zuermitteln, da wir da visuell sehen können, ob das auch die richtige Partition ist. Man kann das auch in der Konsole ablesen, aber das kann leicht zu Verwechselungen führen:

$ lsblk -t -f
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
nvme0n1 0 512 0 512 512 0 none 1023 128 0B 
├─nvme0n1p1 0 512 0 512 512 0 none 1023 128 0B ext4 1.0 Boot 4d2061ec-d538-4c88-aeb7-3fb0f3f4cd07 234,6M 46% /boot
├─nvme0n1p2 0 512 0 512 512 0 none 1023 128 0B crypto_LUKS 1 9d2595b2-a35c-48c1-a839-bb54c1a96597 
│ └─luks-9d2595b2-a35c-48c1-a839-bb54c1a96597 0 512 0 512 512 0 128 128 0B ext4 1.0 9d2595b2-a35c-48c1-a839-bb54c1a96597 659,9G 22% /
└─nvme0n1p3 0 512 0 512 512 0 none 1023 128 0B crypto_LUKS 1 ed009ed3-118c-465d-9b89-9b2a4f5cc3f3 
  └─luks-ed009ed3-118c-465d-9b89-9b2a4f5cc3f3 0 512 0 512 512 0 128 128 0B swap 1 46da0d80-21fb-45b7-8567-ba047de66cb6 [SWAP]

Einfacher ist das über das GNOME Laufwerke Tool:

LUKS

Filesystem in eine LUKS Container

Schritt 1 wäre jetzt auch erst einmal neue UUIDs zu erzeugen, was unter Fedora leicht mit dem Befehl „uuidgen“ gemacht werden kann. Andere Distro haben den Befehl nur als „uuid“ im Angebot.

WARNUNG:
Die hier gezeigten Anweisungen können in den falschen Händen Schaden an Ihrem System anrichten, deswegen erfolgt alles, was Sie jetzt machen auf eigene Gefahr!

WICHTIG: Bei Verwendung von LUKS darauf achten, daß die LUKS-Partition und die darin enthaltene Partition die gleiche UUID haben!

HINWEIS: der Befehl „replace“ wird von MYSQL/MARIADB zur Verfügung gestellt! Man kann die Anpassungen auch mit einem Texteditor machen, sollte man aber zwecks Reduzierung von Fehlerqellen nicht machen.

Alternativ könnte man sed -e „s/ALTE UUID/NEUE UUID/g“ < file >file.1; mv file.1 file machen, aber dann läuft man Gefahr die Rechte und Besitzer zu ändern.

Alles was wir jetzt machen, findet auf einer LIVE DISK statt, also im ungebooteten Zustand. Die Filesysteme sind alle EXT4, für abweichende Filesystem müßt Ihr Euch selbst was ausdenken 😉

Los geht’s :

A) Die Bootpartition

a) mit „Laufwerke“ das Gerät identifizieren: z.B. /dev/nvme0n1p1
b) ALTE UUID ermitteln ( wegkopieren in Texteditor ! )
c) tune2fs /dev/nvme0n1p1 -U „NEUE UUID“
d) BOOT + SYSTEM Partion der NVME anmelden
e) UUIDs ersetzen:
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/boot/grub2/grub*
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/boot/loader/entries/*
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/System/etc/fstab
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/System/etc/default/grub

*f) Partionen wieder abmelden

*) Das Abmelden ist natürlich optional, wenn Ihr mehrere Ersetzungen machen müßte, dann können die natürlich gemountet bleiben 😉

B) jede andere Partition

Jenachdem wieviele man hat, kann man das auch alles zusammen machen!

Wichtig: Jede Partition hat ihre eigene UUID, doppelte darf es nicht geben!

a) mit „Laufwerke“ das Gerät identifizieren: z.B. /dev/nvme0n1p2
b) ALTE UUID ermitteln ( wegkopieren in Texteditor ! )
c) tune2fs /dev/nvme0n1p2 -U „NEUE UUID“
d) BOOT + SYSTEM Partion der NVME anmelden
e) UUIDs ersetzen:
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/boot/grub2/grub*
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/boot/loader/entries/*
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/System/etc/fstab
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/System/etc/default/grub

f) Partionen wieder abmelden

Das waren die Filesysteme, kommen wir zu den LUKS Containern. Wer kein Luks hat, der ist jetzt natürlich fertig 🙂

Bei LUKS Partitionen ist das Vorgehen im Prinzip das Gleiche, nur die Befehle sind andere, weil LUKS kein Filesystem ist, aber eins zur Verfügung stellt nach dem Aufschliessen.

C) Für jede LUKS Partition

a) mit „Laufwerke“ das Gerät identifizieren: z.B. /dev/nvme0n1p2
b) ALTE UUID ermitteln ( wegkopieren in Texteditor ! )
c) cryptsetup luksUUID /dev/nvme0n1p2 –uuid „NEUE UUID“
d) BOOT + SYSTEM Partion der NVME anmelden
e) UUIDs ersetzen:
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/boot/grub2/grub*
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/boot/loader/entries/*
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/System/etc/fstab
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/System/etc/crypttab
replace „ALTE UUID“ „NEUE UUID“ — pfad/zu/System/etc/default/grub

f) Partionen wieder abmelden

Damit wären wir durch und so schlimm war es dann ja auch wieder nicht 🙂

Update: Es wurden Bilder zum Gnome-Laufwerke Tool eingebaut, powered by FlameShot – Ihrem Screenshottool

Fedora: wie man Jitsi wieder starten kann

Auch Jitsi ist in die Jahre gekommen und braucht beim Start jetzt unsere Hilfe 😉

Fedora: wie man Jitsi wieder starten kann

Im Gegensatz zum Truecryptproblem, ist das Jitsi Problem recht einfach in den Griff zu bekommen.

Die Ursache ist ein Wechsel des Default-Javas auf Java 11. Jitsi braucht aber Java 1.8 zum Starten, sonst findet es eine Klasse nicht. Ingo Bauersachs, der derzeitige alleinige Autor vom Desktop Jitsi, arbeitet an solchen Problemen, aber aufgrund der geringen Zeit die er da investieren kann, kommt das alles nur langsam voran.

Wer also bei Jitsi mithelfen will, weil das u.a. auch das einzig gut funktionierende SIP-Phone auf dem Desktop ist, kann sich gern bei Ingo melden.

Nun zur Lösung

Werdet mal root auf Eurem Linux und geht das ein:

alternatives –config java

kommt so etwas:

# alternatives –config java

Es gibt 3 Programme, welche »java« zur Verfügung stellen.

Auswahl Befehl
———————————————–
+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-3.fc33.x86_64/jre/bin/java)
2 java-9-openjdk.x86_64 (/usr/lib/jvm/java-9-openjdk-9.0.4.11-6.fc28.x86_64/bin/java)
* 3 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-2.fc33.x86_64/bin/java)

Eingabe um die vorgegebene Auswahl[+] zu behalten, oder geben Sie die Nummer an:

Ich habe mein Java natürlich schon so umgestellt, deswegen zeigt er bei mir das „+“ beim Java 1.8 an. Wenn das bei Euch nicht der Fall, sonst wärt Ihr vermutlich auch nicht hier, dann gebt „1“ oder die bei Euch angezeigte Zahl an. Danach startet Ihr Jitsi neu und geht wieder.

Fedora: Die Zeit von Truecrypt ist abgelaufen

„Es kam, wie es kommen mußte. Joe ‚True‘ Crypt wurde zu alt für den Job als Datenschützer. Mit seinen 20 Jahren mußte er schliesslich doch in Frührente gehen. In einer kurzen Gedenkzeremonie durfte er sich von seinem geliebten Fedoradesktop verabschieden.“

Fedora: Die Zeit von Truecrypt ist abgelaufen

Ja, mit dem Wechsel auf Fedora 33 funktioniert Truecrypt nicht mehr. Das liegt an einer Änderung, wie die nötigen Sockets im System erzeugt werden dürfen. Ich denke hier ist SEL am Ball, ist aber nur eine Vermutung. Ein Wechsel zu Veracrypt 1.24u7 hat hier geholfen. Damit lassen sich die Truecrypt Datenträger wieder einbinden.

Wer die noch nicht hat, weil ältere tun es auch nicht mehr, der kann sich die Version hier runterladen:

https://www.veracrypt.fr/en/Downloads.html

Damit könnte die Geschichte ja bereits am Ende sein, aber so einfach ist es dann doch nicht. Wenn Ihr wie ich Bookmarks auf in den TC-Datenträgern gelegenen Verzeichnissen in Nemo oder Nautilus habt, dann dürft Ihr die Lesezeichen editieren 🙂

Das liegt daran, daß Truecrypt seine automatischen Verzeichnisse unter /media/truecrypt{SLOTNUMMER} mounted, Veracrypt aber /media/veracrypt{SLOTNUMMER} benutzt. Damit gehen die Lesezeichen ins Leere.

Die Lesezeichen für Nemo befinden sich hier:  ~/.config/gtk-3.0/bookmarks

Einfach „truecrypt“ mit „veracrypt“ ersetzen, erledigt.

Wer seine Datenträger automatisch beim Login in die Desktopsession mounten will, muß auch die ~./config/autostart/truecrypt.desktop Datei anpassen, inhaltlich, nicht vom Namen her 😉

Exec=sudo /usr/bin/veracrypt –auto-mount=favorites

Damit wären wir dann fast durch.

… und die Linuxgötter waren erzürnt, daß es neben ihnen einen weiteren Titanen geben sollte und peppten LUKS auf…

Es geht auch ganz ohne Veracrypt, nur kann man dann nicht von den neuen VeraCrypt Eigenschaften profitieren:

cryptsetup –type tcrypt open /dev/sda tcsda
mount /dev/mapper/tcsda /media/truecrypt1

mit

umount /media/truecrypt1
cryptsetup close /dev/mapper/tcsda

kann man es wieder schließen. Wenn man diesen Weg gehen will, was völlig legitim ist, dann wäre clever das in ein kleines Bashscript zu packen, daß auf dem Desktop nach dem Passwort bettelt. Das Passwort kann man elegant an Cryptsetup übergeben:

echo „$password“ | cryptsetup –type tcrypt open /dev/sda tcsda

Jetzt muß sich für das Bashscript nur noch ein Desktopfile in ~/.config/autostart erstellen und ist durch 🙂

Wenn die TC-Datenträger das gleiche Passwort (wenn vorhanden) wie die Systemplatte haben, dann kann man das auch beim Booten erledigen lassen in dem die Einträge dafür in /etc/crypttab gespeichert werden.

Für alle, die mehr über Truecrypt und Luks wissen möchten, hier ein LPD Beitrag zum Thema: