Leap mit Btrfs: nach Speichermangel bei Update "Failed to cache rpm database (129)"

Nach einiger Zeit wollte ich wieder einmal mein Zweitsystem Leap 42.3 updaten.
Folglich größerer Update. Habe zuwenig aufgepaßt - die 40-GB Sys-Partition ist übergelaufen - von wegen Btrfs achtet auf den Platzbedarf … *).
Seither und egal, was ich mache - “Failed to cache rpm database (129)” (Was heißt eigentlich die “129”?).
Im Web finde ich nur Handlungsanweisungen für “Failed to cache rpm database (1)”.
Die haben bisher alle nicht gefruchtet.

System läuft klaglos unter 4.15.5-1.g52ce732-default, läßt sich jedoch nicht updaten.

Rebuilddb jeweils ohne Fehler, nützt nur nichts:

# rpm --rebuilddb
# zypper up
Zielinitialisierung fehlgeschlagen:
Failed to cache rpm database (129)

# cd /var/lib/rpm
mv Packages Packages-backup
# db_dump Packages-backup | db_load Packages
# rpm -qa
# rpm --rebuilddb

dumpt zwar die Packages, aber die “129” bleibt.
Der Fehler wird also damit nicht behoben.

Was kann da helfen? Was ist denn überhaupt defekt?

P.S.: Erfreulich ist, daß Tumbleweed nach ersten Piepsern unter Kernel 4.15.x und Versuchen unter 4.15.6(Flop) und 4.15.7-1(mangelhaft) unter Kernel 4.15.7-2 stabil läuft und erstmals Digital-Audio über den HDMI-Speaker im (DP-)Monitor kommt.
*) Die Systempartition sollte bei Verwendung von Btrfs m.E. keinesfalls kleiner, eher ein Stück größer als 60 GB angelegt werden, OpenSuSE verwendet per default unzureichende 40 GB.
Das mag dem Testen der Grenzfälle dieses doch noch recht experimentellen Systems dienen, dem Benutzer hilft’s nicht.
Btrfs läßt sich, wenn auch recht umständlich und wohl noch eher experimentell, verlängern, XFS aber nicht verkürzen. Da braucht man neben überflüssiger Zeit einen genügend großen leeren Datenträger …

Leider, bezüglich Btrfs auf 'n Klapprechner, Mann muss ab und zu ein bisschen haushalten durchführen (mit Staubsauger, Besen und Kehrschaufel … ).

Mit TTY1 und der Benutzer ‘root’ und in Modus “systemctl rescue” händisch alles was mit Btrfs zu tun in “/etc/cron.weekly/” und “/etc/cron.monthly/” ist, ausführen.
Es wird eine weile dauern (Btrfs “balance”, “trim”, “scrub”) aber, Geduld … Wenn alles fertig ist, neu booten.

Poste, als root ausgeführt:

btrfs fi df /
snapper list
# btrfs fi df /
Data, single: total=34.37GiB, used=31.21GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=2.75GiB, used=2.08GiB
GlobalReserve, single: total=122.62MiB, used=0.00B

# snapper list
Typ    | #   | Vorher # | Datum                            | Benutzer | Bereinigen | Beschreibung            | Benutzerdaten
-------+-----+----------+----------------------------------+----------+------------+-------------------------+--------------
single | 0   |          |                                  | root     |            | current                 |              
single | 1   |          | Thu 30 Mar 2017 07:01:40 PM CEST | root     |            | first root filesystem   |              
single | 141 |          | Fri 31 Mar 2017 10:36:25 PM CEST | root     |            |                         |              
single | 194 |          | Mon 03 Apr 2017 06:00:27 PM CEST | root     |            |                         |              
single | 195 |          | Mon 03 Apr 2017 06:00:30 PM CEST | root     |            |                         |              
single | 221 |          | Fri 07 Apr 2017 12:16:39 AM CEST | root     |            |                         |              
single | 222 |          | Fri 07 Apr 2017 12:16:43 AM CEST | root     |            |                         |              
single | 226 |          | Fri 07 Apr 2017 12:56:29 AM CEST | root     |            |                         |              
single | 227 |          | Fri 07 Apr 2017 12:56:33 AM CEST | root     |            |                         |              
pre    | 817 |          | Sun 04 Mar 2018 02:21:18 PM CET  | root     | number     | zypp(packagekitd)       | important=yes
post   | 818 | 817      | Sun 04 Mar 2018 02:21:25 PM CET  | root     | number     |                         | important=yes
pre    | 819 |          | Sun 04 Mar 2018 02:26:38 PM CET  | root     | number     | zypp(zypper)            | important=no 
post   | 820 | 819      | Sun 04 Mar 2018 02:26:48 PM CET  | root     | number     |                         | important=no 
pre    | 821 |          | Sun 04 Mar 2018 02:35:29 PM CET  | root     | number     | yast snapper            |              
pre    | 826 |          | Sun 04 Mar 2018 03:38:47 PM CET  | root     | number     | yast checkmedia         |              
post   | 827 | 826      | Sun 04 Mar 2018 03:39:40 PM CET  | root     | number     |                         |              
pre    | 828 |          | Mon 05 Mar 2018 12:52:38 PM CET  | root     | number     | vor dem Update          | important=yes
post   | 829 | 828      | Mon 05 Mar 2018 01:06:06 PM CET  | root     | number     | nach der Aktualisierung | important=yes
pre    | 830 |          | Mon 05 Mar 2018 01:34:17 PM CET  | root     | number     | yast repositories       |              
pre    | 831 |          | Mon 05 Mar 2018 01:34:17 PM CET  | root     | number     | yast repositories       |              
pre    | 832 |          | Mon 05 Mar 2018 01:34:18 PM CET  | root     | number     | yast sw_single          |              
pre    | 833 |          | Mon 05 Mar 2018 01:34:19 PM CET  | root     | number     | yast online_update      |              
post   | 834 | 830      | Mon 05 Mar 2018 01:35:11 PM CET  | root     | number     |                         |              
post   | 835 | 831      | Mon 05 Mar 2018 01:35:13 PM CET  | root     | number     |                         |              
post   | 836 | 832      | Mon 05 Mar 2018 01:35:35 PM CET  | root     | number     |                         |              
post   | 837 | 833      | Mon 05 Mar 2018 01:38:15 PM CET  | root     | number     |                         |              
pre    | 838 |          | Mon 05 Mar 2018 01:39:43 PM CET  | root     | number     | yast repositories       |              
post   | 839 | 838      | Mon 05 Mar 2018 01:41:18 PM CET  | root     | number     |                         |              
pre    | 840 |          | Mon 05 Mar 2018 01:41:25 PM CET  | root     | number     | yast sw_single          |              
post   | 841 | 840      | Mon 05 Mar 2018 01:41:30 PM CET  | root     | number     |                         |              
pre    | 842 |          | Mon 05 Mar 2018 01:42:25 PM CET  | root     | number     | yast repositories       |                         
post   | 843 | 842      | Mon 05 Mar 2018 01:42:46 PM CET  | root     | number     |                         |                         
pre    | 844 |          | Mon 05 Mar 2018 01:42:53 PM CET  | root     | number     | yast sw_single          |                         
post   | 845 | 844      | Mon 05 Mar 2018 01:42:56 PM CET  | root     | number     |                         |                         
pre    | 846 |          | Mon 05 Mar 2018 02:56:18 PM CET  | root     | number     | yast disk               |                         
pre    | 847 |          | Mon 05 Mar 2018 02:56:28 PM CET  | root     | number     | yast disk               |                         
post   | 848 | 847      | Mon 05 Mar 2018 02:57:05 PM CET  | root     | number     |                         |                         
post   | 849 | 846      | Mon 05 Mar 2018 03:00:28 PM CET  | root     | number     |                         |                         
pre    | 850 |          | Mon 05 Mar 2018 05:43:51 PM CET  | root     | number     | yast repositories       |                         
post   | 851 | 850      | Mon 05 Mar 2018 05:44:12 PM CET  | root     | number     |                         |                         
pre    | 852 |          | Mon 05 Mar 2018 05:44:23 PM CET  | root     | number     | yast sw_single          |                         
post   | 853 | 852      | Mon 05 Mar 2018 05:44:28 PM CET  | root     | number     |                         |                         
pre    | 854 |          | Mon 05 Mar 2018 05:44:30 PM CET  | root     | number     | yast sw_single          |                         
post   | 855 | 854      | Mon 05 Mar 2018 05:44:37 PM CET  | root     | number     |                         |                         
pre    | 856 |          | Mon 05 Mar 2018 06:00:29 PM CET  | root     | number     | yast sound              |                         
post   | 857 | 856      | Mon 05 Mar 2018 06:00:36 PM CET  | root     | number     |                         |                         
pre    | 858 |          | Mon 05 Mar 2018 06:00:39 PM CET  | root     | number     | yast sound              |                         
post   | 859 | 858      | Mon 05 Mar 2018 06:01:02 PM CET  | root     | number     |                         |                         
pre    | 860 |          | Mon 05 Mar 2018 06:01:15 PM CET  | root     | number     | yast sw_single          |                         
post   | 861 | 860      | Mon 05 Mar 2018 06:01:21 PM CET  | root     | number     |                         |                         
pre    | 862 |          | Mon 05 Mar 2018 06:07:09 PM CET  | root     | number     | yast disk               |                         
post   | 863 | 862      | Mon 05 Mar 2018 06:07:32 PM CET  | root     | number     |                         |                         

