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 muestrabtrfs 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 usarsudo
. -
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/@home
y cualquier otro que haya creado. Desde allí puedes btrfs subvolume snapshot /mnt/@home @snapshot-today
que creará una instantánea de /@home
llamado /@snapshot-today
. Compara esto con correr btrfs subvolume snapshot /home /home/@snapshot_today
que en su lugar crea la instantánea como un hijo de /@home
por 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 /home
encontrará 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.