OpenSUSE + Btrfs: Cómo solucioné un swapfile perdido y problemas de permisos en snapshots

OpenSUSE + Btrfs: Cómo solucioné un swapfile perdido y problemas de permisos en snapshots

Un día mi sistema OpenSUSE con Btrfs empezó a lanzar advertencias raras sobre el swapfile. Revisé con swapon --show y no había nada montado. El archivo /@swap/swapfile simplemente había desaparecido después de una actualización y los snapshots estaban fallando con errores de permisos.

Así fue como lo resolví paso a paso:

1) Crear un nuevo archivo swap de 8 GB

sudo dd if=/dev/zero of=/var/swapfile bs=1M count=8192 status=progress

Esto crea un archivo vacío de 8 GB en /var/swapfile.

2) Desactivar Copy-on-Write (nocow)
Btrfs no se lleva bien con los archivos swap a menos que se desactive COW.

sudo chattr +C /var/swapfile

3) Ajustar permisos
Por seguridad, solo el root debe poder leerlo o modificarlo.

sudo chmod 600 /var/swapfile

4) Formatear el archivo como swap

sudo mkswap /var/swapfile

5) Activar el swap

sudo swapon /var/swapfile

6) Verificar que está activo

swapon --show

Deberías ver una línea con /var/swapfile y su tamaño.

7) Hacerlo permanente en /etc/fstab
Abre el archivo con sudo nano /etc/fstab
Y añade esta línea al final:

/var/swapfile none swap defaults 0 0

8) Confirmar tras reiniciar
Después de reiniciar, ejecuta:

free -h

y el swap debería aparecer activo nuevamente.

Conclusión
Btrfs es un sistema de archivos potente, pero su manejo de archivos swap requiere cuidado. Si tu swap desapareció o los snapshots te lanzan errores de permisos, probablemente el problema sea que el archivo perdió su flag nocow o simplemente se eliminó en una actualización. Con estos pasos, el sistema vuelve a tener swap estable y los snapshots dejan de quejarse.