You are not logged in.
Hi. I'm having a issue with my system mounted as read-only after restoring from btrfs snapshot using Snapper rollback and now I can't do anything as root like install packages. I installed a package and wanted to revert the change so I did.
sudo snapper --ambit classic rollback 89I have Grub-Btrfs installed using the AUR package snap-pac-grub. I booted into a snapshot using the grub menu.
Here is my snapper config
# subvolume to snapshot
SUBVOLUME="/"
# filesystem type
FSTYPE="btrfs"
# btrfs qgroup for space aware cleanup algorithms
QGROUP=""
# fraction or absolute size of the filesystems space the snapshots may use
SPACE_LIMIT="0.5"
# fraction or absolute size of the filesystems space that should be free
FREE_LIMIT="0.2"
# users and groups allowed to work with config
ALLOW_USERS="dean"
ALLOW_GROUPS=""
# sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
# directory
SYNC_ACL="no"
# start comparing pre- and post-snapshot in background after creating
# post-snapshot
BACKGROUND_COMPARISON="yes"
# run daily number cleanup
NUMBER_CLEANUP="yes"
# limit for number cleanup
NUMBER_MIN_AGE="1800"
NUMBER_LIMIT="50"
NUMBER_LIMIT_IMPORTANT="10"
# create hourly snapshots
TIMELINE_CREATE="yes"
# cleanup hourly snapshots after some time
TIMELINE_CLEANUP="yes"
# limits for timeline cleanup
TIMELINE_MIN_AGE="1800"
TIMELINE_LIMIT_HOURLY="5"
TIMELINE_LIMIT_DAILY="7"
TIMELINE_LIMIT_WEEKLY="3"
TIMELINE_LIMIT_MONTHLY="0"
TIMELINE_LIMIT_YEARLY="0"
# cleanup empty pre-post-pairs
EMPTY_PRE_POST_CLEANUP="yes"
# limits for empty pre-post-pair cleanup
EMPTY_PRE_POST_MIN_AGE="1800"Here is the output of snapper ls
# | Type | Pre # | Date | User | Cleanup | Description | Userdata
-----+--------+-------+---------------------------------+------+----------+--------------------------------------------------------------------------+--------------
0 | single | | | root | | current |
10 | single | | Sat 11 Jun 2022 07:00:43 PM PDT | root | timeline | timeline |
17 | single | | Sun 12 Jun 2022 12:00:29 AM PDT | root | timeline | timeline |
30 | pre | | Sun 12 Jun 2022 12:11:48 PM PDT | root | number | pacman -Syu |
31 | post | 30 | Sun 12 Jun 2022 12:11:48 PM PDT | root | number | ffmpeg kbd libass smbclient svt-av1 zimg |
32 | pre | | Sun 12 Jun 2022 12:21:55 PM PDT | root | number | pacman -S firewalld ipset ebtables |
33 | post | 32 | Sun 12 Jun 2022 12:21:56 PM PDT | root | number | firewalld ipset iptables iptables-nft nftables |
34 | pre | | Sun 12 Jun 2022 12:26:24 PM PDT | root | number | pacman -S man-db man-pages texinfo |
35 | post | 34 | Sun 12 Jun 2022 12:26:24 PM PDT | root | number | libpipeline man-db man-pages texinfo |
39 | pre | | Sun 12 Jun 2022 03:08:52 PM PDT | root | number | pacman -S kwrite kate -y |
40 | post | 39 | Sun 12 Jun 2022 03:08:52 PM PDT | root | number | kate kwrite |
42 | pre | | Sun 12 Jun 2022 04:09:14 PM PDT | root | number | pacman -Syu mlocate cronie |
43 | post | 42 | Sun 12 Jun 2022 04:09:14 PM PDT | root | number | cronie mlocate |
47 | pre | | Sun 12 Jun 2022 06:29:54 PM PDT | root | number | pacman -Sy i2c-tools |
48 | post | 47 | Sun 12 Jun 2022 06:29:54 PM PDT | root | number | i2c-tools |
58 | single | | Mon 13 Jun 2022 12:00:05 AM PDT | root | timeline | timeline |
76 | single | | Mon 13 Jun 2022 12:12:46 PM PDT | root | timeline | timeline |
77 | single | | Mon 13 Jun 2022 01:00:23 PM PDT | root | timeline | timeline |
79 | pre | | Mon 13 Jun 2022 01:14:16 PM PDT | root | number | pacman -Syu |
80 | post | 79 | Mon 13 Jun 2022 01:14:16 PM PDT | root | number | python-more-itertools smbclient |
81 | pre | | Mon 13 Jun 2022 01:16:21 PM PDT | root | number | pacman -S wine-staging giflib lib32-giflib libpng lib32-libpng libldap l |
82 | post | 81 | Mon 13 Jun 2022 01:16:25 PM PDT | root | number | alsa-lib alsa-plugins cabextract enchant faudio giflib gnome-desktop gno |
83 | pre | | Mon 13 Jun 2022 01:18:09 PM PDT | root | number | pacman -S steam -y |
84 | post | 83 | Mon 13 Jun 2022 01:18:09 PM PDT | root | number | lib32-libxss lib32-nspr lib32-nss lsb-release lsof steam usbutils zenity |
85 | pre | | Mon 13 Jun 2022 01:36:04 PM PDT | root | number | pacman -S python-pip |
86 | post | 85 | Mon 13 Jun 2022 01:36:04 PM PDT | root | number | python-cachecontrol python-cffi python-colorama python-contextlib2 pytho |
87 | single | | Mon 13 Jun 2022 02:00:07 PM PDT | root | timeline | timeline |
89- | single | | Mon 13 Jun 2022 03:00:23 PM PDT | root | timeline | timeline |
90 | pre | | Mon 13 Jun 2022 03:01:01 PM PDT | root | number | pacman --sync -- community/gumbo-parser |
91 | post | 90 | Mon 13 Jun 2022 03:01:01 PM PDT | root | number | gumbo-parser |
93 | pre | | Mon 13 Jun 2022 03:01:14 PM PDT | root | number | pacman --upgrade --noconfirm -- /home/dean/.cache/paru/clone/httpdirfs/h |
94 | post | 93 | Mon 13 Jun 2022 03:01:14 PM PDT | root | number | httpdirfs |
95 | pre | | Mon 13 Jun 2022 03:03:35 PM PDT | root | number | pacman --upgrade --noconfirm -- /home/dean/.cache/paru/clone/ttf-ms-win1 |
96 | post | 95 | Mon 13 Jun 2022 03:03:36 PM PDT | root | number | ttf-ms-win11-auto |
97 | single | | Mon 13 Jun 2022 03:29:34 PM PDT | dean | number | rollback backup | important=yes
98 | single | | Mon 13 Jun 2022 03:29:34 PM PDT | dean | | writable copy of #89 |
99 | single | | Mon 13 Jun 2022 03:29:58 PM PDT | root | number | rollback backup | important=yes
100 | single | | Mon 13 Jun 2022 03:29:58 PM PDT | root | number | writable copy of #89 |
101 | single | | Mon 13 Jun 2022 03:31:36 PM PDT | root | number | rollback backup of #100 | important=yes
102 | single | | Mon 13 Jun 2022 03:31:36 PM PDT | root | number | writable copy of #89 |
105 | pre | | Mon 13 Jun 2022 03:35:42 PM PDT | root | number | pacman --remove -s -c -n -- ttf-ms-win11-auto |
106 | post | 105 | Mon 13 Jun 2022 03:35:42 PM PDT | root | number | ttf-ms-win11-auto |
107 | pre | | Mon 13 Jun 2022 03:39:40 PM PDT | root | number | /usr/bin/pacman -U /home/dean/ttf-ms-win11-auto/ttf-ms-win11-auto-10.0.2 |
108 | post | 107 | Mon 13 Jun 2022 03:39:41 PM PDT | root | number | ttf-ms-win11-auto ttf-ms-win11-auto-japanese ttf-ms-win11-auto-korean tt |
109 | single | | Mon 13 Jun 2022 03:46:14 PM PDT | root | number | rollback backup of #102 | important=yes
110 | single | | Mon 13 Jun 2022 03:46:14 PM PDT | root | number | writable copy of #89 |
111 | single | | Mon 13 Jun 2022 03:59:37 PM PDT | root | number | rollback backup of #110 | important=yes
112 | single | | Mon 13 Jun 2022 03:59:37 PM PDT | root | number | writable copy of #89 |
113 | single | | Mon 13 Jun 2022 04:19:42 PM PDT | root | number | rollback backup of #112 | important=yes
114 | single | | Mon 13 Jun 2022 04:19:42 PM PDT | root | number | writable copy of #89 |
115 | single | | Mon 13 Jun 2022 04:31:40 PM PDT | root | number | rollback backup of #114 | important=yes
116 | single | | Mon 13 Jun 2022 04:31:40 PM PDT | root | number | writable copy of #110 |
117 | single | | Mon 13 Jun 2022 04:35:42 PM PDT | root | number | rollback backup of #116 | important=yes
118 | single | | Mon 13 Jun 2022 04:35:42 PM PDT | root | number | writable copy of #89 |
119 | single | | Mon 13 Jun 2022 04:39:28 PM PDT | root | number | rollback backup of #118 | important=yes
120 | single | | Mon 13 Jun 2022 04:39:28 PM PDT | root | number | writable copy of #110 |
121 | single | | Mon 13 Jun 2022 04:43:20 PM PDT | root | number | rollback backup of #120 | important=yes
122+ | single | | Mon 13 Jun 2022 04:43:20 PM PDT | root | | writable copy of #89 |
123 | single | | Mon 13 Jun 2022 05:00:39 PM PDT | root | timeline | timeline |
124 | single | | Mon 13 Jun 2022 06:00:32 PM PDT | root | timeline | timeline |
125 | single | | Mon 13 Jun 2022 06:01:01 PM PDT | root | timeline | timeline |
126 | single | | Mon 13 Jun 2022 07:58:19 PM PDT | root | timeline | timeline |
127 | single | | Mon 13 Jun 2022 08:00:41 PM PDT | root | timeline | timeline |
128 | single | | Mon 13 Jun 2022 08:01:01 PM PDT | root | timeline | timeline |
129 | single | | Mon 13 Jun 2022 09:00:02 PM PDT | root | timeline | timeline |
130 | single | | Mon 13 Jun 2022 09:01:01 PM PDT | root | timeline | timeline |Also, here's my /etc/default/grub
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet acpi_enforce_resources=lax"
GRUB_CMDLINE_LINUX=""
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y
# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true
# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y
# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
#GRUB_DISABLE_OS_PROBER=falseHere's my subvolumes
gen 4111 top level 5 path @
ID 257 gen 4318 top level 5 path @var
ID 258 gen 4274 top level 5 path @tmp
ID 259 gen 4318 top level 5 path @home
ID 260 gen 4274 top level 5 path @snapshots
ID 261 gen 19 top level 257 path @var/lib/portables
ID 262 gen 20 top level 257 path @var/lib/machines
ID 273 gen 150 top level 260 path @snapshots/10/snapshot
ID 280 gen 696 top level 260 path @snapshots/17/snapshot
ID 293 gen 1512 top level 260 path @snapshots/30/snapshot
ID 294 gen 1514 top level 260 path @snapshots/31/snapshot
ID 295 gen 1532 top level 260 path @snapshots/32/snapshot
ID 296 gen 1533 top level 260 path @snapshots/33/snapshot
ID 297 gen 1543 top level 260 path @snapshots/34/snapshot
ID 298 gen 1544 top level 260 path @snapshots/35/snapshot
ID 302 gen 1784 top level 260 path @snapshots/39/snapshot
ID 303 gen 1785 top level 260 path @snapshots/40/snapshot
ID 305 gen 1867 top level 260 path @snapshots/42/snapshot
ID 306 gen 1868 top level 260 path @snapshots/43/snapshot
ID 310 gen 2029 top level 260 path @snapshots/47/snapshot
ID 311 gen 2030 top level 260 path @snapshots/48/snapshot
ID 322 gen 2634 top level 260 path @snapshots/58/snapshot
ID 340 gen 3572 top level 260 path @snapshots/76/snapshot
ID 341 gen 3648 top level 260 path @snapshots/77/snapshot
ID 343 gen 3675 top level 260 path @snapshots/79/snapshot
ID 344 gen 3676 top level 260 path @snapshots/80/snapshot
ID 345 gen 3680 top level 260 path @snapshots/81/snapshot
ID 346 gen 3682 top level 260 path @snapshots/82/snapshot
ID 347 gen 3687 top level 260 path @snapshots/83/snapshot
ID 348 gen 3688 top level 260 path @snapshots/84/snapshot
ID 349 gen 3725 top level 260 path @snapshots/85/snapshot
ID 350 gen 3726 top level 260 path @snapshots/86/snapshot
ID 351 gen 3773 top level 260 path @snapshots/87/snapshot
ID 353 gen 4273 top level 260 path @snapshots/89/snapshot
ID 354 gen 3886 top level 260 path @snapshots/90/snapshot
ID 355 gen 3887 top level 260 path @snapshots/91/snapshot
ID 357 gen 3890 top level 260 path @snapshots/93/snapshot
ID 358 gen 3891 top level 260 path @snapshots/94/snapshot
ID 359 gen 3897 top level 260 path @snapshots/95/snapshot
ID 360 gen 3898 top level 260 path @snapshots/96/snapshot
ID 361 gen 3942 top level 260 path @snapshots/97/snapshot
ID 362 gen 3943 top level 260 path @snapshots/98/snapshot
ID 363 gen 3944 top level 260 path @snapshots/99/snapshot
ID 364 gen 3945 top level 260 path @snapshots/100/snapshot
ID 365 gen 3952 top level 260 path @snapshots/101/snapshot
ID 366 gen 3953 top level 260 path @snapshots/102/snapshot
ID 369 gen 3968 top level 260 path @snapshots/105/snapshot
ID 370 gen 3969 top level 260 path @snapshots/106/snapshot
ID 371 gen 3978 top level 260 path @snapshots/107/snapshot
ID 372 gen 3979 top level 260 path @snapshots/108/snapshot
ID 373 gen 3990 top level 260 path @snapshots/109/snapshot
ID 374 gen 4063 top level 260 path @snapshots/110/snapshot
ID 375 gen 4015 top level 260 path @snapshots/111/snapshot
ID 376 gen 4020 top level 260 path @snapshots/112/snapshot
ID 377 gen 4026 top level 260 path @snapshots/113/snapshot
ID 378 gen 4041 top level 260 path @snapshots/114/snapshot
ID 379 gen 4041 top level 260 path @snapshots/115/snapshot
ID 380 gen 4048 top level 260 path @snapshots/116/snapshot
ID 381 gen 4052 top level 260 path @snapshots/117/snapshot
ID 382 gen 4053 top level 260 path @snapshots/118/snapshot
ID 383 gen 4062 top level 260 path @snapshots/119/snapshot
ID 384 gen 4063 top level 260 path @snapshots/120/snapshot
ID 385 gen 4073 top level 260 path @snapshots/121/snapshot
ID 386 gen 4074 top level 260 path @snapshots/122/snapshot
ID 387 gen 4106 top level 260 path @snapshots/123/snapshot
ID 389 gen 4159 top level 260 path @snapshots/124/snapshot
ID 390 gen 4160 top level 260 path @snapshots/125/snapshot
ID 391 gen 4198 top level 260 path @snapshots/126/snapshot
ID 392 gen 4202 top level 260 path @snapshots/127/snapshot
ID 393 gen 4203 top level 260 path @snapshots/128/snapshot
ID 394 gen 4271 top level 260 path @snapshots/129/snapshot
ID 395 gen 4273 top level 260 path @snapshots/130/snapshotLastly here's my /etc/default/grub-btrfs/config
#!/usr/bin/env bash
# Disable grub-btrfs.
# Default: "false"
#GRUB_BTRFS_DISABLE="true"
# Name appearing in the Grub menu.
# Default: "Use distribution information from /etc/os-release."
#GRUB_BTRFS_SUBMENUNAME="Arch Linux snapshots"
# Custom title.
# Shows/Hides "date" "snapshot" "type" "description" in the Grub menu, custom order available.
# Default: ("date" "snapshot" "type" "description")
#GRUB_BTRFS_TITLE_FORMAT=("date" "snapshot" "type" "description")
# Limit the number of snapshots populated in the GRUB menu.
# Default: "50"
#GRUB_BTRFS_LIMIT="50"
# Sort the found subvolumes by "ogeneration" or "generation" or "path" or "rootid".
# # See Sorting section to https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-subvolume#SUBCOMMAND
# "-rootid" means list snapshot by new ones first.
# Default: "-rootid"
#GRUB_BTRFS_SUBVOLUME_SORT="+ogen,-gen,path,rootid"
# Show snapshots found during run "grub-mkconfig"
# Default: "true"
#GRUB_BTRFS_SHOW_SNAPSHOTS_FOUND="false"
# Show Total of snapshots found during run "grub-mkconfig"
# Default: "true"
#GRUB_BTRFS_SHOW_TOTAL_SNAPSHOTS_FOUND="true"
# By default, "grub-btrfs" automatically detects most existing kernels.
# If you have one or more custom kernels, you can add them here.
# Default: ("")
#GRUB_BTRFS_NKERNEL=("kernel-custom" "vmlinux-custom")
# By default, "grub-btrfs" automatically detects most existing initramfs.
# If you have one or more custom initramfs, you can add them here.
# Default: ("")
#GRUB_BTRFS_NINIT=("initramfs-custom.img" "initrd-custom.img" "otherinit-custom.gz")
# By default, "grub-btrfs" automatically detects most existing microcodes.
# If you have one or more custom microcodes, you can add them here.
# Default: ("")
#GRUB_BTRFS_CUSTOM_MICROCODE=("custom-ucode.img" "custom-uc.img "custom_ucode.cpio")
# Comma seperated mount options to be used when booting a snapshot.
# They can be defined here as well as in the "/" line inside the respective snapshots'
# "/etc/fstab" files. Mount options found in both places are combined, and this variable
# takes priority over `fstab` entries.
# NB: Do NOT include "subvol=..." or "subvolid=..." here.
# Default: ""
#GRUB_BTRFS_ROOTFLAGS="space_cache,commit=10,norecovery"
# Ignore specific path during run "grub-mkconfig".
# Only exact paths are ignored.
# e.g : if `specific path` = @, only `@` snapshot will be ignored.
# Default: ("@")
GRUB_BTRFS_IGNORE_SPECIFIC_PATH=("@")
# Ignore prefix path during run "grub-mkconfig".
# Any path starting with the specified string will be ignored.
# e.g : if `prefix path` = @, all snapshots beginning with "@/..." will be ignored.
# Default: ("var/lib/docker" "@var/lib/docker" "@/var/lib/docker")
GRUB_BTRFS_IGNORE_PREFIX_PATH=("var/lib/docker" "@var/lib/docker" "@/var/lib/docker")
# Ignore specific type/tag of snapshot during run "grub-mkconfig".
# For snapper:
# Type = single, pre, post.
# For Timeshift:
# Tag = boot, ondemand, hourly, daily, weekly, monthly.
# Default: ("")
#GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE=("")
# Ignore specific description of snapshot during run "grub-mkconfig".
# e.g: timeline
# Default: ("")
#GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION=("")
# By default "grub-btrfs" automatically detects your boot partition,
# either located at the system root or on a separate partition or in a subvolume,
# Change to "true" if your boot partition isn't detected as separate.
# Default: "false"
#GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION="true"
# Location of the folder containing the "grub.cfg" file.
# Use by grub-btrfs to save the file "grub-btrfs.cfg".
# Might be grub2 on some systems.
# For example, on Fedora with EFI : "/boot/efi/EFI/fedora"
# Default: "/boot/grub"
#GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"
# Location of kernels/initramfs/microcode.
# Use by "grub-btrfs" to detect the boot partition and the location of kernels/initrafms/microcodes.
# Default: "/boot"
#GRUB_BTRFS_BOOT_DIRNAME="/boot"
# Name/path of grub-mkconfig command, use by "grub-btrfs.service"
# Might be 'grub2-mkconfig' on some systems (Fedora ...)
# Default paths are /sbin:/bin:/usr/sbin:/usr/bin,
# if your path is missing, report it on the upstream project.
# For example, on Fedora : "/sbin/grub2-mkconfig"
# You can use only name or full path.
# Default: grub-mkconfig
#GRUB_BTRFS_MKCONFIG=/usr/bin/grub2-mkconfig
# Name of grub-script-check command, use by "grub-btrfs"
# Might be 'grub2-script-check' on some systems (Fedora ...)
# For example, on Fedora : "grub2-script-check"
# Default: grub-script-check
#GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check
# Path of grub-mkconfig_lib file, use by "grub-btrfs"
# Might be '/usr/share/grub2/grub-mkconfig_lib' on some systems (Opensuse ...)
# Default: /usr/share/grub/grub-mkconfig_lib
#GRUB_BTRFS_MKCONFIG_LIB=/usr/share/grub2/grub-mkconfig_lib
# Password protection management for submenu,snapshots
# Refer to the Grub documentation https://www.gnu.org/software/grub/manual/grub/grub.html#Authentication-and-authorisation
# and this comment https://github.com/Antynea/grub-btrfs/issues/95#issuecomment-682295660
#
# Add authorized usernames separate by comma (foo,bar)
# When Grub's password protection is enabled, the superuser is authorized by default, it isn't necessary to add it
# Default: ""
#GRUB_BTRFS_PROTECTION_AUTHORIZED_USERS="foo,bar"
#
# Disable authentication support for submenu of Grub-btrfs only (--unrestricted)
# doesn't work if GRUB_BTRFS_PROTECTION_AUTHORIZED_USERS isn't empty
# Default: "false"
#GRUB_BTRFS_DISABLE_PROTECTION_SUBMENU="true"I tried looking through the wiki or google search but nothing. I'm at my wits end with this and want my system to be read-write again. I've had this problem before but I didn't have this problem when using Fedora.
I think this might be a bug with some program. Please help me.
Last edited by Archmaniac (2022-06-14 04:45:56)
Offline