system failed to start due to systemd upgrade!

Started by charlyheinz, 2024/05/28, 10:13:08

Previous topic - Next topic

ro_sid

#75
systemd is a complexity monster and the opposite of the KISS principle!

Explanation to what happens, and why:
Entries in /etc/systemd/... overwrite/take precedence over (other) existing systemd files in (very) different locations (like /usr or /var). Thus a dangling symbolic link invalidates ("masks"?) its function.
Just "eliminating" it in /etc/systemd makes it work again, if there is a valid entry in one of the other locations. You can do this by e.g. just removing it or giving it another extension (If I do not want to remove it for some reason, I always append a .old extension to its name; let us hope systemd will never use an "old" service/target or whatsoever).

It is not necessary, to have an entry in /usr/share/systemd, as long as no link with higher precedence points to it - an entry in /usr/lib/systemd is sufficient.

You do not have to eliminate the entry in /etc/fstab, as long as it does not contradict the systemd service.

By the way, I had a second (dangling) entry to "tmp.mount" in /etc/systemd/system/local-fs.target.wants/, which I, of course, "invalidated", too.


PS: Thanks for pointing out, that "cron" is disabled by default in Siduction. I would never have assumed this! And, of course, enabled it immediately for things like "logrotate" etc.

der_bud

While OFFTOPIC for this thread about tmpfs/systemd/tmp.mount, just a quick one for @ro_sid:

Quote from: ro_sid on 2024/05/30, 02:19:00
... PS: Thanks for pointing out, that "cron" is disabled by default in Siduction. I would never have assumed this! And, of course, enabled it immediately for things like "logrotate" etc.

On my system 'systemctl list-timers --all' tells me that logrotate.timer calls logrotate.service on a daily base (and lists several other timers like plocate-updatedb.timer, anacron.timer, man-db.timer...)
Du lachst? Wieso lachst du? Das ist doch oft so, Leute lachen erst und dann sind sie tot.

charlyheinz

Auch bei mir voller Erfolg. Nach kopieren von tmp.mount:
Quotecp /usr/lib/systemd/system/tmp.mount  to /usr/share/systemd/tmp.mount"

bootet das System wieder einwandfrei.

Einträge in der fstab bezüglich "tmpfs  /tmp" waren nicht ergänzt und sind auch Keine auskommentiert. Den Eintrag habe ich so belassen wie er immer schon war.

Danke an  Alle

ro_sid

Quote from: der_bud on 2024/05/30, 08:49:54
While OFFTOPIC for this thread about tmpfs/systemd/tmp.mount, just a quick one for @ro_sid:
Quote from: ro_sid on 2024/05/30, 02:19:00
... PS: Thanks for pointing out, that "cron" is disabled by default in Siduction. I would never have assumed this! And, of course, enabled it immediately for things like "logrotate" etc.

On my system 'systemctl list-timers --all' tells me that logrotate.timer calls logrotate.service on a daily base (and lists several other timers like plocate-updatedb.timer, anacron.timer, man-db.timer...)
Still OFFTOPIC ;).
Oh, thanks, I did not look this up. May be it works, because these entries are in files like (/etc/)cron.{hourly, daily, weekly, monthly, d}, which are "non-standard" cron directories for the original cron. The latter live in /var/spool/cron. But some things must be left out, otherwise it would make no sense to have cron disabled.

Isegrimm666

Quote from: hendrikL on 2024/05/28, 13:58:32
Same problem here, you have to downgrade systemd to 256-rc3-2!

How i did it,

First change in the boot command line that ro to rw (read only to read write), boot!


Kurze Frage:


Ich hab jetzt im grub ,,c" gedrückt und habe einen Prompt.


Aber wie ändere ich jetzt ,,ro" in ,,rw"?

edlin

@Isegrimm666:
Du hättest besser e für edit drücken sollen. Dann ro in rw ändern und F10 drücken.

edlin
,,Ein kluger Mann macht nicht alle Fehler selber. Er lässt auch anderen eine Chance."

Winston Churchill

Isegrimm666

@edlin:

Ich wollte eben meinen Post editieren (ja, es war die falsche Taste.

Nach der Änderung "ro" --> "rw" bootet das System wieder soweit.

Nächster Schritt wäre für mich:

Bootprozedur erstmal so weiter zu behalten, bis hier eine valide Lösung auftaucht. *g

Isegrimm666

Gerade mal eben ein doas apt update && doas apt upgrade gemacht:


[10:39:08][isegrimm@C-Y-G-N-A:~]$ doas apt upgrade
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  libgdal34t64         libpthread-stubs0-dev   libqgis-app3.34.6   libqgis-native3.34.6  libqgispython3.34.6  libsnapd-glib-2-1                      linux-image-6.7.12-amd64             samba-dsdb-modules
  libkf5pulseaudioqt3  libqgis-3d3.34.6        libqgis-core3.34.6  libqgis-server3.34.6  libre2-10            libvpx8                                linux-image-6.8.9-1-siduction-amd64  systemd-dev
  libpoppler126t64     libqgis-analysis3.34.6  libqgis-gui3.34.6   libqgisgrass8-3.34.6  libsecp256k1-1       linux-headers-6.8.9-1-siduction-amd64  r-cran-teachingdemos
Verwenden Sie »apt autoremove«, um sie zu entfernen.

Upgrading:
  7zip           evince-common       gstreamer1.0-gl            gstreamer1.0-x         gvfs-libs            libgoa-1.0-common               libhwy1t64         libsmbclient0   python3-tornado    samba-dsdb-modules  yt-dlp
  bolt           fdisk               gstreamer1.0-libav         gtk-update-icon-cache  libadwaita-1-0       libgstreamer-gl1.0-0            libldb2            libuuid1        r-cran-data.table  samba-libs
  bsdextrautils  firefox             gstreamer1.0-plugins-base  gvfs                   libblkid1            libgstreamer-plugins-base1.0-0  libmalcontent-0-0  libwbclient0    r-cran-quantreg    shared-mime-info
  bsdutils       firefox-l10n-de     gstreamer1.0-plugins-good  gvfs-backends          libevdocument3-4t64  libgstreamer1.0-0               libmount1          mount           r-cran-rsample     switcheroo-control
  easy-rsa       firefox-l10n-en-gb  gstreamer1.0-plugins-ugly  gvfs-common            libevview3-3t64      libgtk-3-0t64                   libmsgraph-0-1     python3-ldb     rfkill             util-linux
  eject          gir1.2-gtk-3.0      gstreamer1.0-pulseaudio    gvfs-daemons           libfdisk1            libgtk-3-bin                    libsdl2-2.0-0      python3-pyproj  samba-common       util-linux-extra
  evince         gstreamer1.0-alsa   gstreamer1.0-tools         gvfs-fuse              libgoa-1.0-0b        libgtk-3-common                 libsmartcols1      python3-samba   samba-common-bin   uuid-runtime

Summary:
  Upgrading: 71, Installing: 0, Removing: 0, Not Upgrading: 0
  Download size: 111 MB
  Space needed: 461 kB / 648 GB available

Continue? [J/n]
[10:39:48][isegrimm@C-Y-G-N-A:~]$



Sollte man es machen?

edlin

Also ich habs analog wie @charlyheinz gemacht. Den Link in /etc/systemd/system (tmp.mount -> /usr/share/systemd/tmp.mount) habe ich belassen, den zeitweise auskommentierten Eintrag für tmpfs in fstab habe ich wieder aktiviert.
Dann /usr/lib/systemd/system/tmp.mount  nach /usr/share/systemd/tmp.mount kopiert.

edlin
,,Ein kluger Mann macht nicht alle Fehler selber. Er lässt auch anderen eine Chance."

Winston Churchill

edlin

@Isegrimm666: Was soll da passieren? Die Frage ist doch eher, warum kein full-upgrade?

edlin

,,Ein kluger Mann macht nicht alle Fehler selber. Er lässt auch anderen eine Chance."

Winston Churchill

Isegrimm666

@edlin

...weil das gestern zum hier diskutierten Problem führte. *g

ro_sid

Bitte Vorsicht mit dem (physischen) Kopieren der Datei nach /usr/share/systemd. Falls die Datei durch ein Paket aktualisiert wird, bekommt man dann davon "nichts mit", da dies mit an Sicherheit grenzender Wahrscheinlichkeit in /usr/lib/systemd passiert.
Besser ist es, auch in /usr/share/systemd "nur" einen symbolischen Link zu setzen - natürlich auf die physische Datei.
Noch besser ist es, die "hängenden" symbolischen Links einfach zu entfernen.

ro_sid

@edlin, @isegrimm666:
Ein "full-upgrade/dist-upgrade" ist seit der "Anpassung" bei mir wieder absolut unproblematisch - und irgendwann muß man es ja wieder machen ;).
Vielleicht sollte man aber die "-rc"-Varianten aussitzen.

Isegrimm666

@ro_sid:

Ich denke, das Aussitzen wäre wohl nicht das Verkehrteste.

Zum Verständnis:
Es juckt mich schon, Eure Anpassungen vorzunehmen und das Ganze zu fixen. Aber ich habe derzeit wenig Zeit und weiß, dass ich keine ruhige Minute hätte, bis ich - im Falle eines Misserfolgs - das ganze wieder 'hingebogen' habe.

Außerdem ginge das ohne Eure Mithilfe kaum und ich mag Euch einfach nicht andauernd auf den Keks gehen  :)

hendrikL

Also Aussitzen ist blöd in diesem Falle ;)

Und wenn Du wieder booten kannst usw. warum nicht weiterhin das System aktuell halten mit 'apt full-upgrade', und wenn Zeit das Reparieren, genauer ausgedrückt, ins Lot bringen!

Mal 'nen Blick auf 'systemctl status tmp.mount' werfen wäre ein Anfang.