Instantáneas de Btrfs
Introducción
Sección titulada «Introducción»¿Qué es una instantánea de Btrfs?
Sección titulada «¿Qué es una instantánea de Btrfs?»Empecemos por lo básico:
Las instantáneas de Btrfs provienen de la característica de los subvolúmenes. ¿Qué es un subvolumen? te preguntarás. Piensa en un subvolumen como un sistema de archivos separado dentro del sistema de archivos Btrfs, lo que te permite segmentar tus datos en diferentes partes. Es por eso que, por ejemplo, en CachyOS tenemos diferentes subvolúmenes para:
- Sistema de archivos raíz: (
/) - Directorio raíz: (
/root) - Directorio personal: (
/home) - Directorios de var: (
/var/cache,/var/tmp,/var/log) - Directorio srv: (
/srv)
Al tener diferentes subvolúmenes para estos directorios, podemos gestionarlos de forma independiente, aplicar diferentes configuraciones y, lo más importante, crear instantáneas de ellos.
Aquí es donde nace una instantánea. Una instantánea es esencialmente una copia de solo lectura o de lectura-escritura (por defecto) de un subvolumen en un momento específico. Esto significa que puedes capturar el estado de tu sistema de archivos, incluyendo todos los archivos y directorios, en ese instante.
Por lo tanto, las instantáneas se convierten en una referencia en un punto en el tiempo, lo que significa que cuando el archivo de destino diverge de los datos de la instantánea, esta mantendrá el archivo original y el destino creará un nuevo archivo con los cambios, mientras que la instantánea permanecerá igual para siempre. Por eso, algunos usuarios se refieren a una instantánea como “datos congelados en el tiempo”.
Imagina que tomas una fotografía de tu sistema de archivos en un momento específico, y siempre puedes volver a esa fotografía cuando lo necesites.
Una de las ventajas clave de las instantáneas es que son muy eficientes en cuanto a espacio, ya que son solo una referencia a los datos originales hasta que se realizan cambios.
Pero aquí es donde una instantánea se diferencia de una copia de seguridad tradicional. Digamos que tu disco falla. Si tuvieras una copia de seguridad tradicional, podrías restaurar tus datos desde esa copia. Sin embargo, si solo tuvieras instantáneas en el disco dañado, perderías el acceso a esas instantáneas, ya que se almacenan en el mismo disco.
Casos de recuperación donde las instantáneas son útiles y no útiles
Sección titulada «Casos de recuperación donde las instantáneas son útiles y no útiles»Son útiles para recuperarse de:
- Rupturas o corrupción después de actualizaciones del sistema.
- Malas configuraciones que impiden que el sistema arranque.
- Eliminaciones o modificaciones accidentales de archivos.
No son útiles para recuperarse de:
- Problemas con el gestor de arranque.
- Fallos de hardware (por ejemplo, discos duros que fallan).
Gestionando instantáneas (GUI y CLI)
Sección titulada «Gestionando instantáneas (GUI y CLI)»Algunas cosas a considerar antes de gestionar las instantáneas. Se aplica tanto a los métodos de CLI como de GUI.
- Se recomienda mantener un máximo de 10 instantáneas. Más allá de eso, las instantáneas se vuelven demasiado antiguas y menos útiles. En el peor de los casos, revertir a una instantánea antigua puede introducir problemas de compatibilidad con versiones más nuevas del software.
- Las instantáneas idealmente están destinadas a ser utilizadas con fines de recuperación. Aunque puedes usarlas para deshacer cambios en archivos sin restaurar la instantánea completa.
- Añade una descripción significativa al crear instantáneas. Esto te ayudará a identificar el propósito de cada instantánea más tarde.
Btrfs Assistant (GUI)
Sección titulada «Btrfs Assistant (GUI)»Antes de continuar, asegúrate de tener btrfsmaintenance instalado para aprovechar las funciones de gestión automática de instantáneas.
Para aquellos que prefieren gestionar Btrfs, instantáneas y más a través de una GUI. Btrfs Assistant es un proyecto increíble para principiantes.
Configuración de Limpieza Automática de Instantáneas
Sección titulada «Configuración de Limpieza Automática de Instantáneas»Vamos a configurar la limpieza automática de instantáneas usando Btrfs Assistant. Esto ayudará a gestionar tus instantáneas de manera efectiva sin intervención manual.
Sigue estos pasos:
-
Inicia Btrfs Assistant abriendo una terminal y ejecutando:
Ventana de terminal btrfs-assistant-launcherAlternativamente:
Ventana de terminal sudo -E btrfs-assistant -
Navega a la pestaña Snapper Settings:

Modifica los ajustes de Retención de Instantáneas de la siguiente manera:
- Asegúrate de que la configuración
rootesté seleccionada - Introduce un valor de
0para Horaria, Diaria, Semanal, Mensual y Anual. - Desmarca
Habilitar instantáneas de línea de tiempo. - Introduce un valor de
10enNúmero. - Añade un ✅ a
Limpieza de Snapper habilitada. - Haz clic en el botón
Guardaren la parte superior derecha y enAplicar cambios de systemden la parte inferior derecha. snapper-cleanup.timer ahora estará habilitado para limpiar automáticamente las instantáneas antiguas según tu configuración.
- Asegúrate de que la configuración
Eliminando Instantáneas usando Btrfs Assistant
Sección titulada «Eliminando Instantáneas usando Btrfs Assistant»-
Abre Btrfs Assistant:
Ventana de terminal btrfs-assistant-launcherAlternativamente:
Ventana de terminal sudo -E btrfs-assistant -
Ve a la pestaña Snapper Settings:

-
Selecciona la(s) instantánea(s) que quieres eliminar de la lista.
-
Haz clic en el botón
Eliminarsituado en la parte superior de la ventana. -
Regenera las entradas de tu gestor de arranque para reflejar los cambios:
systemd-boot
Ventana de terminal sudo sdboot-manage genGRUB
Ventana de terminal sudo grub-mkconfig -o /boot/grub/grub.cfgLimine
Ventana de terminal sudo limine-mkinitcpio
Echa un vistazo a su Wiki Oficial para una visión más profunda sobre lo que se puede hacer.
Snapper (CLI)
Sección titulada «Snapper (CLI)»Ahora que hemos cubierto qué es una instantánea de Btrfs y sus casos de uso, hablemos de cómo gestionarlas usando una herramienta llamada Snapper creada por Arvin Schnell de openSUSE.
CachyOS usa la siguiente configuración de Snapper por defecto:
# subvolume to snapshotSUBVOLUME="/"
# filesystem typeFSTYPE="btrfs"
# btrfs qgroup for space aware cleanup algorithmsQGROUP=""
# fraction or absolute size of the filesystems space the snapshots may useSPACE_LIMIT="0.5"
# fraction or absolute size of the filesystems space that should be freeFREE_LIMIT="0.2"
# users and groups allowed to work with configALLOW_USERS=""ALLOW_GROUPS=""
# sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots# directorySYNC_ACL="no"
# start comparing pre- and post-snapshot in background after creating# post-snapshotBACKGROUND_COMPARISON="yes"
# run daily number cleanupNUMBER_CLEANUP="yes"
# limit for number cleanupNUMBER_MIN_AGE="1800"NUMBER_LIMIT="50"NUMBER_LIMIT_IMPORTANT="15"
# create hourly snapshotsTIMELINE_CREATE="no"
# cleanup hourly snapshots after some timeTIMELINE_CLEANUP="yes"
# limits for timeline cleanupTIMELINE_MIN_AGE="1800"TIMELINE_LIMIT_HOURLY="5"TIMELINE_LIMIT_DAILY="7"TIMELINE_LIMIT_WEEKLY="0"TIMELINE_LIMIT_MONTHLY="0"TIMELINE_LIMIT_YEARLY="0"
# cleanup empty pre-post-pairsEMPTY_PRE_POST_CLEANUP="yes"
# limits for empty pre-post-pair cleanupEMPTY_PRE_POST_MIN_AGE="1800"Aquí hay una lista de los comandos más comunes de Snapper.
Obtener configuración actual:
sudo snapper get-configEjemplo de Salida:
❯ snapper list-configsConfig │ Subvolume───────┼──────────root │ /Listar instantáneas disponibles + detalles:
sudo snapper listEjemplo de Salida:
# │ Type │ Pre # │ Date │ User │ Cleanup │ Description │ Userdata────┼────────┼───────┼──────────────────────────┼──────┼─────────┼──────────────────────────────────────────────────────────────────────────┼─────────0 │ single │ │ │ root │ │ current │715 │ pre │ │ Thu 22 Jan 2026 16:14:07 │ root │ number │ pacman -S -y -u --config /etc/pacman.conf -- │716 │ post │ 715 │ Thu 22 Jan 2026 16:14:25 │ root │ number │ docker-buildx lilv sof-firmware zed │717 │ pre │ │ Sat 24 Jan 2026 11:19:48 │ root │ number │ pacman -S -y -u --config /etc/pacman.conf -- │718 │ post │ 717 │ Sat 24 Jan 2026 11:20:19 │ root │ number │ bpf cachyos-hello cachyos-wallpapers cpupower jdk-openjdk ldb less libev │719 │ pre │ │ Sat 24 Jan 2026 11:20:31 │ root │ number │ pacman -U --config /etc/pacman.conf -- /home/mario/.cache/yay/visual-s │720 │ post │ 719 │ Sat 24 Jan 2026 11:20:36 │ root │ number │ visual-studio-code-bin │721 │ pre │ │ Sat 24 Jan 2026 20:46:40 │ root │ number │ pacman -Syu plasma-login-manager │722 │ post │ 721 │ Sat 24 Jan 2026 20:46:48 │ root │ number │ cmake fastfetch harfbuzz harfbuzz-icu jdk21-openjdk lib32-harfbuzz lib32 │723 │ pre │ │ Sat 24 Jan 2026 20:46:53 │ root │ number │ pacman -R sddm-kcm cachyos-themes-sddm sddm │724 │ post │ 723 │ Sat 24 Jan 2026 20:46:56 │ root │ number │ cachyos-themes-sddm sddm sddm-kcm │725 │ pre │ │ Sun 25 Jan 2026 08:05:05 │ root │ number │ pacman -S -y -u --config /etc/pacman.conf -- │726 │ post │ 725 │ Sun 25 Jan 2026 08:05:11 │ root │ number │ plasma-login-manager │727 │ pre │ │ Sun 25 Jan 2026 15:55:28 │ root │ number │ pacman -S --config /etc/pacman.conf -- cachyos-extra-znver4/caligula │728 │ post │ 727 │ Sun 25 Jan 2026 15:55:30 │ root │ number │ caligula │- Aquí hay un resumen de las columnas:
#: Indica el número de la instantánea que se usa en otros comandos.Type: Indica si la instantánea es una instantánea única o parte de un par pre/post.single: Estas instantáneas no tienen una relación especial con otras instantáneas.pre: Estas instantáneas están destinadas a ser tomadas antes de cualquier tipo de cambio en el sistema (como editar un archivo o instalar un paquete).post: Como su nombre lo indica, estas instantáneas se refieren a las tomadas después de que ha ocurrido un cambio en el sistema. Están vinculadas a su correspondiente instantáneapre.
Pre #: Para instantáneaspost, esta columna indica el número de la instantáneaprecorrespondiente.Date: La fecha y hora en que se creó la instantánea.User: El usuario que creó la instantánea.Cleanup: Indica el algoritmo de limpieza aplicado a la instantánea.- Hay varios algoritmos de limpieza disponibles en Snapper, como
number,timeliney empty-pre-post. En este ejemplo, se utiliza el algoritmonumber, lo que significa que las instantáneas más antiguas se eliminarán según un límite predefinido. - timeline: Las instantáneas se limpian según su antigüedad y frecuencia.
- empty-pre-post: Elimina pares de instantáneas pre/post con diferencias vacías.
- Hay varios algoritmos de limpieza disponibles en Snapper, como
Description: Una breve descripción de la instantánea, que a menudo indica el motivo de su creación.Userdata: Datos adicionales definidos por el usuario asociados con la instantánea. Para más detalles sobre las columnas de salida
Crear una nueva instantánea:
sudo snapper create --type single --description "Descripción de Mi Instantánea"Modificar una instantánea:
sudo snapper modify <opción> <número_de_instantánea>Opciones disponibles:
Options for 'modify' command: --description, -d <description> Description for snapshot. --cleanup-algorithm, -c <algo> Cleanup algorithm for snapshot. --userdata, -u <userdata> Userdata for snapshot. --read-only Set snapshot read-only. --read-write Set snapshot read-write. --default Set snapshot as default snapshot.Ejemplo: Modificando la descripción de la instantánea 729:
sudo snapper modify 729 --description 'Mi Nueva Descripción de Instantánea'Eliminación de instantáneas:
Eliminar una sola instantánea:
sudo snapper delete <número_de_instantánea>Eliminar un rango de instantáneas:
sudo snapper delete 718-721Las instantáneas 718, 719, 720 y 721 serán eliminadas.
Documentación de Snapper
Sección titulada «Documentación de Snapper»Página man del comando oficial de Snapper:
Guía del archivo de configuración de Snapper:
Recomendaciones y Consejos para Limine
Sección titulada «Recomendaciones y Consejos para Limine»Ajustar la configuración de visualización de instantáneas del gestor de arranque Limine
Sección titulada «Ajustar la configuración de visualización de instantáneas del gestor de arranque Limine»- Limita el número de instantáneas que se muestran en el menú del gestor de arranque de Limine para evitar el desorden:
- Crea una copia de seguridad del archivo de configuración de limine-snapper-sync:
Ventana de terminal sudo cp /etc/limine-snapper-sync.conf /etc/limine-snapper-sync.conf.orig - Edita el archivo de configuración de limine-snapper-sync:
Fragmento de salida esperado:
Ventana de terminal sudo nano /etc/limine-snapper-sync.confOpcionalmente, ajusta el formato del nombre de la instantánea:Ventana de terminal ### Max Snapshot Entries### Sets the limit for how many snapshot entries show up in the boot menu.### This depends on the size of your FAT32 boot partition and how many different kernel and module versions you want to keep.### A larger FAT32 boot partition allows more snapshot entries.MAX_SNAPSHOT_ENTRIES=10Ventana de terminal ### Snapshot Name Format### Choose a format for how snapshot entries look in the Limine bootloader:### 0. ID=111 2023-12-20 10:59:59 (default)### 1. 111│2023-12-20 10:59:59### 2. 111 │ 2023-12-20 10:59:59### 3. 2023-12-20 10:59:59│111### 4. 2023-12-20 10:59:59 │ 111### 5. 2023-12-20 10:59:59### 6. 111### 7. 111│snapshot description### 8. 2023-12-20 10:59:59│snapshot description### 9. │snapshot descriptionSNAPSHOT_FORMAT_CHOICE=88es una buena opción ya que muestra la fecha y la hora junto con la descripción de la instantánea. - Guarda el archivo y sal presionando
CTRL+OEnterCTRL+X
Restaurando desde una Instantánea
Sección titulada «Restaurando desde una Instantánea»Limine
- Desde el menú del gestor de arranque de Limine, navega al menú de Instantáneas:

- Selecciona la instantánea y el kernel desde el que quieres restaurar:


- Tu sistema está ahora en
modo de solo lectura. Debería aparecer una notificación emergente indicando que se detectó una instantánea y preguntando si quieres restaurar desde ella:
- Haz clic en
Restaurar ahora. Se abrirá una ventana de terminal con un prompt y pedirá algunas confirmaciones:Ejemplo de Prompt de Restauración Snapshot ID : 2Date : 2026-01-26 11:19:14Description : nc-gitRestore method : replaceConfirm restore of snapshot 2 using the "replace" method?Type [y]es to restore, [l]ist to display all snapshots, or [c]ancel to abort.Your input: yesEnter a description for the "backup" of the subvolume: @Your input: @ - Escribe
yesy opcionalmente añade una descripción para la instantánea de respaldo. - El proceso de restauración comenzará. Una vez completado, escribe
yesuna vez más en el nuevo prompt para reiniciar tu sistema:Ventana de terminal The restore is complete. Please reboot now:Type [y]es to reboot, [n]o or [c]ancel to abort rebooting.Your input: yes
GRUB
-
Desde el menú del gestor de arranque de GRUB. Arranca en la instantánea y el kernel deseados desde los que quieres restaurar.
-
Una vez arrancado. Abre Btrfs Assistant:
Ventana de terminal btrfs-assistant-launcherAlternativamente:
Ventana de terminal sudo -E btrfs-assistant -
Ve a la pestaña Snapper → pestaña “Browse/Restore” y selecciona la instantánea desde la que arrancaste:

-
Haz clic en el botón
Restaurary reinicia tu sistema para aplicar los cambios.