Schnappschuss 141 bis 227 würde ich löschen:
als root:

snapper delete 141-227

Sowie:
https://forums.opensuse.org/showthread.php/488727-clear-tmp-dirs-at-bootup?highlight=tmpfiles
So sieht meine Datei (/etc/tmpfiles.d/tmp.conf) aus:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Clear tmp directories separately, to make them easier to override
# SUSE policy: we don't clean those directories
D /tmp 1777 root root 3d
D /var/tmp 1777 root root 7d

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-*
x /var/tmp/systemd-private-*
X /tmp/systemd-private-*/tmp
X /var/tmp/systemd-private-*/tmp

Zuerst danke für die /tmp.conf, habe sie für Tumbleweed übernommen.

snapper delete 141-227

wollte ich gestern auch machen, ging aber nicht - warum auch immer.

Danach versuchte ich btrfs balance. Nach ein paar Stunden war der Rechner abgeschmiert - muß nichts heißen, kommt bei meiner Kiste (mit Ryzen) inzwischen selten, aber immer noch mal vor, interessanterweise hauptsächlich dann, wenn ich sie länger allein lasse. Der fsck danach - vom anderen System aus - sah nicht gut aus, und er behob nur einen Teil der Fehler.
Leap ist defekt, kommt nur in Emergency-State hoch (die meisten für’s System wichtigen logischen Filesysteme werden nicht gefunden).
Selbst der Versuch einer Neuinstallation per DVD ist zuletzt gescheitert - reproduzierbar unendliche Schleife bei

Systemüberprüfung -> Systemdateien werden gesucht

.
Etwas Vergleichbares hatte ich noch nie gesehen.
Muß die Systempartition offenbar zuerst neu formatieren.
Btrfs war zweifellos sehr nützlich, solange Linux unter Ryzen so fehlerhaft war.
Inzwischen funktioniert Linux da aber ziemlich zuverlässig, die Updates haben die letzten Monate immer funktioniert, Btrfs ist für einen Heimwerker wie mich also nicht mehr so wichtig - und das Theater mit diesem noch reichlich unausgegorenen Filesystem reicht mir.
Schön langsam will ich also fürs System auf das weit weniger arbeitsintensive Filesystem ext4 umstellen, wenn ich das System schon sowieso neu aufsetzen muß.

Der Yast2-Partitionierer mosert, wenn ich die bisherige Btrfs-Systempartition statt auf btrfs auf ext4 formatieren will (nicht aber vor Formatieren mit btrfs), daß sich das System “möglicherweise nicht mehr booten läßt”.
Was ist der Hintergrund? Brauche ich evtl. wg. EFI eine Windows-Partition auf der Platte? Welche? Wie groß?

Den Rest der Platte nimmt eine XFS-Partition ein, für eine 1:1-Kopie brauche ich erst einen blanken Datenträger. Mehr als 40 GB bekomme ich also für’s System nicht - eines mit Btrfs möchte ich unter diesen Umständen gar nicht erst wieder versuchen.

Nein.


 # parted --list
Model: ATA ST1000LX015-1U71 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name     Flags
 1      1049kB  165MB   164MB   fat16           primary  boot
 2      165MB   8225MB  8060MB  linux-swap(v1)  primary
 3      8225MB  94,1GB  85,9GB  btrfs           primary
 4      94,1GB  1000GB  906GB   xfs             primary


 # 
 # fdisk --list
Festplatte /dev/sda: 931,5 GiB, 1000204886016 Bytes, 1953525168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Festplattenbezeichnungstyp: gpt
Festplattenbezeichner: 5974E051-0815-44FC-922E-85F5B7855739

Gerät         Anfang       Ende   Sektoren  Größe Typ
/dev/sda1       2048     321535     319488   156M EFI-System
/dev/sda2     321536   16064511   15742976   7,5G Microsoft Basisdaten
/dev/sda3   16064512  183832575  167768064    80G Microsoft Basisdaten
/dev/sda4  183832576 1953523711 1769691136 843,9G Microsoft Basisdaten


 # 

Möglicherweise hat was ‘fdisk’ ausspuckt die Welt ein wenig konfus gemacht.