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.