Solución:
Solo mv
eso. Esa es la forma recomendada en la documentación de la comunidad de Ubuntu.
Y para aclarar aún más por qué esa es la forma correcta de hacerlo, aquí hay una cita de la guía btrfs sysadmin:
Instantáneas
Una instantánea es simplemente un subvolumen que comparte sus datos (y metadatos) con algún otro subvolumen, utilizando las capacidades COW de btrfs. Una vez
[writable] instantánea, no hay diferencia de estado entre el subvolumen original y el nuevo subvolumen de instantánea. Para volver a una instantánea, desmonte el subvolumen original modificado y monte la instantánea en su lugar. En este punto, el subvolumen original se puede eliminar si se desea. Dado que una instantánea es un subvolumen, también es posible realizar instantáneas de instantáneas.
hay algunas cosas importantes a tener en cuenta. Los nombres:
btrfs Subvolume – contenedor de datos independiente inside
sistema de archivos. Se representa como directorio del FS existente. Si crea un nuevo subvolumen, estará vacío, listo para usar el bloque de datos lógicos dentro del sistema de archivos. Muy conveniente de usar cuando los datos deben estar separados lógicamente, por ejemplo, diferentes VM o diferentes clientes en diferentes subvolúmenes. Esto permite very fast
eliminación de todos bloque de datos lógicos con solo comando de eliminación de subvolúmenes.
btrfs Snapshot: una copia de existing
subvolumen con todos sus datos en el momento en que se realizó la instantánea. Se puede utilizar como copia de seguridad operativa para revertir configuraciones o cambios, por ejemplo, hacer una instantánea de subvolumen, realizar cambios (VM o datos), probar si todo está bien, después de un período de gracia, eliminar la instantánea. Importante tener en cuenta: las instantáneas pueden ser de solo lectura (-r
switch) y, por lo tanto, se pueden utilizar como bloques incrementales de cambios FS y posiblemente transferirse a absolutamente otro BTRFS.
Limitaciones actuales de BTRFS (2016-12-30):
Copiar o mover datos entre subvolúmenes, p. Ej. mv dir1/dataset1 dir_subvolume1/
produce todo el io real para copiar datos a otro subvolumen y, en caso de moverlo, eliminarlo del original. Y muy copia eficiente de toneladas de datos simplemente haciendo referencias y, por lo tanto, utilizando la función COW de BTRFS:
cp -a --reflink=always dir1/dataset1 dir_subvolume1/
y si es necesario:
rm -rf dir1/dataset1
Se puede cambiar el nombre de la instantánea de subvolumen de solo lectura (se puede mover con mv
) en el nivel de directorio existente, pero no se puede cambiar el nombre / mover a un nivel de subdirectorio diferente. p.ej mv /btrfs/subvol_snap1 /btrfs/.snaphots
no es posible, produce un error poco explicado: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system
. Para poder mover una instantánea de este tipo, debe crear una nueva instantánea de solo lectura de una instantánea de solo lectura existente a la nueva ubicación preferida y, a continuación, eliminar la anterior:
btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1
Solo para vivir más fácilmente:
btrfs sub list /btrfs
Espero que esto les ahorre mucho tiempo a todos los nuevos fanáticos de btrfs 🙂
Si desea cambiar el nombre del volumen raíz a un subvolumen anidado, debe tomar una instantánea y luego hacer una find $ROOT_VOL -xdev -delete
para eliminar el contenido anterior del volumen raíz. La manipulación inversa (cambiar el nombre de un subvolumen al volumen raíz) no parece posible.