Mi partición / home consiste en un disco físico completo. Está formateado como btrfs. Quiero tomar una foto. Estoy confundido con respecto a los nombres de subvolúmenes, en particular.
Soy consciente de que hay preguntas similares, pero cada pregunta similar parece estar haciendo algo diferente de lo que estoy preguntando (y son más antiguas, lo que significa que probablemente estén desactualizadas, dado el rápido desarrollo de btrfs). Por ejemplo, la respuesta a esta pregunta aparentemente no es la respuesta a mi pregunta porque mi partición / home es un volumen separado y la página de manual para btrfs muestra un comando diferente para crear instantáneas ahora.
Otro problema similar, no hay una solución sólida .
alguien más tan confundido como yo sobre los problemas de nombres
Mi pregunta:
Comienzo simple: ¿es este el comando correcto para tomar una instantánea simple de mi partición de inicio?
btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421
Me volví muy valiente y lo probé y no funciona. El error es error accessing /home/@home
. Como se muestra a continuación, @home aparece en la lista.
Obviamente estoy confundido con los nombres de subvolúmenes. ¿Necesito usarlos para crear instantáneas? Algunos ejemplos muestran /home
cómo tomar instantáneas del hogar como parámetro de origen, pero según los ejemplos de volúmenes raíz, me parece que necesito usarlo /home/@home
.
¿Funcionaría este comando? Y si no, ¿por qué?
btrfs subvolume snapshot /home /home/@home_snapshot_20120421
¿Es @
solo una convención de nomenclatura? ¿Tiene algún sentido?
Aquí hay algunos resultados que pueden ser relevantes:
btrfs subvolume list /home
ID 256 top level 5 path @home
No estoy seguro de lo que eso significa exactamente. Cuando lo intento btrfs device scan
, aparece un error (por ejemplo, no puedo escanear el dispositivo / dev / sda1). Mi sistema de archivos no tiene ningún error. Todo esta bien.
Aquí están mis particiones. En respuesta a una respuesta, no / home no es mi única partición btrfs.
/dev/sda1: (boot partition) TYPE="ext2"
/dev/sda2: (root partition) TYPE="btrfs"
/dev/sdb1: (home partition) TYPE="btrfs"
/dev/sdc1: (shared partition) TYPE="btrfs"
/dev/sdc2: TYPE="swap"
Respuestas:
¿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á montado como / home, el comando correcto es:
Aquí están mis resultados:
Antes de ejecutar el comando hoy:
El comando:
Después de ejecutar el comando hoy:
El único problema con este método es que las instantáneas aparecen cuando estás (lista) / inicio.
El Wiki de la comunidad Ubuntu se ha actualizado con una solución para esto. Aquí está:
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 hacerlo desde los subvolúmenes montados. <- esa es la solución. Lamentablemente, no es conveniente .
Para crear una instantánea, use la misma sintaxis que usé anteriormente:
Esto creará una instantánea del subvolumen @ llamado @_snapshot ubicado también en la parte superior del árbol btrfs. Dado que está en la parte superior del árbol, no se mostrará al enumerar archivos en un volumen montado.
Para volver a una instantánea, simplemente necesita cambiar su nombre al nombre que ubuntu monta y reiniciar. Aquí se explica cómo cambiar el nombre:
Para eliminar una instantánea use:
Las instantáneas de btrfs son subvolúmenes en sí mismas y son independientes, eliminando el subvolumen @ antiguo de esta manera está bien, siempre que tengamos un reemplazo.
NOTA: El comando btrfs-tools
set-default
romperá el diseño de Ubuntu.fuente
Ok primero lo primero:
El nombre del subvolumen que está viendo es
@home
como se muestra enbtrfs subvolume list /home
. Está montado adentro/home
. @home es el nombre del subvolumen 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. @ Es la convención de Ubuntu en el momento de la instalación. (Si usa
apt-btrfs-snapshot
el subvolumen raíz, debe llamarse por@
cierto.) El wiki de la comunidad recomienda encarecidamente mantenerlo@
como raíz y@home
como hogar ya que está montado de esa manera. Esto es especialmente importante si desea revertir: NO debe usar btrfs subvolume set-default (no la sintaxis resaltada por propósito).Para
btrfs device scan
que tengas que usarsudo
.Para eliminar un subvolumen, puede usar
sudo btrfs subvolume delete @home_snapshot_20120421
Todos los comandos btrfs pueden abreviarse siempre y cuando no son ambiguas, así que por ejemplo
sudo btrfs device scan
se puede truncar asudo btrfs d s
,sudo btrfs dev sc
o cualquier otra cosa.Espero que eso haya respondido a sus preguntas. Existen algunas herramientas para realizar copias de seguridad periódicas, btrfs-snapshot-rotacion es un ejemplo. Úselos con precaución ya que ninguno de ellos es realmente maduro o ha ganado suficiente tracción, es decir, es muy posible que contengan errores.
fuente
$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
btrfs device scan
todavía no tuve éxito . Cualquier variante, incluido el uso,sudo
da el error "ERROR: no se puede escanear el dispositivo '/ dev / sdX'" donde X es cualquier nombre válido como a, a1, b, etc.btrfs sub snap @ /mnt/random
y funcionó para mí. Por otra parte, estaba en / mnt donde se montó @. Perdón por la confusiónInstalar el
apt-btrfs-snapshot
paquete, y utilizar sus subcomandoslist
,snapshot
,delete
yset-default
.Este es un script que envuelve los
btrfs
comandos de nivel inferior . Funciona montando primero el sistema de archivos raíz btrfs en alguna parte. Con eso quiero decir la raíz real, en oposición al/@
subvolumen que normalmente se monta como/
. En otras palabras, es necesario ejecutarmount /dev/sda1 /mnt
para que puedas ver las subcaudales que se enumeran como/mnt/@
,/mnt/@home
y cualquier otro que haya creado. Desde allí puedebtrfs subvolume snapshot /mnt/@home @snapshot-today
, lo que creará una instantánea de/@home
named/@snapshot-today
. Compare esto con la ejecuciónbtrfs subvolume snapshot /home /home/@snapshot_today
, que en su lugar crea la instantánea como hijo de/@home
, por lo tanto, aparece cuando ustedls /home
y su nombre real es/@home/@snapshot-today
.Hacer retroceder una instantánea es sólo 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 va a montar/@home
en/home
, encontrará la instantánea.Es un poco complicado entenderlo porque debes tener en cuenta la diferencia entre cómo btrfs ve las cosas y cómo el kernel ve las cosas, lo cual está influenciado por las opciones de montaje (el subvol = argumento específicamente).
fuente