Snapper funktioniert nicht mehr auf externen Laufwerken
Snapper ist ein Werkzeug, mit dem man auf Btrfs-Dateisystemen (und anderen)
Snapshots anlegen kann. Ich verwende das u.a., um auf externen Backup-Platten
Snapshots der Daten zu verschiedenen Zeiten zu halten.
Bisher hat das problemlos funktioniert, nun geht es plötzlich nicht mehr.
Besonders merkwürdig ist das, weil Snapper auf meinen internen Laufwerken nach
wie vor problemlos arbeitet. Auf externen Platten findet Snapper die
vorhandenen Snapshots nicht mehr und legt keine neuen mehr an.
Ich habe heute auf einer frischen, externen Platte ein Btrfs-Dateisystem
angelegt und dort versucht mit Snapper eine Konfiguration zu erstellen. Die
externe Platte ist auf /media/snapshot gemountet
/dev/sdd on /media/snapshot type btrfs
(rw,noatime,space_cache,subvolid=5,subvol=/)
$ snapper -c snapshot_test create-config -f btrfs /media/snapshot
Wenn alles richtig läuft, sollte es anschließend das Subvolume /media/
snapshots/.snapshots geben. Leider läuft es nicht richtig.
"IO Error (subvolume is not a btrfs subvolume)."
Den Code-Pfad kann man hier verfolgen
https://github.com/openSUSE/snapper/blob/v0.5.0/snapper/Btrfs.cc#L242
https://github.com/openSUSE/snapper/blob/v0.5.0/snapper/BtrfsUtils.cc#L98
Die relevante Prüfung ist
return stat.st_ino == 256 && S_ISDIR(stat.st_mode);
und das hier sagt stat dazu
$ stat /media/snapshot
File: /media/snapshot
Size: 54 Blocks: 32 IO Block: 4096 directory
Device: 75h/117d Inode: 256 Links: 1
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-01-04 13:18:34.383442705 +0100
Modify: 2018-01-04 13:18:34.395442826 +0100
Change: 2018-01-04 13:18:34.395442826 +0100
Birth: -
Snapper prüft auch nicht etwa gegen ein falsches Verzeichnis; mit strace finde
ich
lstat("/media/snapshot", {st_mode=S_IFDIR|0755, st_size=54, ...}) = 0
IO Error (subvolume is not a btrfs subvolume).
Mir ist es ein Rätsel, was hier passiert. Hat jemand eine Idee?
Michael
--
Michael Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
Reply to: