Timeshift: Only one snapshot left after "forced" shutdown

Yesterday I locked my laptop running Manjaro KDE with btrfs as a filesystem, when I had to leave. When I came back and wanted to login again, I was only able to move the mouse on the lock screen, but I could not get to the login screen. It didn’t work with the keyboard either. Therefore after a while I decided to shut it down using the hardware power-button.

When booting into the system again, latte dock was gone. As I’ve had this problem before, I decided to just restore the system from a btrfs snapshot within timeshift. However, I was shocked when I saw that there was only a single snapshot within timeshift.
When running:

sudo btrfs subv list/

only one snapshot showed up as well.
I know that timeshift’s automatic snapshots get deleted after a while, but this has never happened before and some of the snapshots have been taken manually.

My settings regarding automatic snapshots look like this:
snapshot_levels_timeshift

Now, I have installed Manjaro exactly 15 days ago, so it should not have removed that many snapshots.

In addition to that, I seem to be using the @ (root) subvolume again, but, as I have restored my system from a snapshot before, I used to always use a snapshot subvolume since the first restore.
btrfs_subv

For some odd reason all software I had installed before is still on the system, even though I seem to be using a different subvolume now.

I would highly appreciate it, if someone could help me out with this one. Should you need any more information about the system or anything else, I will be more than happy to add it to the thread!
Thanks in advance.

sudo btrfs subvolume list / should show a lot of snapshots !

