Tengo que hacer una copia de seguridad de mi disco duro. Quiero usar dd
y poner la imagen en un disco duro externo.
- ¿Puedo hacer esto
dd
desde el sistema operativo que reside en el disco duro o tengo que arrancar desde otro dispositivo, por ejemplo, un LiveCD? - ¿Es seguro, en general, tomar la imagen de un dispositivo, si el dispositivo está montado y funcionando?
- ¿Qué sucede si el dispositivo está montado, pero estoy seguro de que no hay otra operación de E / S mientras se
dd
está ejecutando?
Estoy seguro de que rsync
es la mejor herramienta para las copias de seguridad, especialmente las incrementales.
Pero me interesa dd
, porque quiero hacer una copia de seguridad de otros dispositivos de almacenamiento, y también copia los datos almacenados en el espacio no particionado. Por ejemplo, mi lector de libros electrónicos utiliza un espacio no particionado para almacenar uboot, kernel y otros datos.
backup
dd
disk-image
Marco Sulla
fuente
fuente
Respuestas:
En general no es seguro. El FS asume que las operaciones se escriben en cierto orden para que pueda escribir nuevos datos del archivo y luego hacer un puntero desde otros datos, los detalles exactos dependen del sistema de archivos. Imagínese si sucede lo siguiente:
dd
lee desde la ubicación X que contiene basura o algunos datosdd
lee desde la ubicación X + 1 enlace a la ubicación XDesde el punto de vista de la copia de seguridad, obtiene datos de basura. Sin embargo, hay varias formas de solucionarlo:
xfs_freeze
es uno y no conozco ningún otro, pero esa opción existe al menos en teoría)Como última nota,
dd
podría no ser la mejor forma de copia de seguridad. Copia un disco completo que a menudo es un desperdicio al copiar también la 'basura'. Si necesita tener un disco de imágenes, algo como partimage podría ser mejor. Si no tiene una mejor opción, está usando un rsync, tar en modo diferencial / incremental, etc. o un sistema de respaldo completo como bacula , tarsnap o uno de muchos otros. La deduplicación de datos puede hacer maravillas para los tamaños de las copias de seguridad.fuente
Depende de para qué es exactamente la partición y para qué sirve la copia. Sin embargo, diré que, en general,
dd
es una herramienta inapropiada para hacer copias de seguridad de los sistemas de archivos . Eso no es para lo que estaba destinado, tampoco.Perderá mucho tiempo copiando secciones vacías de la partición.
Puede generar inconsistencias si el sistema de archivos está montado actualmente, en parte porque es una entidad a nivel del sistema operativo y puede estar fuera de sincronización con el dispositivo de bloque subyacente. Llamar
sync
inicialmente no ayudará mucho con esto, ya que el proceso no es instantáneo.Uso
cp -a
o en sursync
lugar. Luego, debe crear la partición de destino, por supuesto, por lo que no es tan fácil, pero es mucho más seguro y más flexible. Si necesita crear una imagen del sistema de archivos , consulte a continuación.Si tiene la intención de copiar el sistema de archivos raíz, absolutamente no lo use
dd
. Debe usar algo comorsync -ax
(ocp -ax
en directorios individuales de nivel superior), porque hay un montón de cosas que NO deben estar en la copia . En Linux, esto incluye:Algunos de estos son en realidad interfaces del kernel y no directorios reales en el disco. Si los copia, está copiando un montón de información que no se aplicará en la copia; Si intenta ejecutar un sistema con él, solo equivaldrá a un espacio desperdiciado, ya que la interfaz real se montará en la parte superior. Otros contienen información temporal en uso mediante procesos en ejecución y esos son más un problema, ya que el sistema no podrá resolver la basura si copia eso.
Si desea crear un archivo de imagen del sistema de archivos raíz (o cualquier sistema de archivos), cree un archivo de imagen vacío; este es un uso apropiado para
dd
:Esa es una imagen de 1024 MB (1000000 * 1024). Ajuste
count
si lo desea de otro tamaño. Cree, por ejemplo, unext
sistema de archivos en el archivo :Te advertirá que este no es un dispositivo de bloque real. Continuar. Ahora monte el archivo de imagen:
/mnt/img
debe existir pero podría cualquier cosa. Ahora puedesrsync
(ocp -a
) entrar/mnt/img
. El contenido permanecerá adentrowhatever.img
cuando lo desmontes.Sin embargo...
Para que quede claro, solo use el método de imagen del sistema de archivos que se acaba de describir si necesita un archivo de imagen por cualquier motivo. Si su objetivo es copiar la partición a otro disco duro, no necesita una imagen : cree una nueva partición con un sistema de archivos vacío en esa unidad, móntela y cópiela allí. En su lugar, podría simplemente poner el contenido del sistema de archivos en un directorio vacío y archivarlo:
Luego puede implementar esto en una partición existente (vacía o no) colocándola en el nivel superior y usando:
Tenga en cuenta que sobrescribirá los archivos existentes si sus rutas coinciden con algo en el archivo. De lo contrario, dejará la jerarquía de directorios existente igual.
fuente
cp
como rsync tienen la opción-x
de evitar la recurrencia a otros sistemas de archivos. La respuesta de Maciej explica mejor por quédd
es absolutamente inapropiado aquí (es casi seguro que produzca una copia inutilizable a menos que tome las precauciones enumeradas por Mark , debido a las escrituras que de lo contrario sucederán durante la copia).dd
no copiará cosas que no son directorios reales en el disco, por lo que no estoy seguro de dónde viene su primer punto. Por ejemplo, los dispositivos montados/mnt
, los nodos/proc
, etc., no serían parte de los datos que sedd
capturan, ya que no están en el disco. Para sistemas de archivos desmontadosdd
es perfectamente válido; terminas con un duplicado exacto. La única razón por la que no es apropiado para los sistemas de archivos montados es que los datos en el sistema podrían cambiar / escribirse parcialmente durante el largo período de tiempo que llevadd
operar.rsync es la herramienta elegida para hacer una copia de seguridad de un sistema de archivos, y puede hacer una copia de seguridad de arranque del sistema operativo actual.
Algunas advertencias:
Algunas ventajas de rsync sobre otros métodos como tar:
Las copias de seguridad de las imágenes tienen su lugar, pero copian la unidad exactamente como está, incluidos los problemas que pueda tener. Una copia de seguridad de archivos crea un directorio nuevo y tiene el efecto secundario de linealizar (desfragmentar) su unidad en el proceso. Si desea hacer 10 copias idénticas de su sistema operativo actual, usaría rsync para el maestro de copias y luego dd (o similar) para el resto.
fuente
Depende de lo que quiera decir con "sistema de trabajo actual". Si simplemente desea evitar el uso de un disco de arranque y no le preocupa la interrupción de los servicios que se ejecutan en la computadora, es posible:
sync
mount -o ro /
./etc/mtab
; ignórelo).Utilizo este método para hacer un archivo de una computadora desde la que acabo de actualizar y no espero usar mucho más. No es un método muy bueno para un sistema en uso activo: es lento (toma horas o días), las copias de seguridad son enormes (por lo que no puede conservar más que unas pocas), y es increíblemente perjudicial el uso del sistema que se está respaldando. arriba. Para las copias de seguridad diarias, recomiendo algo que funcione a nivel de sistema de archivos, como
rsnapshot
.fuente
/etc/mtab
a/proc/self/mount
- que funcionará incluso cuando tiene cosas tales como chroots o FS espacios de nombres.mount -o remount,ro /
puede escribir. Pero una vez que este comando regrese, ¿en qué situación ocurrirían las escrituras posteriores?Usa Clonezilla , en serio. Es la mejor utilidad de código abierto basada en Linux Norton Ghost. Hará tanto la partición como la clonación completa del disco, ya sea de disco a disco o de disco a sistema de archivos (guardar como un archivo). Es compatible con la mayoría de los sistemas de archivos Linux, NTFS, FAT32 y más. Puede guardar en un disco interno, una unidad externa o incluso a través de la red en recursos compartidos SMB o NFS.
Es muy fácil de usar y le ahorrará mucho tiempo.
Editar: para responder a la pregunta, no, no puede utilizar la
dd
mayoría de los sistemas de archivos mientras están montados porque corre el riesgo de terminar con una copia inconsistente de su sistema de archivos, ya que leer desde un dispositivo de bloque no es atómico. Por ejemplo, si está copiando 100 bloques, el sistema podría haber actualizado el primer bloque y el último bloque mientras estaba a mitad de camino, lo que significa que su copia incluirá el último bloque modificado pero no el primero.fuente