Fedora: wie man mit RPM sein System auf Integrität prüft.

Heute geht es um Dateiintegrität und wie man das mit RPM prüft und ggf. behebt. Grund ist das Pinephone.

Fedora: wie man mit RPM sein System auf Integrität prüft.

Wenn man sein Pinephone zum ersten mal bootet, startet es mit dem Image auf der internen Storage mmcblk2. Will man etwas anderes Booten, so steckt man eine SD Karte rein, auf dem das Bootimage drauf ist. Das ist gerade am Anfang, wenn man viel Testet eine normale Sache, weil man die MicroSD Karte leicht wieder mit einem SD-Kartenreader am PC neu bespielen kann.

Wenn man aber zu an einen Punkt gekommen ist, wo das System gut genug funktioniert, möchte man es auf die interne Speicherkarte kopieren. Das könnt Ihr via rsync machen, oder Ihr kopiert die SD-Karte mit dem Tool dd rüber. Das hat aber einen Haken: Von dem System habt Ihr gerade gebootet und das läuft noch. Da man die Karte im laufenden Betrieb nicht wechseln sollte, steht Ihr vor einem Problem. Rsync umgeht das, aber Systemfiles lassen sich nicht so einfach syncen. Würde man so z.b. ein Fedora 33 auf ein anderes Fedora 33 syncen, würde es vermutlich laufen, aber (wie hier) ein Fedora auf Manjaro Syncen, geht sehr wahrscheinlich voll in die Hose.

Wenn wir also dd benutzen steigt zwar die Erfolgschance, aber ein Datenverlust steht im RAM, weil die Programme auf der Partition rumwerkeln und die sich beim Kopieren ändern. Also am besten ALLES was geht beenden: Desktop, Services, alles bis auf SSHd und das Netzwerk.

Schritt 1 – Ermitteln was drauf ist

Dazu führt Ihr „rpm -qa > rpms“ aus. Nicht vergessen das File nachher wieder zu löschen.

Schritt 2 – jedes Paket prüfen

Dazu brauchen wir awk und ein klein wenig Bashmagie:

awk < rpms ‚{print „rpm -V –nolinkto –nomtime –nomode –nouser –nogroup –nordev –nodeps „$1;}‘ | bash > log

Das liest die Liste der RPMs Zeile-für-Zeile ein und prüft das Paket, ob die Checksummen mit den Dateien übereinstimmen. Einige Tests sind absichtlich abgeschaltet worden, weil für den Test, ob eine Datei beschädigt ist oder nicht, nicht nötig. Ob ich da mal dran war und die absichtlich verändert habe, war nicht die Aufgabe, kann man so aber auch machen, wenn man die –no Flags weglässt. „–nodeps“ sollte man aber drin lassen, weil sonst jedes Paket immer mit allen Abhängigkeiten geprüft wird und wir prüfen eh alle einzeln 😉

Schritt 3 – Defekte Dateien finden

Da wir in Schritt 2 eine Log-Datei angelegt haben, werten wir die aus und lassen uns gleich die Paketnamen der defekten Dateien geben. Das „sort -u“ wirft doppelte raus:

grep „\.5\.\.“ log | grep -v “ c “ | grep -v “ d „| grep -v ^S | awk ‚{print „rpm -qf „$2;}‘ | bash | sort -u

.5… ist die Ausgabe, wenn die Datei beschädigt ist und z.b. keine Configdatei ist. Configs können sich natürlich jederzeit ändern, deswegen sind die nicht gleich defekt.

Ein paar Beispiele was die Ausgaben so meinen:

S.5…… c /etc/ssh/sshd_config  Datei hat andere Checksumme, ist aber eine Configdatei
fehlend d /usr/share/man/fr/man1/manconv.1.gz Datei ist eine Dokumentation, nicht tragisch, wenn die nicht da ist.
fehlend /boot/efi/overlays/adau1977-adc.dtbo Datei fehlt und sollte aber da sein.
..5…… /usr/bin/mokutil Datei ist defekt und sollte ersetzt werden.

Schritt 4 – Reparieren

Nun haben wir eine Liste mit Paketnamen und müssen die nur noch reparieren. In meinem Fall waren es vier defekte Pakete:

dnf reinstall dcraw efibootmgr f2fs-tools mokutil -y

Das muß natürlich bei Euch so nicht passen, es könnte auch gut gehen oder andere Dateien betreffen!

Vom efibootmgr wissen wir jetzt, daß er gar nicht nötig ist auf einem Pinephone, weil das U-Boot benutzt und so gesehen kein EFI Bios vorhanden ist.

Ein Wort noch zum Pinephone:

Kopiert das System ruhig auf die interne Karte, weil das dann ca. 5x schneller ist: beim Booten, beim Runterfahren, Apps starten und updaten. Es lohnt sich wirklich.

Fedora: Gnome-Shell 40.0 Alpha auf dem Pinephone

Liebe Linuxphone-Fans,

ich habe für Euch Gnome 40.0 Alpha ausprobiert, und ja, das wird das spannend als Mobildesktop.

Fedora: Gnome-Shell 40.0 Alpha auf dem Pinephone

Kleiner Nachtrag zur Phoshumstellung:

Wenn man in Gnome-Tweaks die Text-Skalierung auf „1“ stellt, dann paßt der Unlocker auf den physikalischen Bildschirm.

Bei den Ganzen Toolkits ist mit dem DPI Scaling echt was faul, anstatt erst den Text zu vergrößern und dann zuberechnen wo der hin muß, wird erst berechnet wo das hin müßte und dann der größere Schriftsatz verwendet.

Das Lego-Film Motto kann man hier leider noch nicht anwenden, aber das wird schon 😀

Um Gnome ausprobieren zu können, muß man phosh erstmal stoppen. Das bedeutet, erst Phosh benutzen, damit man ins WLan kommt, dann per SSH als root einloggen und „systemctl stop phosh“ eingeben. Jetzt wärs es clever, die passenden Gnome Pakete zu installieren.

Die Pakete

Hier, was bei mir funktioniert hat:

chrome-gnome-shell-10.1-12
desktop-backgrounds-gnome-33.0.0-2
f33-backgrounds-gnome-33.0.8-2
gnome-autoar-0.2.4-5
gnome-backgrounds-3.38.0-2
gnome-backgrounds-extras-3.38.0-2
gnome-bluetooth-3.34.3-2
gnome-bluetooth-libs-3.34.3-2
gnome-calculator-3.38.2-2
gnome-classic-session-40.0~alpha.1-2
gnome-clocks-3.38.0-2
gnome-color-manager-3.36.0-4
gnome-contacts-3.38.1-2
gnome-control-center-3.38.3-2
gnome-control-center-filesystem-3.38.3-2
gnome-desktop-2.32.0-30
gnome-desktop3-3.38.3-2
gnome-disk-utility-3.38.1-2
gnome-icon-theme-3.12.0-15
gnome-initial-setup-3.38.3-2
gnome-js-common-0.1.2-22
gnome-keyring-3.36.0-5
gnome-keyring-pam-3.36.0-5
gnome-keyring-sharp-1.0.1-0.35.133722svn
gnome-maps-3.38.3-2
gnome-menus-3.36.0-4
gnome-online-accounts-3.38.0-2
gnome-phone-manager-telepathy-0.69-34
gnome-power-manager-3.32.0-6
gnome-remote-desktop-0.1.9-3
gnome-screenshot-3.38.0-2
gnome-session-3.38.0-3
gnome-session-wayland-session-3.38.0-3
gnome-session-xsession-3.38.0-3
gnome-settings-daemon-3.38.1-2
gnome-shell-40.0~alpha.1.1-4.20210202git9ce666ac1
gnome-shell-extension-apps-menu-40.0~alpha.1-2
gnome-shell-extension-common-40.0~alpha.1-2
gnome-shell-extension-horizontal-workspaces-40.0~alpha.1-2
gnome-shell-extension-launch-new-instance-40.0~alpha.1-2
gnome-shell-extension-places-menu-40.0~alpha.1-2
gnome-shell-extension-user-theme-40.0~alpha.1-2
gnome-shell-extension-window-list-40.0~alpha.1-2
gnome-system-monitor-3.38.0-2
gnome-terminal-3.38.1-3
gnome-themes-extra-3.28-10
gnome-tour-3.38.0-3
gnome-tweaks-3.34.1-2
gnome-usage-3.38.0-2
gnome-weather-3.36.1-3
libgnomekbd-3.26.1-5
libgnome-keyring-3.12.0-21

Auf die TOUR kann man getrost verzichten, aber ansonsten ist das so das „normale“ Minimalpaket.

Euer Pinephone zeigt jetzt einen schwarzen Bildschirm. Jetzt brauchen wir GDM : „systemctl start gdm“ .

Ein paar Sekunden später erscheint die neue Loginmaske von Gnome 40. Jetzt als „pine“ User einloggen und etwas Geduld, startet die Gnome-Shell sehr langsam vor sich hin. Leider gibt es vom Greeter keinen Screenshot, mangels Möglichkeit.

Was Ihr jetzt nicht seht, Euch aber leider eine Weile begleitet, der GDM Prozess läuft im Kreis mit 100% auf einem CPU-Core. Ihr habt also nur 3 Kerne und das Telefon wird jetzt sehr schnell, sehr warm. Zum Ausprobieren reicht das, aber ein als Dauerzustand kann man das vergessen.

Links seht Ihr, was Euch dann erwartet. Irgendwas passend skalieren scheint keiner richtig sauber hinzubekommen 🙁

Das ist der App-Starter, den man aber nicht anklicken kann, sondern ausschließlich per Swipe von Links->Rechts reinbekommt. Das Gnome-Dock von früher wurde nach unten verlegt und auch hier patzt die Gnome-Shell mit dem Scaling wieder. Zieht sich durch wie ein roter Faden 😉 Es ist eine Alpha, da ändert sich noch sehr viel.

Die Aktivitätenübersicht

Die App-Übersicht aka. Aktivitäten kann man links oben in der Ecke anklicken oder per Drei-Finger-zusammenzieh-Swipe aktivieren. Der Swipe ist allerdings eher hinderlich, weil die laufenden App allergisch auf die ersten Klicks der Finger reagieren könnten 😀 Das war bei 3.38 auch nicht anders.

Oben im Bild seht Ihr diese Minivierecke, das ist die Aktivitätenvorschau, auch hier hat das Skalieren komplett versagt. Das wird unmöglich so bleiben, weil viel zu winzig. Jetzt dürft Ihr mal raten, wie man App von einer Aktivität in die andere bekommen… ja, der dicke Finger hat, schafft das niemals gewollt das richtige Minivierreck zutreffen 🙂

Die Extensions

Wer alte Extensions im Home hatte, der darf die Updaten. Da das eine Alpha ist, gibt es da nur sehr wenig zum Updaten, ergo funktionieren die meisten Extensions nicht mehr, so auch meine Internet Radio App und da hatte ich mich schon so gefreut.

… Was cooles …!!!

Bei all den kleinen Problemen gibt es auch was positives zu berichten: Automatische Bildschirmrotation und GPS gehen mit Gnome auf dem Pinephone \o/ Die Bildschirmrotation arbeitet sauber und schnell. Sie läßt sich wie auch auf Laptops und Tablets mit einem Klick blockieren, wenn einem das auf den Keks geht.

Erstes Fazit

Wenn man mal von der Langsamkeit des belegten CPU Kerns absieht, dem allgemein langsameren Start von Gnome an sich und den Skalierungsproblemen, fühlt sich das ganz gut an, wenn man es benutzt. Deswegen kann es neben Phosh wieder spannend werden, welcher Desktop am Ende das Rennen machen wird.

Was leider nicht klappt ist, daß man in GDM beim der Anmeldung auf Phosh oder Cinnamon zu wechseln. Das wäre genial gewesen. Die Anmeldung wird bei GDM übrigens per OSK erledigt und daher auch ein echtes Passwort sein kann, statt nur Zahlen wie bei Phosh.

Hat also alles seine Vor- und Nachteile.