Slow snapper operations when calling sdbootutil

I am seeing slow snapper operations of ~20 sec with entries in /var/log/snapper.log like:
Tue Jun 9 09:44:12 2026 <1> SystemCmd.cc(execute):180 stopwatch 21.943143s for "/usr/lib/snapper/plugins/10-sdbootutil.snapper create-snapshot-post / btrfs 15"
That makes, for example, installation of packages with zypper slow, not during downloading or installing but right after confirming (pressing ‘y’) at the time when the snapshot is created. From pressing ‘y’ until starting downloading, there is a gap of 20sec or more.

I am running a fresh Tumbleweed installation with default partition layout and full disk encryption with default option (TPM2 + PIN) on a ~6 years old laptop with 256G SSD disk.

After looking at snapper.log it looks that time is spent when calling 10-sdbootutil.snapper. I added --start-trace-code in 10-sdbootutil.snapper for the calls to sdbootutil
/usr/bin/sdbootutil update --start-trace-code --sync "$num" || :
when creating snapshots and got some more verbose logs.
In snapper log, creating some snapshots is slower that other but I can’t see any error except for multiple entries with:
SystemCmd.cc(getUntilEOF):358 pid:15067 added lines:10 stderr:true

In snapper.log

Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(SystemCmd):48 constructor SystemCmd: /usr/lib/snapper/plugins/10-sdbootutil.snapper create-snapshot-post / btrfs 15
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 1 "The trace of the code is being stored in /var/log/sdbootutil.log"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 2 "Remove the file or use --stop-trace-code to stop tracing the code"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 3 "Audit the file before sharing, as secrets can be leaked"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:3 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 4 "Found container virtualization none."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 5 "Failed to check file system type of "/efi": No such file or directory"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 6 "File system "/boot" is not a FAT EFI System Partition (ESP) file system."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:2 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 7 "Loaded shared library 'libblkid.so.1' via dlopen()."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 8 "Using EFI System Partition at /boot/efi."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 9 "Found container virtualization none."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 10 "Failed to check file system type of "/efi": No such file or directory"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 11 "File system "/boot" is not a FAT EFI System Partition (ESP) file system."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:2 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 12 "Loaded shared library 'libblkid.so.1' via dlopen()."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 13 "Using EFI System Partition at /boot/efi."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 14 "Directory "/boot" is not the root of the file system."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 15 "Didn't find an XBOOTLDR partition, using the ESP as $BOOT."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:2 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 16 "DEBUG: root_snapshot: 1"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 17 "DEBUG: esp_root: /boot/efi"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 18 "DEBUG: boot_root: /boot/efi"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 19 "DEBUG: esp_dst: /EFI/systemd"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 20 "Checking if the bootloader is installed"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 21 "DEBUG: Bootloader version 260.1+suse.7.g1e45daa2fb"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 22 "Found container virtualization none."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 23 "No virtualization found in DMI vendor table."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 24 "DMI BIOS Extension table does not indicate virtualization."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:2 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 25 "UML virtualization not found in /proc/cpuinfo."
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 26 "Virtualization XEN not found, /proc/xen does not exist"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 27 "No virtualization found in CPUID"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 28 "This platform does not support /proc/device-tree"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 29 "This platform does not support /proc/sysinfo"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 30 "Found VM virtualization none"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:6 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 31 "Loading config file /etc/default/sdbootutil"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 32 "DEBUG: /etc/default/sdbootutil"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 33 "# Default sdbootutil configuration file generated automatically"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 34 ""
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 35 "# List of PCRs.  For VMs PCRs 0 and 2 are dropped"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 36 "FDE_SEAL_PCR_LIST="0,2,4,7,9""
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 37 ""
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 38 "# Parameter used in the cmdline to find the root (device, [part]uuid, [part]label)"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 39 "# For encrypted devices it is forced "device""
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 40 "ROOTFS="device""
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 41 ""
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 42 "# Percentage (%) of free space in the ESP that sdbootutil should guarantee"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 43 "# Default values is 10%"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 44 "ESP_FREE_SPACE="10""
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:12 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 45 "Updating bootloader"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 46 "Checking if bootloader needs update"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 47 "DEBUG: Bootloader version 260.1+suse.7.g1e45daa2fb"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 48 "Deployed version 260.1+suse.7.g1e45daa2fb"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 49 "DEBUG: Bootloader version 260.1+suse.7.g1e45daa2fb"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 50 "System version 260.1+suse.7.g1e45daa2fb"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(addLine):394 Adding Line 1 "260.1+suse.7.g1e45daa2fb == 260.1+suse.7.g1e45daa2fb"
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:false
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:2 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:2 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
Tue Jun  9 09:43:50 2026 <1> SystemCmd.cc(getUntilEOF):358 pid:14552 added lines:1 stderr:true
.
.
Tue Jun  9 09:44:12 2026 <1> SystemCmd.cc(execute):180 stopwatch 21.943143s for "/usr/lib/snapper/plugins/10-sdbootutil.snapper create-snapshot-post / btrfs 15"
Tue Jun  9 09:44:12 2026 <1> SystemCmd.cc(execute):194 system() Returns:0
Tue Jun  9 09:44:12 2026 <1> PluginsImpl.cc(run_scripts):69 result of /usr/lib/snapper/plugins/10-sdbootutil.snapper create-snapshot-post / btrfs 15
Tue Jun  9 09:44:12 2026 <1> PluginsImpl.cc(run_scripts):72 stdout: 260.1+suse.7.g1e45daa2fb == 260.1+suse.7.g1e45daa2fb

Then from sdbootutil.log looks like it takes time to generate tpm2 predictions:

+ 2026-06-09 09:43:54 sdbootutil:3207:generate_tpm2_predictions_pcrlock: local final_pcrs
++ 2026-06-09 09:43:54 sdbootutil:3208:generate_tpm2_predictions_pcrlock: get_final_pcrs 0,2,4,7,9
++ 2026-06-09 09:43:54 sdbootutil:3020:get_final_pcrs: local pcrs=0,2,4,7,9
. 
.
+ 2026-06-09 09:44:02 sdbootutil:3208:generate_tpm2_predictions_pcrlock: final_pcrs=0,2,4,7,9
+ 2026-06-09 09:44:02 sdbootutil:3210:generate_tpm2_predictions_pcrlock: local output
.
+ 2026-06-09 09:44:12 sdbootutil:3211:generate_tpm2_predictions_pcrlock: output=

I have omitted some logs but I can’t spot any obvious errors.
Are these timings normal? Is there a way to make it faster, without disabling encryption and snapshots?

Hello (again) @vasman34,

Since we already discussed this issue on Reddit, here’s my follow-up:

I checked the output of snapper.log on my machine as well and, as expected, the GRUB snapper plugin created the snapshots almost instantly.

But I’m not equipped to answer as to whether this is related to file system encryption.

Wed Jun 10 21:45:47 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002831s for "/usr/lib/snapper/plugins/00-grub create-snapshot-pre / btrfs 14"
Wed Jun 10 21:45:48 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.003024s for "/usr/lib/snapper/plugins/00-grub create-snapshot / btrfs 14"
Wed Jun 10 21:45:48 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.196994s for "/usr/lib/snapper/plugins/00-grub create-snapshot-post / btrfs 14"
Wed Jun 10 21:50:43 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002493s for "/usr/lib/snapper/plugins/00-grub create-snapshot-pre / btrfs 15"
Wed Jun 10 21:50:43 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.003032s for "/usr/lib/snapper/plugins/00-grub create-snapshot / btrfs 15"
Wed Jun 10 21:50:43 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.207509s for "/usr/lib/snapper/plugins/00-grub create-snapshot-post / btrfs 15"
Wed Jun 10 21:51:16 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002733s for "/usr/lib/snapper/plugins/00-grub create-snapshot-pre / btrfs 16"
Wed Jun 10 21:51:16 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.003241s for "/usr/lib/snapper/plugins/00-grub create-snapshot / btrfs 16"
Wed Jun 10 21:51:16 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.218899s for "/usr/lib/snapper/plugins/00-grub create-snapshot-post / btrfs 16"
Wed Jun 10 21:51:17 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002466s for "/usr/lib/snapper/plugins/00-grub create-snapshot-pre / btrfs 17"
Wed Jun 10 21:51:17 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002845s for "/usr/lib/snapper/plugins/00-grub create-snapshot / btrfs 17"
Wed Jun 10 21:51:17 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.226053s for "/usr/lib/snapper/plugins/00-grub create-snapshot-post / btrfs 17"
Wed Jun 10 21:57:35 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.003019s for "/usr/lib/snapper/plugins/00-grub create-snapshot-pre / btrfs 18"
Wed Jun 10 21:57:35 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002721s for "/usr/lib/snapper/plugins/00-grub create-snapshot / btrfs 18"
Wed Jun 10 21:57:35 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.089932s for "/usr/lib/snapper/plugins/00-grub create-snapshot-post / btrfs 18"
Wed Jun 10 21:57:42 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002664s for "/usr/lib/snapper/plugins/00-grub create-snapshot-pre / btrfs 19"
Wed Jun 10 21:57:42 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.002682s for "/usr/lib/snapper/plugins/00-grub create-snapshot / btrfs 19"
Wed Jun 10 21:57:42 2026 <1> SystemCmd.cc(execute):180 stopwatch 0.101273s for "/usr/lib/snapper/plugins/00-grub create-snapshot-post / btrfs 19"

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