Nefunkční snapshot po upgradu na 5.2

Při upgradu na 5.2.0 se mi objevila chyba v UI, že se nepodařilo udělat upgrade. Tak jsem šel na konzoli a pustil pkgupdate a ten skončil s následující chybou:

INFO:Executing preupdate hook: 05_schnapps.sh
ERROR: cannot snapshot ‘/mnt/.snapshots/@’: File exists

Doufal jsem, že je to jen nějaká chyba té verze, kterou opraví první patch a neřešil to, ale update na 5.2.1 dopadl stejně:

TurrisOS 5.2.0, Turris Mox
-----------------------------------------------------
root@mox:~# pkgupdate
INFO:Target Turris OS: 5.2.1
WARN:Requested package luci-i18n-sqm-en that is missing, ignoring as requested.
INFO:Queue upgrade of updater-ng/turrispackages/69.1.2-1[69.1.1-1]
INFO:Queue upgrade of pkglists/turrispackages/1.6.3-1[1.6.1-1]
INFO:Queue upgrade of switch-branch/turrispackages/2.6.0-3[2.6.0-2]
INFO:Queue upgrade of ubox/base/2019-06-16-4df34a4d-4[2019-06-16-4df34a4d-3]
INFO:Queue upgrade of openwrt-keyring/base/2021-02-20-49283916-2[2019-07-25-8080ef34-1]
INFO:Queue downgrade of base-files/core/204.4-1153773[204.4-e108301]
INFO:Queue install of fix-dhparam-to-cagen/turrispackages/1-1
INFO:Queue upgrade of reforis/turrispackages/1.0.8-3.7-1[1.0.7-3.7-1]
INFO:Queue upgrade of sentinel-proxy/turrispackages/1.3.1-1[1.3-8]
INFO:Queue upgrade of syslog-ng/packages/3.32.1[3.31.2-1]
INFO:Queue upgrade of turris-webapps/turrispackages/3.6-2[3.6-1]
INFO:Queue upgrade of turris-version/base/5.2.1[5.2.0]
INFO:Queue upgrade of netdata/packages/1.30.1-1[1.29.3-2]
INFO:Queue upgrade of turris-webapps-luci/turrispackages/1.1-1[1.0-2]
INFO:Queue upgrade of foris-controller-openvpn-module/turrispackages/0.6.4-3.7-1[0.6.3-3.7-1]
INFO:Queue upgrade of turris-webapps-netdata/turrispackages/1.1-1[1.0-4]
INFO:Queue upgrade of foris-controller-haas-module/turrispackages/0.1.1-3.7-1[0.1-3.7-2]
INFO:Queue upgrade of reforis-haas-plugin/turrispackages/0.1.2-3.7-1[0.1.1-3.7-1]

INFO:Executing preupdate hook: 05_schnapps.sh
ERROR: cannot snapshot ‘/mnt/.snapshots/@’: File exists

Ruční spuštění schnapps končí zdá se na stejné chybě i po upgradu na 5.2.2:

TurrisOS 5.2.2, Turris Mox
-----------------------------------------------------
root@mox:~# schnapps create full
ERROR: cannot snapshot ‘/mnt/.snapshots/@’: File exists
Error creating new snapshot

Našel jsem tu vlákno, kde se problém se snapshoty řešil a @ljelinek tam vysvětloval, že schnapps si na začátku připojí kořen btrfs do /mnt/.snapshots.
Pokud je to pravda, tak to ale musí znamenat, že /mnt/.snapshots/@ existuje vždy, protože to je odkaz na aktuálně namountovaný subvolume:

root@mox:~# mount
/dev/mmcblk1p1 on / type btrfs (rw,noatime,ssd,space_cache,commit=5,subvolid=257,subvol=/@)

Tím pádem mi ale ta chyba s tím, že už ten soubor existuje nedává smysl :exploding_head:
Poradil by někdo jak to vyléčit?

Ten error říká, že nemůže udělat snapshot rootu, protože cíl toho snapshotu již existuje. Tedy schnapps se snazi udelat snapshot, neco jako @123 a ten jiz existuje. Schnaps si vybira cislo tak, ze vezme nejvyssi cislo ze souboru *.info. Prosim ujistete se, ze mate ke kazdemu snapshotu odpovidajici *.info soubor. Je možné, že se z nějakého důvodu u Vás neuložil nebo nevytvořil, nebo byl smazán.

Aha, takže rozbitá chybová hláška. Místo aby to řeklo, že cíl (tedy @123) už existuje, tak to napíše, že zdroj už existuje…to je pěkně matoucí.
Zkusil jsem si připojit root btrfs, ale nevidím tam nic podezřelého:

root@mox:/mnt/snap# ls -la /mnt/snap/
drwxr-xr-x 1 root root 182 May 2 01:05 .
drwxr-xr-x 1 root root 68 Jun 17 16:48 …
-rw-r–r-- 1 root root 76 Apr 27 03:04 1.info
-rw-r–r-- 1 root root 87 Jul 7 2019 17.info
-rw-r–r-- 1 root root 91 Mar 26 2019 18.info
-rw-r–r-- 1 root root 93 Mar 26 2019 19.info
-rw-r–r-- 1 root root 87 May 2 01:05 2.info
-rw-r–r-- 1 root root 91 Mar 28 2019 20.info
-rw-r–r-- 1 root root 87 May 9 01:05 3.info
drwxr-xr-x 1 root root 158 Jun 2 02:05 @
drwxr-xr-x 1 root root 158 Feb 19 03:02 @1
drwxr-xr-x 1 root root 152 Apr 27 03:01 @17
drwxr-xr-x 1 root root 152 Feb 24 2019 @18
drwxr-xr-x 1 root root 152 Mar 26 2019 @19
drwxr-xr-x 1 root root 158 Feb 19 03:02 @2
drwxr-xr-x 1 root root 152 Mar 26 2019 @20
drwxr-xr-x 1 root root 148 May 9 01:05 @3
drwxr-xr-x 1 root root 138 May 11 2019 @factory
lrwxrwxrwx 1 root root 21 May 11 2019 boot.scr -> @/boot/boot-btrfs.scr
drwxr-xr-x 1 root root 6 Feb 25 2019 certbackup

Snapshoty bez .info souboru jsou @ a @factory a to je hádám oboje něco speciálního.

Ne tak úplně. Spíše složitá angličtina. Říká to v překladu “Nemohu udělat snímek ‘tohoto svazku’”. Takže něco jako “nemohu udělat snímek tohoto, protože již existuje”.

Můžete prosím sem dát výstup z btrfs subvolume list "/mnt/snap" (samozřejmě na namountovaný FS)?

Hmm, chápu, ale to z té hlášky člověku nedojde, pokud není autor programu a neví, co se mu program snaží říct :wink:
Asi by to chtělo jednodušší formu, např: “ERROR: cannot snapshot ‘/mnt/.snapshots/@’: Target snapshot (#) already exists”

Výstup vypadá takto.

root@mox:~# btrfs subvolume list “/mnt/snap”
ID 257 gen 1046215 top level 5 path @
ID 259 gen 62 top level 5 path @factory
ID 282 gen 1043778 top level 5 path @1
ID 283 gen 1043778 top level 5 path @2
ID 284 gen 1042177 top level 5 path @3/@

Zdá se, že tam schází ty snapshoty 17-20.

1 Like

No reálně na tom nesejde. Toto není hláška ze schnappsu, ale z BTRFS. Schnapps se spoléhá na BTRFS v tomto ohledu.

Ano, netuším jak se to mohlo stát, ale minimálně Vám něco dělá složky v tom rootu, protože @3 také není snapshot, ale složka. Nedělal jste nějaké zásahy ručně? Další možnost je, že se některá data na BTRFS neuložili správně kvůli chybám na úložišti. To zjistíte nejlépe z logů systému, pokud se tam objevují chyby z BTRFS, tak je možné, že je problém s úložištěm.

Jinak oprava je smazat ty info soubory a složky, kde mají být snapshoty. V případě pak trojky musíte smazat prvně subvolume (btrfs subvol del @3/@) a pak až složku (rmdir @3).

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.