see my list:
sudo btrfs subvolume list /                                                                                          
ID 258 gen 554281 top level 5 path @home
ID 287 gen 544112 top level 258 path @home/.snapshots
ID 3648 gen 554276 top level 5 path @snapshots
ID 4455 gen 554281 top level 5 path @nosnap
ID 5719 gen 554277 top level 5 path @home.snapshots
ID 36033 gen 554281 top level 5 path @
ID 36219 gen 441242 top level 3648 path @snapshots/18974/snapshot
ID 37135 gen 449216 top level 3648 path @snapshots/19479/snapshot
ID 38075 gen 468937 top level 3648 path @snapshots/20007/snapshot
ID 39046 gen 496793 top level 3648 path @snapshots/20563/snapshot
ID 39328 gen 506898 top level 3648 path @snapshots/20719/snapshot
ID 39329 gen 506901 top level 5719 path @home.snapshots/14302/snapshot
ID 39798 gen 515413 top level 3648 path @snapshots/21053/snapshot
ID 39799 gen 515415 top level 5719 path @home.snapshots/14424/snapshot
ID 40008 gen 524999 top level 3648 path @snapshots/21165/snapshot
ID 40009 gen 525002 top level 5719 path @home.snapshots/14522/snapshot
ID 40225 gen 534118 top level 3648 path @snapshots/21288/snapshot
ID 40226 gen 534121 top level 5719 path @home.snapshots/14616/snapshot
ID 40261 gen 535421 top level 3648 path @snapshots/21306/snapshot
ID 40496 gen 539256 top level 3648 path @snapshots/21431/snapshot
ID 40497 gen 539259 top level 5719 path @home.snapshots/14744/snapshot
ID 40753 gen 545883 top level 3648 path @snapshots/21582/snapshot
ID 40754 gen 545886 top level 5719 path @home.snapshots/14845/snapshot
ID 40956 gen 549551 top level 3648 path @snapshots/21695/snapshot
ID 40957 gen 549553 top level 5719 path @home.snapshots/14934/snapshot
ID 41181 gen 550920 top level 3648 path @snapshots/21819/snapshot
ID 41182 gen 550922 top level 5719 path @home.snapshots/15032/snapshot
ID 41208 gen 551094 top level 3648 path @snapshots/21833/snapshot
ID 41450 gen 552358 top level 3648 path @snapshots/21987/snapshot
ID 41451 gen 552360 top level 5719 path @home.snapshots/15130/snapshot
ID 41479 gen 552554 top level 3648 path @snapshots/22002/snapshot
ID 41480 gen 552556 top level 5719 path @home.snapshots/15144/snapshot
ID 41507 gen 552750 top level 3648 path @snapshots/22017/snapshot
ID 41508 gen 552752 top level 5719 path @home.snapshots/15157/snapshot
ID 41531 gen 552868 top level 3648 path @snapshots/22032/snapshot
ID 41532 gen 552869 top level 3648 path @snapshots/22033/snapshot
ID 41537 gen 552902 top level 3648 path @snapshots/22036/snapshot
ID 41544 gen 552944 top level 3648 path @snapshots/22040/snapshot
ID 41545 gen 552946 top level 3648 path @snapshots/22041/snapshot
ID 41546 gen 552948 top level 3648 path @snapshots/22042/snapshot
ID 41547 gen 552949 top level 3648 path @snapshots/22043/snapshot
ID 41548 gen 552955 top level 3648 path @snapshots/22044/snapshot
ID 41549 gen 552964 top level 3648 path @snapshots/22045/snapshot
ID 41550 gen 552966 top level 5719 path @home.snapshots/15171/snapshot
ID 41563 gen 553056 top level 3648 path @snapshots/22052/snapshot
ID 41576 gen 553148 top level 3648 path @snapshots/22059/snapshot
ID 41577 gen 553151 top level 3648 path @snapshots/22060/snapshot
ID 41578 gen 553152 top level 3648 path @snapshots/22061/snapshot
ID 41579 gen 553156 top level 3648 path @snapshots/22062/snapshot
ID 41580 gen 553158 top level 5719 path @home.snapshots/15184/snapshot
ID 41607 gen 553341 top level 3648 path @snapshots/22076/snapshot
ID 41608 gen 553347 top level 3648 path @snapshots/22077/snapshot
ID 41609 gen 553349 top level 5719 path @home.snapshots/15198/snapshot
ID 41620 gen 553426 top level 3648 path @snapshots/22083/snapshot
ID 41625 gen 553456 top level 3648 path @snapshots/22086/snapshot
ID 41626 gen 553462 top level 3648 path @snapshots/22087/snapshot
ID 41627 gen 553464 top level 5719 path @home.snapshots/15206/snapshot
ID 41650 gen 553624 top level 3648 path @snapshots/22099/snapshot
ID 41655 gen 553647 top level 3648 path @snapshots/22102/snapshot
ID 41656 gen 553650 top level 3648 path @snapshots/22103/snapshot
ID 41657 gen 553652 top level 5719 path @home.snapshots/15220/snapshot
ID 41684 gen 553835 top level 3648 path @snapshots/22117/snapshot
ID 41685 gen 553838 top level 3648 path @snapshots/22118/snapshot
ID 41686 gen 553839 top level 5719 path @home.snapshots/15234/snapshot
ID 41701 gen 553944 top level 3648 path @snapshots/22126/snapshot
ID 41708 gen 553978 top level 3648 path @snapshots/22130/snapshot
ID 41709 gen 553982 top level 3648 path @snapshots/22131/snapshot
ID 41710 gen 553984 top level 3648 path @snapshots/22132/snapshot
ID 41711 gen 553985 top level 3648 path @snapshots/22133/snapshot
ID 41712 gen 553987 top level 3648 path @snapshots/22134/snapshot
ID 41713 gen 553988 top level 3648 path @snapshots/22135/snapshot
ID 41714 gen 553990 top level 3648 path @snapshots/22136/snapshot
ID 41715 gen 553991 top level 3648 path @snapshots/22137/snapshot
ID 41716 gen 553993 top level 3648 path @snapshots/22138/snapshot
ID 41717 gen 553994 top level 3648 path @snapshots/22139/snapshot
ID 41718 gen 554003 top level 3648 path @snapshots/22140/snapshot
ID 41721 gen 554022 top level 3648 path @snapshots/22142/snapshot
ID 41722 gen 554024 top level 5719 path @home.snapshots/15246/snapshot
ID 41723 gen 554036 top level 3648 path @snapshots/22143/snapshot
ID 41724 gen 554038 top level 5719 path @home.snapshots/15247/snapshot
ID 41725 gen 554054 top level 3648 path @snapshots/22144/snapshot
ID 41726 gen 554057 top level 3648 path @snapshots/22145/snapshot
ID 41727 gen 554059 top level 5719 path @home.snapshots/15248/snapshot
ID 41728 gen 554071 top level 3648 path @snapshots/22146/snapshot
ID 41729 gen 554073 top level 5719 path @home.snapshots/15249/snapshot
ID 41730 gen 554084 top level 3648 path @snapshots/22147/snapshot
ID 41731 gen 554086 top level 5719 path @home.snapshots/15250/snapshot
ID 41732 gen 554090 top level 3648 path @snapshots/22148/snapshot
ID 41733 gen 554092 top level 3648 path @snapshots/22149/snapshot
ID 41734 gen 554094 top level 3648 path @snapshots/22150/snapshot
ID 41735 gen 554095 top level 3648 path @snapshots/22151/snapshot
ID 41736 gen 554098 top level 3648 path @snapshots/22152/snapshot
ID 41737 gen 554099 top level 3648 path @snapshots/22153/snapshot
ID 41738 gen 554106 top level 3648 path @snapshots/22154/snapshot
ID 41739 gen 554107 top level 5719 path @home.snapshots/15251/snapshot
ID 41740 gen 554122 top level 3648 path @snapshots/22155/snapshot
ID 41741 gen 554124 top level 3648 path @snapshots/22156/snapshot
ID 41742 gen 554126 top level 5719 path @home.snapshots/15252/snapshot
ID 41743 gen 554134 top level 3648 path @snapshots/22157/snapshot
ID 41744 gen 554136 top level 3648 path @snapshots/22158/snapshot
ID 41745 gen 554142 top level 3648 path @snapshots/22159/snapshot
ID 41746 gen 554143 top level 5719 path @home.snapshots/15253/snapshot
ID 41747 gen 554155 top level 3648 path @snapshots/22160/snapshot
ID 41748 gen 554156 top level 5719 path @home.snapshots/15254/snapshot
ID 41749 gen 554170 top level 3648 path @snapshots/22161/snapshot
ID 41750 gen 554179 top level 3648 path @snapshots/22162/snapshot
ID 41751 gen 554181 top level 5719 path @home.snapshots/15255/snapshot
ID 41752 gen 554193 top level 3648 path @snapshots/22163/snapshot
ID 41753 gen 554195 top level 5719 path @home.snapshots/15256/snapshot
ID 41754 gen 554206 top level 3648 path @snapshots/22164/snapshot
ID 41755 gen 554208 top level 5719 path @home.snapshots/15257/snapshot
ID 41756 gen 554219 top level 3648 path @snapshots/22165/snapshot
ID 41757 gen 554221 top level 5719 path @home.snapshots/15258/snapshot
ID 41758 gen 554232 top level 3648 path @snapshots/22166/snapshot
ID 41759 gen 554234 top level 5719 path @home.snapshots/15259/snapshot
ID 41760 gen 554245 top level 3648 path @snapshots/22167/snapshot
ID 41761 gen 554247 top level 5719 path @home.snapshots/15260/snapshot
ID 41762 gen 554253 top level 3648 path @snapshots/22168/snapshot
ID 41763 gen 554254 top level 3648 path @snapshots/22169/snapshot
ID 41764 gen 554255 top level 3648 path @snapshots/22170/snapshot
ID 41765 gen 554256 top level 3648 path @snapshots/22171/snapshot
ID 41766 gen 554261 top level 3648 path @snapshots/22172/snapshot
ID 41767 gen 554263 top level 5719 path @home.snapshots/15261/snapshot
ID 41768 gen 554275 top level 3648 path @snapshots/22173/snapshot
ID 41769 gen 554277 top level 5719 path @home.snapshots/15262/snapshot

Dieser Text wird ausgeblendet

If they do not show, may be they do not exist.

Are you sure this is the right place(device) to look ?

I do have NO experience with timeshift because i do use snapper

P.S.:

Gentle shut down a suddenly hanged PC to minimize a chance of getting a broken filesystem and data loss:

Thank you very much for your response.

Yes, running sudo btrfs subvolume list / also always used to show up lots of snapshots for me, but now it doesn’t …
You’re right, they may have been removed for one or another reason. I just don’t get why. I mean after all they are saved. Even when cd’ing into the /run/timeshift directory I was not able to find them.

And what do you think about the system somehow using the @ (root) subvolume now? It always used a snapshot before, because I restored it a few times. Did I use btrfs the wrong way? And how are all the applications still there, even though I use another subvolume now?

What do you mean by " Are you sure this is the right place(device) to look ?"

And thank you very much for the tutorial on how to reboot/turn off a frozen computer! I will make sure to do it that way the next time it happens, highly appreciated!

Maybe our problems are related?

It seems to me as if there was some situation where all snapshots are detected and also might be deleted, but the check for keeping some snapshots is not properly executed.

Have you checked your logfiles for any timeshift-related entries?

1 Like

I do my snapshots with snapper. (not only / , but also /home) Time-based, automatic at updates, at every successful boot, deleted according to config. There every snapshot is readonly. And i never lost a snapshot. :smiling_face_with_three_hearts:

I have btrfs-RAID1 with 30…60 snapshots, zstd(ca. 2:1), 40% unallocated space so btrfs can breath.

I have some Links with further information for you:

You find good Information about Btrfs in the wiki

https://wiki.manjaro.org/index.php/Btrfs

https://forum.manjaro.org/t/how-to-manual-rollback-with-btrfs/80230/5

https://forum.manjaro.org/t/how-to-rescue-data-from-a-damaged-btrfs-volume/79414/4

Snapshots are not necessarily part of the normal filesystem. They reside inside btrfs and you may need to mount them to see them in the normal filesystem.

I do mount mine readonly in /.snapshots and /home/.snapshots

1 Like

Had some problem with automatic timeshift to. Now I only do manuell timeshift copy. And i only do it before a major update or if I try to do some system changes to my system. I only kep maybe 4 or 5. It works fine with me.

The “readonly” part is kind of irrelevant with this problem; after all, you also want to prune old snapshots automatically after some time (I suppose). There seems to be an issue with timeshift itself, so thanks for pointing out an alternative.

Also, in a “standard configuration” of timeshift, the btrfs root (subvol=/) is being mounted to /run/timeshift/backup, everything that is available in btrfs should be there.

Maybe we should move this issue to the github and discuss it with the developer (GitHub - teejee2008/timeshift: System restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots. Supports scheduled snapshots, multiple backup levels, and exclude filters. Snapshots can be restored while system is running or from Live CD/USB.).

2 Likes

Geeckoo I have checked a few, but as I am still pretty new to Manjaro + btrfs and using btrfs with timeshift, I might have looked at the wrong ones. Which ones would you have looked at? Maybe I missed some of them.
So you think there is an issue with timeshift removing old snapshots after the specified time?
And by the btrfs root subv being mounted to run /timeshift/backup you mean that when I restored it, it should have still shown the root subvolume as the one I am using instead of the snapshot subvolume?
And yes, moving it to Github is probably a good idea.
Thank you very much for the help!

andreas85
Thanks for all the resources, highly appreciate it! Will have a look at them tonight :slight_smile:

lp354 What was your problem like?

Well I tried different Timeshift automatic settings and it worked well but sometimes maybe I was unlucky, shutting my computer down or something else exactly when the Timeshift worked. So I simply decides it works better for me just to do an image just when I needed it.

In the other thread I’ve posted my output from /var/log/pacman.log which gave insight that there was an issue with some JSON data, probably used by timeshift to manage the snapshots.
I suspect that this lead to timeshift simply ignoring all “keep” settings and it just deleted everything it found.

2 Likes