¿Es posible dd el disco actual que está arrancado?


23

Tengo una copia de FreeNAS que se ejecuta en un disco USB en vivo. Y me gustaría hacer una copia de seguridad.

Al tratar de evitar romper un sistema que funciona perfectamente, ¿podría acceder al dddisco mientras el sistema operativo se está ejecutando?

¿O tendría que apagar la máquina y ejecutar ddotra máquina?

Respuestas:


16

Puede ejecutar dden el disco en ejecución. Esto debe evitarse cuando hay cambios importantes en la estructura del disco. También debe fschkel destino una vez que haya terminado. Cuanto más silencioso sea el sistema durante la copia de seguridad, mejor.

Ejecutar una copia de seguridad en frío (sistema de archivos desmontado) es la mejor opción si desea usar 'dd'.

Hay mejores opciones para hacer una copia de seguridad de un sistema en ejecución.

  • taro cpioleerá los archivos y tratará razonablemente bien los archivos abiertos. Probablemente se perderá algunos de los cambios que ocurren durante la copia de seguridad.
  • rsyncse comporta como tarcon respecto a los archivos abiertos y los cambios que faltan durante la copia de seguridad. Se puede usar para hacer la copia de seguridad inicial y hace copias de seguridad incrementales muy bien. Al ejecutar una copia de seguridad incremental, puede omitir la copia de partes del archivo sin cambios.

Si está realizando una copia de seguridad de un sistema de archivos con archivos de datos de base de datos, investigue el soporte para copias de seguridad en caliente.


Buenos puntos sobre el uso de herramientas de nivel superior tar, cpioy rsynctodo el trabajo dentro del sistema de archivos , por lo que esto puede ser apropiado. dd, OTOH, trabaja directamente con bloques de disco, sin pasar por el FS.
Piskvor

16

Es técnicamente posible (como en "dispararse a sí mismo en el pie"), pero altamente desaconsejable, especialmente si alguna de las particiones del disco es grabable.

Imagine este escenario:

  • dd comienza a leer el disco al principio y felizmente se dirige hacia el final.
  • Cuando está a medio camino, el sistema operativo escribe un archivo en el disco. Sin embargo, el archivo está algo fragmentado: una parte se encuentra físicamente hacia el comienzo del disco y otra hacia el final.
  • No hay problema para el sistema operativo: escribe bien el archivo y lo saca de sus cachés de escritura; ahora está escrito correctamente en el disco.
  • El problema está en su copia de seguridad: ddya pasó y copió la primera parte del archivo, por lo que capturará un estado inconsistente cuando llegue a la segunda parte: ¡cada parte será de una versión diferente!

Si es capaz de volver a montar todas las particiones en el disco USB como de solo lectura, este problema no debería ocurrir (énfasis en " no debería "); Sin /embargo, esto requiere una preparación inicial significativa / preparación fuera de línea y una configuración de tiempo de arranque para la partición. No creo que normalmente pueda volver a montar /r / o sobre la marcha, habrá muchas cosas pendientes que requerirán r / w acceso.

Por lo tanto, ejecutar la copia probablemente no dañará el sistema en ejecución, pero no le dará una copia de seguridad viable , lo que hará que la tarea sea discutible. Recomiendo hacer la copia fuera de línea, lo que requeriría apagar la máquina.


1
Gracias por una gran respuesta, esperaba una salida fácil, pero tienes razón, no puedo imaginar un buen escenario surgiendo de lo que has señalado.
stuartc

1
@stuartc: Requeriría una gran cooperación del conductor de FS, informando al proceso de copia de cada cambio que ha ocurrido desde que comenzó la copia, y si llega a un estado consistente. Si este es un problema importante, busque en sistemas de archivos que admitan instantáneas, como btrfs.
Piskvor

4

Nunca debe crear una imagen de una partición montada. No importa si lo arrancaste o no.

Pero tendrá dificultades para intentar desmontar la partición desde la que arrancó.


4

Para esto, lo uso dump(8)en FreeBSD. P.ejdump -auLf /mnt/some-other-disk/root.dmp /

La -Lopción permite la copia de un sistema de archivos en vivo tomando una instantánea.

Los volcados se pueden restaurar utilizando restore(8).

Puede que solo funcione con UFS; No estoy seguro de eso.


0

Es sorprendente cuántos consejos de respaldo no mencionan lo siguiente:

El sistema Linux (y la mayoría de los sistemas operativos de subprocesos múltiples) generalmente deben estar inactivos mientras realiza una copia de seguridad y restauración.

Esto se logra más fácilmente al no ejecutar un sistema operativo en él mientras intenta crear una imagen.

Para la copia de seguridad y restauración, puede montarse, y de hecho probablemente debe serlo, pero no por el sistema operativo en ejecución como su raíz (/).


Motivo: en cada sistema operativo multitarea, incluido Linux, se ejecutan hilos de código simultáneos que afectan a los archivos, lo que hace imposible realizar copias de seguridad o restauraciones precisas de todo el sistema.

En particular, mientras agarra archivos, puede haber alguna otra tarea para crear o eliminar archivos, de modo que su copia de seguridad no represente una imagen verdadera y precisa del sistema de archivos en un momento dado. Si intenta restaurar esta copia de seguridad, tendrá daños en los datos que provocarán bloqueos y otras anomalías.


Opciones: las copias de seguridad deben realizarse mediante un software especial y / o sistemas de disco (como Acronis en Windows, por ejemplo, que puede hacer una copia de seguridad de un sistema operativo en ejecución), o mediante un sistema operativo secundario externo que acceda a los archivos del sistema operativo no ejecutado que está intentando copia de seguridad o restauración.

!!! Entonces, cuando vea páginas web que le dicen que use Deja-dup, por ejemplo, para hacer sus copias de seguridad, esto solo funciona /homey SOLO si no está ejecutando ningún programa que afecte /homemientras ejecuta deja-dup. (E incluso entonces es posible que desee cruzar los dedos a menos que realmente sepa qué podría tocar sus archivos a través de un demonio).


0

Ya hago esto con éxito en el entorno de prueba, con fsck y rsync al final para mejorar las posibilidades de una buena copia del dispositivo.


1
¿Puedes explicar cómo usas rsyncpara mejorar un volcado de disco completo (sistema de archivos completo) hecho con  dd? (Y, si tiene acceso a rsync, ¿por qué no lo usaría simplemente como su herramienta de respaldo principal en lugar de una secundaria, una complementaria?) ... ... ... ... ... ... ... ... ... ... ... por favor no responda en los comentarios; edite  su respuesta para que sea más clara y completa.
Scott
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.