Saltar al contenido

¿Cómo hacer una instantánea btrfs?

Después de observar en varios repositorios y sitios webs finalmente nos encontramos con la resolución que te mostraremos pronto.

Solución:

¿Cuál es el comando correcto para crear una instantánea de mi partición de inicio en Ubuntu 12.04?

Dado que home está en una partición btrfs y está montada como /home, el comando correcto es:

sudo btrfs subvolume snapshot /home/ /home/

Aquí están mis resultados:

Antes de ejecutar el comando hoy:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936

El comando:

$ sudo btrfs subvolume snapshot /home/ /home/@snapshot_20120611_1307  
Create a snapshot of '/home/' in '/home/@snapshot_20120611_1307'

Después de ejecutar el comando hoy:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936  
ID 258 top level 5 path @home/@snapshot_20120611_1307

El único problema con este método es que las instantáneas aparecen cuando ls (lista) /home.

La Wiki de la comunidad de Ubuntu se ha actualizado con una solución para esto. Aquí lo tienes:

Cómo trabajar con instantáneas en el diseño de Ubuntu

Para trabajar con instantáneas de / o /home en el diseño de Ubuntu, es muy conveniente montar el sistema de archivos btrfs en una ubicación separada y trabajar desde la parte superior del árbol btrfs, en lugar de desde los subvolúmenes montados. <-- esa es la solución. Desafortunadamente es no conveniente.

sudo mount /dev/sdX# /mnt

Para crear una instantánea, use la misma sintaxis que usé anteriormente:

sudo btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot

Esto creará una instantánea del subvolumen @ llamado @_snapshot ubicado también en la parte superior del árbol btrfs. Dado que se encuentra en la parte superior del árbol, no aparecerá cuando se enumeren archivos en un volumen montado.

Para volver a una instantánea, simplemente necesita cambiar su nombre por el nombre que monta ubuntu y reiniciar. Aquí se explica cómo cambiar el nombre:

sudo mv /mnt/@ /mnt/@_badroot
sudo mv /mnt/@_snapshot /mnt/@

Para eliminar una instantánea, use:

sudo btrfs subvolume delete /mnt/@_badroot

Las instantáneas de btrfs son subvolúmenes en sí mismos y autónomos, eliminar el antiguo subvolumen @ como este está bien, siempre que tengamos un reemplazo.

NOTA: El comando btrfs-tools set-default romperá el diseño de Ubuntu.

Bien, lo primero es lo primero:

  • El nombre del subvolumen que está viendo es @home como se muestra btrfs subvolume list /home. esta montado en /home. @home es el nombre del subvolumen y también tiene el ID 256, por lo que lo más probable es que solo su /home esté formateado como btrfs.

  • Ahora, para crear una instantánea de @home, debe emitir:
    sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421

  • El subvolumen puede tener cualquier nombre. La @ es la convención de Ubuntu en el momento de la instalación. (Si utiliza apt-btrfs-snapshot el subvolumen raíz tiene que ser nombrado @ por cierto.) La wiki de la comunidad recomienda encarecidamente mantener @ como raíz y @home como vivienda ya que está montada de esa manera. Esto es especialmente importante si desea retroceder: NO debe usar btrfs subvolume set-default (no la sintaxis resaltada por propósito).

  • Para btrfs device scan tienes que usar sudo.

  • Para borrar un subvolumen puedes usar sudo btrfs subvolume delete @home_snapshot_20120421

Todos los comandos btrfs se pueden abreviar siempre que no sean ambiguos, por ejemplo sudo btrfs device scan se puede truncar a sudo btrfs d s, sudo btrfs dev sc o cualquier cosa en el medio.

Espero haber respondido a sus preguntas. Existen algunas herramientas para realizar copias de seguridad regulares, btrfs-snapshot-rotation es un ejemplo. Utilícelos con precaución ya que ninguno de ellos es realmente maduro o ganó suficiente tracción, es decir, es muy posible que contengan errores.

Instala el apt-btrfs-snapshot paquete, y use sus subcomandos list, snapshot, delete y set-default.

Este es un script que envuelve el nivel inferior btrfs comandos Funciona montando primero el sistema de archivos raíz btrfs en alguna parte. Con esto me refiero a la raíz real, en oposición a la /@ subvolumen que normalmente se monta como /. En otras palabras, debe ejecutar mount /dev/sda1 /mnt para que pueda ver los subvolúmenes que se enumerarán como /mnt/@, /mnt/@homey cualquier otro que haya creado. Desde allí puedes btrfs subvolume snapshot /mnt/@home @snapshot-todayque creará una instantánea de /@home llamado /@snapshot-today. Compara esto con correr btrfs subvolume snapshot /home /home/@snapshot_todayque en su lugar crea la instantánea como un hijo de /@homepor lo tanto, aparece cuando usted ls /home y su verdadero nombre es /@home/@snapshot-today.

Revertir una instantánea es solo una simple operación de cambio de nombre: mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home. La próxima vez que arranque, cuando se monte /@home en /homeencontrará la instantánea.

Es un poco complicado entenderlo porque hay que tener en cuenta la diferencia entre cómo ve las cosas btrfs y cómo ve las cosas el núcleo, que está influenciado por las opciones de montaje (el argumento subvol= específicamente).

Te mostramos reseñas y puntuaciones

Si entiendes que te ha resultado de ayuda nuestro post, sería de mucha ayuda si lo compartieras con más juniors de esta manera nos ayudas a dar difusión a nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *