Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Compresores de Archivos - P7zipEditores de Texto - Leafpad

Copias de Seguridad - Disk ARchive




Copias de Seguridad - Disk ARchive




Copyright

Copyright © José Luis Lara Carrascal  2007-2017   http://manualinux.eu



Sumario

Introducción
Características
Instalación
Editar el archivo de configuración personal de DAR
Crear un script de copia de seguridad completa del sistema
Crear un script de copia de seguridad diferencial del sistema
Restauración de la copia de seguridad y las diferenciales
Gestionar las copias de seguridad con Dar Manager
Enlaces




Introducción  

En informática existen dos tipos de usuarios: los que se han quedado alguna vez en su vida sin disco duro por avería o corrupción de datos y los que nunca han tenido este tipo de problema. La percepción del peligro siempre va unida a la experiencia personal, el señor que le han atracado tres veces seguidas en una misma semana dirá que los niveles de delincuencia son insoportables, el señor que nunca haya sufrido un atraco seguirá dejando las llaves del coche puestas cuando vaya a por el periódico.

Tengo que reconocer que no soy un fanático de las copias de seguridad, soy de los que piensan que el sitio más seguro sigue siendo el disco duro y que dejando a un lado los problemas puntuales que hayan tenido algunos usuarios, éstos siguen siendo bastante más fiables y duraderos que un CD o un DVD siempre expuestos a las condiciones ambientales y a la manipulación incorrecta por parte de los usuarios.

Incluso voy más lejos y abogo por realizar siempre las copias de seguridad en un segundo disco duro, teniendo en cuenta el considerable descenso en los precios de éstos. Se te puede estropear un disco duro pero es más fácil que te caiga un ladrillo en la cabeza en pleno desierto, que el hecho de quedarse sin los dos discos duros por avería. Por otra parte siempre es mejor hacer copias selectivas de directorios críticos (etc, home, root) que una copia entera del sistema, pero esto es sólo una opinión personal, que cada cual ajuste sus niveles de seguridad sin tener que llegar a caer en la obsesión por hacer copias de seguridad diarias.

Dentro de los programas dedicados a estos menesteres existen dos tipos muy diferenciados: los que se limitan a crear imágenes de las particiones con las consabidas limitaciones que conlleva esto y los que hacen copias del contenido permitiendo la posibilidad de hacerlo de forma incremental, es decir, a partir de la primera copia creada sólo se añaden los archivos nuevos o modificados reduciendo considerablemente la engorrosa tarea que supone siempre realizar una copia de todos los datos de la partición. Además nos permiten seleccionar los directorios a ser incluidos en la misma.

En este segundo apartado debemos de incluir a Disk ARchive (DAR), programa del que trata este manual. Aunque tiene una interfaz gráfica denominada Kdar (no es compatible con la versión 2.5.x, de Disk ARchive), es recomendable aprenderse las opciones de línea de comandos del mismo. Lo mejor de todo es que contiene documentación traducida al español con ejemplos de cómo realizar una copia de seguridad del sistema, su manejo no es nada complejo y una vez tengamos configurado el comando de respaldo de datos podemos convertirlo en un script de shell y automatizar las copias con sólo la ejecución de un comando o la programación temporal con el comando cron.



Características  

* FILTROS : Podemos excluir los archivos y directorios que no queremos que se incluyan en la copia.  (-I -X -P -g -[-] -am)

* COPIAS DIFERENCIALES : DAR puede realizar copias completas o copias diferenciales en las que sólo se añaden los archivos modificados desde la copia que utilizemos como referencia. (-A)

* COPIAS DIVIDIDAS EN VARIOS ARCHIVOS : En el comando de copia se puede especificar el tamaño del archivo resultante en el caso de que el tamaño final de la copia supere la capacidad de un CD/DVD. Automáticamente se crearán archivos divididos en función del tamaño especificado en dicho comando. (-s -S -p -aSI -abinary)

* CAPTURA DE ESTADO DEL ARBOL DE DIRECTORIOS : DAR puede realizar una captura de estado del árbol de directorios grabando el estado de los inodos de los archivos. El archivo resultante es usado como referencia para hacer las copias diferenciales de los datos del sistema y es mucho más pequeño que una copia completa del sistema entero. (-A +)

* COMPRESION : DAR puede utilizar compresión en la generación del archivo resultante, sólo gzip, bzip2 y lzo están implementados de momento. Por defecto no la usa. (-zgzip) para gzip, (-zbzip2) para bzip2., (-zlzo) para lzo y (-zxz) para xz. El nivel de compresión por defecto es 9, para cambiarlo añadir un número del 1 al 9 al parámetro concreto, ejemplo: (-zbzip2:8)

* ACCESO DIRECTO : Una de las mejores funciones de este programa, podemos extraer un determinado archivo o directorio específico sin necesidad de restaurar toda la copia, incluso si hacemos uso de la compresión. En el caso de que la copia esté dividida en varios archivos, DAR sólo nos pedirá la parte que contenga los archivos o directorios que queremos restaurar.

* ACCESO SECUENCIAL : Lo mismo que el acceso directo, pero indicado para los discos de cinta. (-sequential-read, at)

* ARCHIVOS DISPERSOS : Esta característica evita el desperdicio de espacio en disco a la hora de restaurar las copias de seguridad. (-sparse-file-min-size, ah)

* PRESERVA LOS ENLACES DUROS : Todas las propiedades de los enlaces a puntos de montaje de dispositivos de bloque son guardados en la copia.

* ATRIBUTOS EXTENDIDOS : DAR puede guardar y restaurar todos los atributos extendidos o aquellos que se ajusten a un determinado patrón. (-u -U -am -ae --alter=list-ea)

* COMPROBACION DEL ARCHIVO : DAR puede detectar un archivo corrupto y anular su restauración dentro del contenido de la copia que tengamos pensado restaurar. (-t)

* USO DE TUBERÍAS : Mediante la ejecución de una tubería podemos restaurar una copia local en un ordenador remoto. (-i -o -)

* ISOLACIÓN : Este es el nombre del proceso mediante el cual extraemos el catálogo (la lista de archivos) de una copia ya creada a un pequeño archivo que utilizaremos como referencia para realizar la siguiente copia diferencial, sin necesidad de tener que utilizar como referencia la copia entera creada. (-C)

* CAMBIAR EL TAMAÑO DE LAS PARTES DE UNA COPIA : Con el programa dar_xform podemos cambiar el tamaño de las partes que se hayan creado al realizar una copia dividida en un determinado tamaño.

* SOPORTE DE CIFRADO : DAR puede utilizar los algorimos scrambling y bluefish para cifrar el contenido de los datos a respaldar. (-K -J -# -* blowfish)

* COMPRESION SELECTIVA : Podemos utilizar filtros para excluir archivos comprimidos (zip. gzip, mp3, mpeg, bz2, etc.) si vamos a utilizar la opción de compresión para realizar la copia, esto acelera considerablemete el proceso de copia evitando tener que comprimir lo que ya está comprimido. (-Z *.mp3, *.mpg, *.zip)

* DAR MANAGER : dar_manager es el encargado de gestionar las copias diferenciales y con el mismo podremos buscar entre el contenido de éstas.

* RESTAURACION PLANA : Se pueden restaurar todos los archivos excluyendo a los directorios y subdirectorios tomando como referencia siempre el directorio raíz del sistema: / (-f)

* UN SISTEMA DE ARCHIVOS SÓLO : DAR puede hacer una copia de un directorio de un sistema de archivos aunque en el
mismo existan puntos de montaje que enlacen a otros sistemas de archivos, éstos serán ignorados en la copia a realizar. (-M)

* MEZCLA DE COPIAS : DAR puede mezclar dos copias diferentes en un mismo archivo siempre y cuando las dos estén comprimidas o sin comprimir y utilizen el mismo algoritmo de cifrado, en el caso de que estas opciones se hayan utilizado. (-+ ak)

* EXTRACCION DE ARCHIVOS DE UNA COPIA PARA AÑADIRLOS A OTRA : Se pueden extraer un grupo de archivos de una copia y añadirlos a una nueva cambiando si se desea las opciones de compresión y cifrado. (-+)

Entre paréntesis los parámetros posibles de línea de comandos de la característica determinada para DAR.

Nota: Estas características no incluyen todos los cambios realizados en las versiones 2.4.x >> 2.5.x. La información actualizada de éstas, en este enlace.



Instalación  

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado DAR para la elaboración de este documento.

* GCC - (7.1.0) o Clang - (4.0.1)
* Gawk - (4.1.4)
* M4 - (1.4.18)
* Libtool - (2.4.6)
* Make - (4.2.1)
* Automake - (1.15.1)
* Gettext - (0.19.8.1)
* Autoconf - (2.69)
* Pkg-config - (0.29.2)

Librerías de Desarrollo y Estáticas

* Libgcrypt - (1.7.7)
* Libgpg-error - (1.27)
* Gpgme - (1.9.0)
* E2fsprog - (1.43.4)
* Libbzip2 - (1.0.6)
* Libsocket - (1.8)
* LZO - (2.10)
* XZ Utils - (5.2.3)
* Zlib - (1.2.11)

Aplicaciones

* Upx - (3.91)
* Doxygen - (1.8.13)
* Groff - (1.22.3)



Descarga

dar-2.5.11.tar.gz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'

Donde pone amdfam10 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang, y por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
generic Produce un código binario optimizado para la mayor parte de procesadores existentes. Utilizar este valor si no sabemos el nombre del procesador que tenemos en nuestro equipo. Este valor sólo es aplicable en la opción '-mtune=', si utilizamos GCC. Esta opción está disponible a partir de GCC 4.2.
native Produce un código binario optimizado para el procesador que tengamos en nuestro sistema, siendo éste detectado utilizando la instrucción cpuid. Procesadores antiguos pueden no ser detectados utilizando este valor. Esta opción está disponible a partir de GCC 4.2.
Intel
atom Intel Atom con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición bonnell.
bonnell Intel Bonnell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.
broadwell Intel Broadwell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9 y Clang 3.6.
cannonlake Intel Cannonlake con soporte de instrucciones X87, MMX, AVX, FXSR, CMPXCHG16B, POPCNT, AES, PCLMUL, XSAVE, XSAVEOPT, LAHFSAHF, RDRAND, F16C, FSGSBase, AVX2, BMI, BMI2, FMA, LZCNT, MOVBE, INVPCID, VMFUNC, RTM, HLE, SlowIncDec, ADX, RDSEED, SMAP, MPX, XSAVEC, XSAVES, SGX, CLFLUSHOPT, AVX512, CDI, DQI, BWI, VLX, PKU, PCOMMIT, CLWB, VBMI, IFMA y SHA. Esta opción está disponible a partir de Clang 3.9.
core2 Intel Core2 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.3.
core-avx2 Intel Core (Haswell). Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición haswell.
core-avx-i Intel Core (ivyBridge) con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición ivybridge.
corei7 Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2 y extensiones 64-bit. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición nehalem.
corei7-avx Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL y extensiones 64-bit. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición sandybridge.
haswell Intel Haswell con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.
i386 Intel i386.
i486 Intel i486.
i586, pentium Intel Pentium sin soporte de instrucciones MMX.
i686 Produce un código binario optimizado para la mayor parte de procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son.
intel Intel Haswell y Silvermont. Este valor sólo es aplicable en la opción '-mtune='. Esta opción está disponible a partir de GCC 4.9.
ivybridge Intel Ivy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.
knl Intel Knights Landing con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER y extensiones 64-bit. Esta opción está disponible a partir de GCC 5 y Clang 3.4.
lakemont Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir de GCC 6 y Clang 3.9.
nehalem Intel Nehalem con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.
nocona Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit.
penryn Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1.
pentiumpro Intel PentiumPro.
pentium2 Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX.
pentium3, pentium3m Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE.
pentium4, pentium4m Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2.
pentium-m Versión de bajo consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2. Utilizado por los portátiles Centrino.
pentium-mmx Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX.
prescott Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
sandybridge Intel Sandy Bridge con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9 y Clang 3.6.
silvermont Intel Silvermont con soporte de instrucciones MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9 y Clang 3.6.
skx Intel Skylake Server con soporte de instrucciones X87, MMX, AVX, FXSR, CMPXCHG16B, POPCNT, AES, PCLMUL, XSAVE, XSAVEOPT, LAHFSAHF, RDRAND, F16C, FSGSBase, AVX2, BMI, BMI2, FMA, LZCNT, MOVBE, INVPCID, VMFUNC, RTM, HLE, SlowIncDec, ADX, RDSEED, SMAP, MPX, XSAVEC, XSAVES, SGX, CLFLUSHOPT, AVX512, CDI, DQI, BWI, VLX, PKU, PCOMMIT y CLWB. Esta opción está disponible a partir de Clang 3.5. A partir de Clang 3.9 se utiliza también la definición skylake-avx512.
skylake Intel Skylake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES y extensiones 64-bit. Esta opción está disponible a partir de GCC 6 y Clang 3.6.
skylake-avx512 Intel Skylake Server con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD y extensiones 64-bit. Esta opción está disponible a partir de GCC 6 y Clang 3.9
slm Intel Silvermont con soporte de instrucciones X87, MMX, SSE42, FXSR, CMPXCHG16B, MOVBE, POPCNT, PCLMUL, AES, SlowDivide64, CallRegIndirect, PRFCHW, SlowLEA, SlowIncDec, SlowBTMem y LAHFSAHF. Esta opción está disponible a partir de Clang 3.4. A partir de Clang 3.9 se utiliza también la definición silvermont.
westmere Intel Westmere con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir de GCC 4.9.
yonah Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3.
AMD
amdfam10, barcelona Procesadores basados en AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.3. La definición barcelona está disponible a partir de Clang 3.6.
athlon, athlon-tbird AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch.
athlon4, athlon-xp, athlon-mp Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE.
bdver1 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.
bdver2 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.7.
bdver3 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8 y Clang 3.4.
bdver4 Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64 (BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.9 y Clang 3.5.
btver1 Procesadores basados en AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.6.
btver2 Procesadores basados en AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3, SSE2, SSE, MMX y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.8.
geode AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3.
k6 AMD K6 con soporte de instrucciones MMX.
k6-2, k6-3 Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!.
k8, opteron, athlon64, athlon-fx Procesadores basados en AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, 3DNow!, enhanced 3DNow! y extensiones 64-bit).
k8-sse3, opteron-sse3, athlon64-sse3 Versiones mejoradas de AMD K8 core con soporte de instrucciones SSE3. Esta opción está disponible a partir de GCC 4.3.
x86-64 Procesadores AMD y compatibles con soporte de instrucciones x86-64, SSE2 y extensiones 64-bit.
znver1 Procesadores basados en AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones 64-bit). Esta opción está disponible a partir de GCC 6 y Clang 4.
VIA
c3 VIA C3 con soporte de instrucciones MMX y 3DNow! (no se implementa planificación para este chip).
c3-2 VIA C3-2 (Nehemiah/C5XL) con soporte de instrucciones MMX y SSE (no se implementa planificación para este chip).
c7 VIA C7 (Esther) con soporte de instrucciones MMX, SSE, SSE2 y SSE (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
eden-x2 VIA Eden X2 con soporte de instrucciones x86-64, MMX, SSE, SSE2 y SSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
eden-x4 VIA Eden X4 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
esther VIA Eden Esther con soporte de instrucciones MMX, SSE, SSE2 y SSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano VIA Nano genérico con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-1000 VIA Nano 1xxx con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-2000 VIA Nano 2xxx con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-3000 VIA Nano 3xxx con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-x2 VIA Nano Dual Core con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-x4 VIA Nano Quad Core con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
IDT
winchip2 IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!.
winchip-c6 IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX.

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'

Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'

Parámetros adicionales

Parámetros adicionales de eliminación de avisos específicos en el proceso de compilación
Clang
$ export {C,CXX}FLAGS+=' -Qunused-arguments'

Establecer el RPATH correspondiente si utilizamos una versión de GCC que no es la principal del sistema
$ export LDFLAGS="-Wl,-rpath,/opt/gcc7/lib -lstdc++"
Sustituir /opt/gcc7/lib por la ruta de instalación de la versión de GCC alternativa que se vaya a utilizar en el proceso de compilación de este paquete.

Parámetros adicionales de ubicación de librerías estáticas requeridas por el programa
Libsocket (Happycoders)
$ export {C,CXX}FLAGS+=' -L/usr/lib/happycoders -lsocket'

Establecer la variable de entorno de uso de compilador para Clang
$ export {CC,CXX}=clang
Si utilizamos Clang con Ccache, tendremos que establecer la variable de entorno correspondiente de Ccache de uso de compilador.
$ export CCACHE_CC=clang

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar zxvf dar-2.5.11.tar.gz
$ cd dar-2.5.11
$ ./configure --disable-dependency-tracking --prefix=/usr --sysconfdir=/etc --enable-mode=64

Explicación de los comandos

--disable-dependency-tracking : Acelera el tiempo de compilación.
--prefix=/usr : Instala el programa en el directorio principal /usr.

--sysconfdir=/etc
: Instala el archivo de configuración en /etc, en lugar de /usr/etc.
--enable-mode=64 : Activando esta opción los binarios ejecutables de DAR se ejecutarán más rapidos y consumirán menos memoria. Si nuestro procesador es de 32 bits, donde pone 64, poner 32.

Compilación

$ make

Parámetros de compilación opcionales

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su 
# make install-strip
# ldconfig -v

Borrar las locales adicionales instaladas con la utilidad BleachBit

# bleachbit -c system.localizations

Copiar el archivo de configuración del sistema de DAR a nuestro directorio de usuario root

# cp /etc/darrc $HOME/.darrc

Si tenemos pensado realizar copias de seguridad de directorios como usuario normal, también lo podemos copiar a nuestro directorio personal de usuario.

Estadísticas de Compilación e Instalación de DAR

Estadísticas de Compilación e Instalación de DAR
CPU AMD Athlon(tm) II X2 260 Processor
MHz 3214.610
RAM 2048 MB
Sistema de archivos XFS
Versión de Glibc 2.25
Enlazador dinámico GNU gold (Binutils 2.28) 1.14
Compilador Clang 4.0.1 + Ccache 3.3.4
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -mllvm -polly -mllvm -polly-vectorizer=stripmine
Parámetros de compilación -j2
Tiempo de compilación 3' 44"
Archivos instalados 1.015
Mostrar/Ocultar la lista de archivos instalados
Enlaces simbólicos creados 2
Mostrar/Ocultar la lista de enlaces simbólicos creados
Ocupación de espacio en disco 27,8 MB

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX  

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

dar-2.5.11-scripts.tar.gz

$ su 
# tar zxvf dar-2.5.11-scripts.tar.gz
# cd dar-2.5.11-scripts
# ./Desinstalar_dar-2.5.11

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su 
# tar zxvf dar-2.5.11-scripts.tar.gz
# cd dar-2.5.11-scripts
# ./Respaldar_dar-2.5.11

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su 
# cd /var/copibin/restaurar_copias
# ./Restaurar_dar-2.5.11



Editar el archivo de configuración personal de DAR

En este caso lo de personal siempre es referible al usuario root, que es el que realiza las copias de seguridad del sistema, o de directorios específicos del mismo, incluido el directorio personal del usuario normal. Abrimos con un editor de texto el archivo de configuración que hemos copiado a nuestro directorio de usuario root y añadimos los formatos de archivo que no serán comprimidos y los directorios del sistema cuyo contenido no será incluido en la copia de seguridad, pero que sí serán creados como vacíos cuando se restaure la copia de seguridad. A continuación pongo como ejemplo el mío, con el contenido modificado y reducido a lo básico.

Si queremos omitir el uso de este archivo de configuración desde la línea de comandos, basta añadir el parámetro -N al comando de ejecución de DAR, para que este archivo o el del sistema sean omitidos en el proceso de ejecución del programa. Si queremos utilizar un archivo de configuración alternativo a éste, o utilizar por defecto el del sistema, basta añadir el parámetro -B con la ruta al archivo de configuración específico a utilizar. Esto resulta muy interesante para la realización de copias de seguridad específicas de directorios.

# Formatos de archivo que no serán comprimidos porque ya están comprimidos
# Formatos de vídeo comprimidos.
-Z "*.mpg"
-Z "*.avi"
-Z "*.cr2"
-Z "*.vob"
-Z "*.mkv"
-Z "*.wmv"
-Z "*.flv"
-Z "*.swf"
-Z "*.mp4"
-Z "*.webm"

# Formatos de imagen comprimidos.
-Z "*.jpg"
-Z "*.jpeg"
-Z "*.png"
-Z "*.webp"

# Formatos de audio comprimidos
-Z "*.flac"

-Z "*.mp3"
-Z "*.ogg"
-Z "*.wma"

# Paquetes de binarios comprimidos
-Z "*.deb"
-Z "*.tgz"
-Z "*.tbz2"
-Z "*.txz"
-Z "*.rpm"
-Z "*.xpi"
-Z "*.run"
-Z "*.sis"
-Z "*.msi"

# Otros datos de compresión
-Z "*.gz"
-Z "*.Z"
-Z "*.bz2"
-Z "*.zip"
-Z "*.jar"
-Z "*.rar"
-Z "*.xz"
-Z "*.7z"
-Z "*.pdf"

# Archivos de dar
-Z "*.dar"

# Directorios cuyo contenido no será incluido en la copia de seguridad, pero sí serán creados
# cuando ésta se restaure. Básicamente, tenemos que incluir los directorios de puntos de montaje
# y los del sistema que son volátiles, tmp (si está montado con tmpfs), proc, sys y /dev/pts.
# En mi caso pongo el directorio home porque éste lo tengo en una partición diferente.

-P tmp
-P proc
-P sys
-P dev/pts
-P home
-P mnt/mageia
-P mnt/lmde
-P mnt/floppy
-P mnt/cdrom
-P mnt/cd-rw
-P mnt/pclinuxos
-P mnt/pendrive
-P mnt/debian
-P mnt/lmde
-P mnt/slackware
-P mnt/win_c
-P mnt/win_d
-P mnt/win_e
-P mnt/win_f 
-P mnt/win_g
-P mnt/win_h
-P mnt/win_i
-P mnt/win_j
-P mnt/win_k
-P mnt/win_l
-P mnt/win_m
-P mnt/win_n
-P mnt/win_o 
-P media/vcd0
-P media/vcd1
-P media/vcd2
-P media/vcd3
-P media/vcd4




Crear un script de copia de seguridad completa del sistema   Bloc de Notas

Primero creamos un script con todo el comando de ejecución completo para evitar tener que teclearlo cada vez que tengamos pensado hacer una copia completa de los datos de nuestro sistema. Abrimos un editor de texto y añadimos lo siguiente, teniendo en cuenta que lo deberemos de adaptar a las necesidades de cada uno, esto es sólo un ejemplo.

#!/bin/sh

dar -v -m 256 -zxz:6 -s 2G -D -R / -c /mnt/win_o/`date +"%d-%m-%G`_datos 

Explicación de los comandos

-v : Muestra más información en el proceso de creación de la copia de seguridad.

-m 256
: Le indicamos el tamaño mínimo a partir del cual los archivos serán comprimidos, en este caso sería 256KB, esto es completamente opcional.

-zxz:6 : Activa lo compresión en formato xz, con un nivel de compresión de 6. El nivel de compresión predefinido es de 9. Tener en cuenta que el aumento del nivel de compresión exige tener un equipo muy potente, ya que también aumenta el nivel de utilización de memoria y cpu, en los procesos de compresión y descompresión de la copia de seguridad. Con este nivel de compresión, 20 GB de datos de una partición XFS de sistema quedan reducidos a 6 GB con DAR.

-s 2G : El tamaño de las partes en el que será dividida la copia si su tamaño supera los 2 GB. Es recomendable siempre que el tamaño de las partes no supere nunca la memoría del sistema (RAM+swap), porque cuando vayamos a extraer la copia de seguridad, si las partes son de gran tamaño, pueden producirse errores en la extracción producidos por falta de recursos de memoria para la misma. Si esto se produjera, tendremos que crear un archivo adicional de memoria swap, por ejemplo 4 GB, para realizar el proceso con una cierta seguridad. Un ejemplo:

$ su
# dd if=/dev/zero of=/root/archivo-swap bs=1024 count=4194304
# mkswap /root/archivo-swap 4194304
# sync
# swapon /root/archivo-swap

Cuando terminemos de extraer la copia de seguridad, desactivamos y borramos el archivo creado.

# swapoff /root/archivo-swap
# rm -f /root/archivo-swap

-D : Crea los directorios vacíos que han sido excluidos de la copia para evitar tener que crearlos a mano en una posible restauración.

-R /: Le indicamos el directorio raíz a partir del cual la copia será restaurada, al ser una copia completa del sistema tenemos que indicar el directorio raíz del mismo: /

-c /mnt/win_o/`date +"%d-%m-%G`_datos : Es el comando de creación de la copia, ésta se creará con la fecha incrustada en el nombre de la copia resultante y en una partición de datos que tengo de Windows.

Guardamos el archivo con el nombre de respaldar_sistema en el directorio del root y le damos permisos de ejecución y lo ejecutamos,

$ su 
# chmod +x respaldar_sistema
# ./respaldar_sistema


 
Crear un script de copia de seguridad diferencial del sistema  Bloc de Notas

Cuando tengamos nuestra copia completa del sistema las siguientes que hagamos tendrán que ser diferenciales, es decir, sólo se añadirá lo que haya sido modificado desde la última copia. Para esto creamos otro script con el siguiente contenido:

#!/bin/sh

dar -v -m 256 -zxz:6 -y -s 2G -D -R / -c /mnt/win_o/`date +"%d-%m-%G`_datos_dif \
-A /mnt/win_o/24-04-2016_datos

Explicación de los comandos

-c /mnt/win_o/`date +"%d-%m-%G`_datos_dif: Creamos la copia diferencial en la misma partición pero renombrándola para saber que es una copia diferencial y no una copia completa.

-A /mnt/win_o/24-04-2016_datos : Le indicamos la ruta a DAR de la copia completa que utilizaremos como referencia para hacer la copia diferencial. Nunca añadir la extensión o el número de la copia, sólo su nombre, es decir, nada de puntos como se puede comprobar en el ejemplo. Si volvieramos a hacer una copia completa del sistema deberemos de cambiar la ruta a la nueva copia creada.

Guardamos el archivo con el nombre de respaldar_sistema_dif en el directorio del root y le damos permisos de ejecución y lo ejecutamos.

$ su 
# chmod +x respaldar_sistema_dif
# ./respaldar_sistema_dif



Restauración de la copia de seguridad y las diferenciales  Bloc de Notas  

Finalmente creamos un script de restauración de la copia utilizando como ejemplo el que viene en la documentación en español.

#!/bin/sh

if [ -n "$3" ]; then
CMD="$1"
INPUT="$2_datos"
FS_ROOT="$3"
$CMD -x "$INPUT" -w -R "$FS_ROOT"
for file in ${INPUT:0:8}*_dif*; do
$CMD -x "${file:0:15}" -w -R "$FS_ROOT"
done
echo "Todo hecho."
else
echo "No hay suficientes parámetros.

Uso: script ruta_dar base_completa_copia directorio

Donde ruta_dar es la ruta al binario dar, base_completa_copia
es la fecha en el formato'YYYY-MM-DD', y directorio es el lugar
donde usted pondra los datos restaurados, normalmente '/' cuando corre como root."
fi

Guardamos el archivo con el nombre de restaurar_sistema en el mismo sitio donde estén las copias de seguridad creadas,

$ su 
# chmod +x restaurar_sistema
# cp restaurar_sistema /mnt/win_o

Cuando queramos ejecutarlo lo hacemos de la siguiente manera:

$ su 
# ./restaurar_sistema /usr/bin/dar 24-04-2016 /

Explicación de los comandos

/usr/bin/dar : Le indicamos la ruta al binario dar.
24-04-2016 : Le indicamos la fecha de la copia que vamos a restaurar, siempre primero la copia completa y luego las diferenciales.
/ : La ruta del directorio raíz donde se restaurará la copia del sistema.

NOTA IMPORTANTE: En el caso de que no podamos acceder a nuestro sistema utilizaremos el binario estático dar_static para restaurar la copia de seguridad. Esto es perfectamente posible con un live-CD o el mismo CD de instalación. En caso de corrupción de datos y necesidad de formatear la partición es conveniente hacer una copia del binario estático dar_static, cuando hayamos formateado la partición copiamos el binario dar_static a la misma y desde un live-CD montamos esta partición y la partición donde tengamos la copia de seguridad. Ejecutamos este script variando la ruta al binario y la ruta del directorio raíz que debe de concordar con la ruta a la partición que hemos formateado, un ejemplo:

$ su 
# ./restaurar_sistema /mnt/hda1/dar_static 24-04-2016 /mnt/hda1

Explicación de los comandos 

/mnt/hda1/dar_static : Le indicamos la ruta al binario dar_static que he copiado a la partición formateada.
24-04-2016 : Le indicamos la fecha de la copia que vamos a restaurar, siempre primero la copia completa y luego las diferenciales.
/mnt/hda1 : La ruta del directorio raíz donde se restaurará la copia del sistema, en este caso la partición que hemos formateado.

Todo esto desde un live-CD, normalmente éstos montan de forma automática las particiones que detecten en el inicio, por lo que no incluyo los comandos de montaje de las particiones.


 
Gestionar las copias de seguridad con Dar Manager  

Con dar_manager podemos gestionar las copias de seguridad que tengamos de nuestro sistema, listar los archivos que contengan y extraer de forma selectiva los que deseemos. Antes que nada creamos una base de datos en el directorio del usuario root.

$ su 
# dar_manager -C ~/mis_copias.dmd

Añadimos las copias completas y diferenciales que tengamos, en este caso sólo añado la principal, esto es sólo un ejemplo

# dar_manager -A /mnt/win_o/24-04-2016_datos -B ~/mis_copias.dmd

Ahora si ejecutamos el siguiente comando nos dirá las copias que hay en la base de datos,

[root@localhost ~]# dar_manager -l -B ~/mis_copias.dmd


dar path        :
dar options     :
database version: 4


archive #   |    path      |    basename
------------+--------------+---------------
        1       /mnt/win_o      24-04-2016_datos

Para saber si tenemos un determinado archivo o directorio en las copias que tengamos en la base de datos ejecutamos el siguiente comando (en este caso le pregunto si contiene el directorio /usr/local):

[root@localhost ~]# dar_manager -f usr/local -B ~/mis_copias.dmd
Archive number |  Data                   | status ||  EA                     | status
---------------+-------------------------+--------++-------------------------+----------
        1       Sat Jan 16 23:28:08 2016  saved                                 absent


Y me indica el número de copia (Archive) y el tiempo de modificación del directorio (Data) que contiene la copia. Si quisiera extraerlo ejecutaría el siguiente comando:

# dar_manager -B ~/mis_copias.dmd -N -e "-R /" -r usr/local

Explicación de los comandos

-N : Este parámetro omite las opciones de DAR que estén almacenadas en la base de datos, y evita que se produzcan errores cuando extraemos los archivos con dar_manager, utilizando un directorio diferente a la raíz desde la cual se ha creado el archivo de copia de seguridad.

-e "-R /" : La opción -e se utiliza para pasarle parámetros de forma directa a DAR, también se puede utilizar la opción -o pero no es funcional con la extracción selectiva de directorios y archivos. Los parámetros tienen que ir siempre entrecomillados con comillas o comillas simples. En este caso la opción a pasarle es -R / que establece el directorio raíz a partir del cual se extraerán los archivos. Si no añadimos esto y no nos encontramos en el directorio raíz principal del sistema, los archivos se extraerán en el directorio en curso en el que nos encontremos en la línea de comandos. Si nos encontramos en el directorio raíz, pues no hay que añadir esta opción.

Si queremos sobreescribir los archivos existentes en el sistema, sin que DAR nos advierta antes, añadimos la opción -w al parámetro anterior, nos quedaría así: -e "-R / -w". Si hemos creado la copia de seguridad, por ejemplo, desde la raíz del directorio home, para respaldar nuestro directorio personal de usuario, la opción sería -e "-R /home -w"

 -r usr/local : Esta opción indica la ruta (siempre sin la barra inicial) al directorio a extraer. Podemos añadir tantas rutas a directorios o archivos como queramos, siempre divididas por un espacio.

Si no queremos extraer los directorios y archivos con dar_manager podemos utilizar DAR de forma directa. Un comando equivalente al anterior sería este:

# dar -R / -x /mnt/win_o/24-04-2016_datos -v -w -g usr/local

El problema de usar DAR de forma directa, es que la extracción selectiva de directorios y archivos requiere siempre de la opción -g delante de cada una de las rutas que deseemos extraer, y el comando se nos puede hacer eterno.

Cuando queramos borrar una copia de seguridad de la base de datos ejecutamos el siguiente comando:

# dar_manager -D 1 -B ~/mis_copias.dmd

1 es el número referenciado de la copia dentro de la base de datos. Por último recordar que si modificamos el tamaño de la partición tendremos que volver a hacer una copia completa de la misma.



Enlaces  


http://dar.linux.free.fr >> La web de DAR.

http://dargui.sourceforge.net >> La web de DarGUI, interfaz gráfica para DAR.

http://kdar.sourceforge.net >> La web de Kdar, interfaz gráfica para DAR.

https://peckto.github.io/gdar >> La web de Gdar, un explorador y extractor de archivos creados por DAR.



Foro Galería Blog


Actualizado el 23-06-2017

Copias de Seguridad - Disk ARchive

Compresores de Archivos - P7zipEditores de Texto - Leafpad