Can't use snapshots - Failed to switch root

Dear Garudians,

I updated my PC yesterday, and everything went fine - at least I thought so. Turns out that that wasn’t the case at all. Brave deleted every single one of my passwords. After a long search, the only possible solution I found was rolling back the system. So I wanted to try that. However, whenever I try to use a snapshot with the Zen Kernel, I get a “Failed to switch root” error. When I try to use the backup lts kernel I have installed, it gets stuck on “A start job is running on /dev/disk/by-uuid/xxxx”

At this point, I simply don’t know what to do anymore. The full error log is:

x initrd-switch-root.service - Switch Root
    Loaded: loaded (/usr/lib/systemd/system/intrd-switch-root.service; static)
    Active: failed (Result: exit-code) since Wed 2025-07-09 18:51:55 UTC; 3min 4s ago
    Invocation: 684f605eb3b741f482b0a10d42540ddc
    Process: 694 ExecStart=systemctl --no-block switch-root (code=exited, status=1/FAILURE)
    Main PID: 694 (code=exited, status=1/FAILURE)
    Mem peak: 1.5M
    CPU: 4ms

Jul 09 18:51:55 GarudaPC systemd[1]: Starting Switch Root...
Jul 09 18:51:55 GarudaPC @ystemctl[694]: Failed to switch root: Specified switch root path '/sysroot' does not seem to be an OS tree. os-release file is missing
Jul 09 18:51:55 GarudaPC systemd[1]: initrd-switch-root.service: Main process exited, code=exited, status=1/FAILURE
Jul 09 18:51:55 GarudaPC systemd[1]: initrd-switch-root.service: Failed with result 'exit-code'.
Jul 09 18:51:55 GarudaPC systemd[1]: Failed to start Switch Root.
Jul 09 18:51:55 GarudaPC systemd[1]: initrd-switch-root.service: Triggering OnFaulure= dependencies.

Garuda Inxi:

System:
Kernel: 6.15.5-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.1.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=190e7cc2-4318-4f40-8d3a-f5f4b453777f rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0
resume=UUID=7c8380c2-84ce-492e-b61f-aa22976a6b16 loglevel=3
Desktop: KDE Plasma v: 6.4.2 tk: Qt v: N/A info: frameworks v: 6.15.0
wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: Gigabyte model: B650 AORUS ELITE AX v: x.x
serial: <superuser required> uuid: <superuser required> UEFI: American
Megatrends LLC. v: F4 date: 03/22/2023
CPU:
Info: model: AMD Ryzen 7 7700X bits: 64 type: MT MCP arch: Zen 4 gen: 4
level: v4 note: check built: 2022+ process: TSMC n5 (5nm) family: 0x19 (25)
model-id: 0x61 (97) stepping: 2 microcode: 0xA601209
Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2
smt: enabled cache: L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 8 MiB
desc: 8x1024 KiB L3: 32 MiB desc: 1x32 MiB
Speed (MHz): avg: 2989 min/max: 403/5576 boost: enabled scaling:
driver: amd-pstate-epp governor: powersave cores: 1: 2989 2: 2989 3: 2989
4: 2989 5: 2989 6: 2989 7: 2989 8: 2989 9: 2989 10: 2989 11: 2989 12: 2989
13: 2989 14: 2989 15: 2989 16: 2989 bogomips: 143725
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Graphics:
Device-1: NVIDIA GA102 [GeForce RTX 3090] driver: nvidia v: 575.64.03
alternate: nouveau,nvidia_drm non-free: 550-570.xx+ status: current (as of
2025-04; EOL~2026-12-xx) arch: Ampere code: GAxxx process: TSMC n7 (7nm)
built: 2020-2023 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: none
off: DP-4 empty: DP-5,DP-6,HDMI-A-2 bus-ID: 01:00.0 chip-ID: 10de:2204
class-ID: 0300
Device-2: Advanced Micro Devices [AMD/ATI] Raphael vendor: Gigabyte
driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm)
built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: none
empty: DP-1, DP-2, DP-3, HDMI-A-1, Writeback-1 bus-ID: 11:00.0
chip-ID: 1002:164e class-ID: 0300 temp: 37.0 C
Device-3: Logitech StreamCam
driver: hid-generic,snd-usb-audio,usbhid,uvcvideo type: USB rev: 3.2
speed: 5 Gb/s lanes: 1 mode: 3.2 gen-1x1 bus-ID: 4-1:2 chip-ID: 046d:0893
class-ID: 0300 serial: <filter>
Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
compositor: kwin_wayland driver: X: loaded: amdgpu,nvidia
unloaded: modesetting,nouveau alternate: fbdev,nv,vesa dri: radeonsi
gpu: nvidia,nvidia-nvswitch display-ID: 0
Monitor-1: DP-4 model: Dell G2724D serial: <filter> built: 2024 res:
mode: 2560x1440 hz: 165 scale: 125% (1.25) to: 2048x1152 dpi: 109 gamma: 1.2
size: 596x335mm (23.46x13.19") diag: 684mm (26.9") ratio: 16:9 modes:
max: 2560x1440 min: 640x480
API: EGL v: 1.5 hw: drv: nvidia drv: amd radeonsi platforms: device: 0
drv: nvidia device: 1 drv: radeonsi device: 3 drv: swrast gbm: drv: radeonsi
surfaceless: drv: nvidia wayland: drv: nvidia x11: drv: nvidia
inactive: device-2
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 575.64.03
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3090/PCIe/SSE2
memory: 23.44 GiB display-ID: :1.0
API: Vulkan v: 1.4.313 layers: 11 device: 0 type: discrete-gpu
name: NVIDIA GeForce RTX 3090 driver: nvidia v: 575.64.03
device-ID: 10de:2204 surfaces: N/A device: 1 type: integrated-gpu name: AMD
Radeon Graphics (RADV RAPHAEL_MENDOCINO) driver: mesa radv
v: 25.1.5-arch1.1 device-ID: 1002:164e surfaces: N/A device: 2 type: cpu
name: llvmpipe (LLVM 20.1.7 256 bits) driver: mesa llvmpipe
v: 25.1.5-arch1.1 (LLVM 20.1.7) device-ID: 10005:0000 surfaces: N/A
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: NVIDIA GA102 High Definition Audio driver: snd_hda_intel v: kernel
pcie: gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:1aef
class-ID: 0403
Device-2: Advanced Micro Devices [AMD/ATI] Radeon High Definition Audio
[Rembrandt/Strix] driver: snd_hda_intel v: kernel pcie: gen: 4
speed: 16 GT/s lanes: 16 bus-ID: 11:00.1 chip-ID: 1002:1640 class-ID: 0403
Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
vendor: Gigabyte driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 bus-ID: 11:00.6 chip-ID: 1022:15e3 class-ID: 0403
Device-4: Yamaha AG06/AG03 driver: snd-usb-audio type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-2.1:4 chip-ID: 0499:170d
class-ID: 0103
Device-5: Logitech StreamCam
driver: hid-generic,snd-usb-audio,usbhid,uvcvideo type: USB rev: 3.2
speed: 5 Gb/s lanes: 1 mode: 3.2 gen-1x1 bus-ID: 4-1:2 chip-ID: 046d:0893
class-ID: 0300 serial: <filter>
API: ALSA v: k6.15.5-zen1-1-zen status: kernel-api tools: N/A
Server-1: PipeWire v: 1.4.6 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 0c:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp12s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Device-2: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter
driver: mt7921e v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1
bus-ID: 0d:00.0 chip-ID: 14c3:0616 class-ID: 0280
IF: wlp13s0 state: down mac: <filter>
IF-ID-1: virbr0 state: down mac: <filter>
Info: services: NetworkManager, smbd, systemd-timesyncd
Bluetooth:
Device-1: MediaTek Wireless_Device driver: btusb v: 0.8 type: USB rev: 2.1
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-9:7 chip-ID: 0e8d:0616
class-ID: e001 serial: <filter>
Report: btmgmt ID: hci0 rfk-id: 0 state: up address: N/A
Drives:
Local Storage: total: 3.64 TiB used: 2.07 TiB (57.0%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 990 PRO 2TB
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 3B2QJXD7 temp: 35.9 C
scheme: GPT
ID-2: /dev/nvme1n1 maj-min: 259:4 vendor: Samsung model: SSD 980 PRO 2TB
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 5B2QGXA7 temp: 37.9 C
scheme: GPT
Partition:
ID-1: / raw-size: 1.79 TiB size: 1.79 TiB (100.00%) used: 1.43 TiB (80.3%)
fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 616 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 1.79 TiB size: 1.79 TiB (100.00%)
used: 1.43 TiB (80.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 1.79 TiB size: 1.79 TiB (100.00%)
used: 1.43 TiB (80.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 1.79 TiB size: 1.79 TiB (100.00%)
used: 1.43 TiB (80.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: partition size: 33.55 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
ID-2: swap-2 type: zram size: 30.49 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 41.5 C mobo: 34.0 C gpu: amdgpu temp: 35.0 C
Fan Speeds (rpm): N/A
Info:
Memory: total: 32 GiB note: est. available: 30.49 GiB used: 4.53 GiB (14.9%)
Processes: 403 Power: uptime: 6m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 12.09 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
tool: systemctl
Packages: 1730 pm: pacman pkgs: 1681 libs: 454 tools: octopi,paru
pm: flatpak pkgs: 49 Compilers: gcc: 15.1.1 Shell: garuda-inxi default: Bash
v: 5.2.37 running-in: konsole inxi: 3.3.38
Garuda (2.7.3-1):
System install date:     2023-09-25
Last full system update: 2025-07-08
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-dkms
Windows dual boot:       No/Undetected
Failed units:

I really hope someone here can help me with this problem!

Have you tried restoring a snapshot with Snapper or via the Snapper tab on Btrfs Assistant? I’m assuming from your post that you’re attempting this via Grub?

Thanks for the answer!
Nope. Didn’t even know about that option. So I just have to click the restore button in the “browse/restore” tab and it will do a restore? Is that just as safe and easy as through the garuda start menu that comes up when you boot?

I recommend BitWarden, it’s very convenient and you can have your passwords synced between multiple browsers on your pc and also on your smartphone.

For your current issue, Snapper should work. I’ve restored a few times from it and it worked fine.

If you reach point where your system doesn’t boot, and you use btrfs, do the following:

  1. Boot from live usb.
  2. Try to mount your partition.
  3. If you use encryption, open the device with cryptsetup open
  4. If you see an error about superblock or open_ctree failed: -5, proceed to the next step.
  5. From the terminal, run btrfs rescue zero-log /dev/nvme0n1 or /dev/sdaX or /dev/mapper/your_crypt_open_device

Not sure why, but I’ve had btrfs fail multiple times on me, especially after I had to restart with Alt+PrtScr + REISUB

1 Like

I recently had to restore a snapshot this way. Did it via Btrfs Assistant > Snapper > Browse/Restore - select the entry, then click on the Restore button. I’ve found it’s much easier and smooth when doing it this way. When restoring via Grub, it boots into the snapshot in RO mode first, which I’ve found complicates things for me - but it’s a good way to confirm that’s the snapshot you want to restore by loading it up.

1 Like

Thanks a lot for the answer! Alright, with this much info, I’ll try to go this route. Hope everything will work out. Still odd that I can’t just use the normal way. Would love to know wha the problem is there. :thinking:

As for Bitwarden: It always seemed great, but I never really wanted to use it because of it’s mandatory cloud component. Was thinking about going for Vaultwarden and hosting it on my own because of that, to be more secure, but… Yeah, I’m not tech-savy enough for that. Planned to switch to KeePassXC, heared that that should be a nice alternative?

Ok. It working fine for you gives me hope. Will backup a few things nonetheless, just to be safe.

To the both of you: Really, thanks for helping here!

2 Likes

Alright. So I did try the update and everything went unbelievably smoothly. However, the password situation was not resolved. At first, it didn’t even let me open Brave on the old snapshot. After waiting a while and trying again, it did let me open the browser. However, they completely deleted everything and created a brand new profile - which transferred to even post snapshot version.

Luckily I had a backup, so I was at least able to save my profiles, bookmarks, history and addons. The password problematic still stands however. I don’t know why Brave didn’t want to open at first.

1 Like

Btw, did brave save the data on root or just on home?
Snapshot did not restore the home files by default.

On live ISO just use chroot in Welcome/Rani.

In terminal use

garuda-chroot -a
2 Likes

Hi

I found few Topics for the same issue but it didnt happened to me after a brave update.

i dont know if it helps if you have loaded the snapshot to downgrade brave from …120 to …115 or erlier with sudo downgrade brave-bin .

Like SGS already said if all files was overwritten or corrupted its almost not possible to restore the passwords.

you can check if there is any profiles leftover for some data but password are encrypted so if the token isnt working thats a bad habit. Few people have this issue and cant reproduce it.

For finding your profile path you also can type in Brave Browser brave://version

my password is safed here /home/duke/.config/BraveSoftware/Brave-Browser/Default/

I dont know why it wasnt open after the update mine is working. You did it correctly with Backups.

Thanks for the message! To my knowledge, Brave saved the passwords in the home directory. I am not sure why rolling back the system with a snapshot alledgedly helped some people. I guess maybe then it had the old encryption key? Not sure. But does that mean the snapshot actually saved the home files and garuda-chroot -a can restore them? If so, how should I proceed after typing in that command? Should everything just work fine? Better be safe here, don’t want to completely trash my system. I’m not that tech savy, after all^^’

Yup, everything is gone. Passwords saved on other profiles went out the window as well. I’m in the midst of setting up a backup password manager, I really put too much trust in the browser one.

I’m still not sure as to why the restoring of a snapshot doesn’t work via the Garuda interface. Hope that there isn’t anything broken on my PC.

And that’s a good thing.

If Brave deletes their own data in the home folder, you must complain to Brave.

I’m not entirely sure what you with this mean.^^’

And I’m still not sure what garuda-chroot -a does and just asked, as I fear that things might get complicated if someone who has no idea just inputs a random command.

From what I know, the password files from brave are still there, just that the encryption keys changed/are not recognized.

However, I never blamed any of that on Garuda Linux. It is obviously not something you guys are at fault for. For the Garuda Linux part, I was only wondering why I can’t restore a snapshot through the normal startup interface.

hi,

may that helps you for what it is :wink: