Restauración completa del sistema Linux

20

Estoy familiarizado con el uso de rsync para hacer una copia de seguridad de varios archivos de mi sistema, pero cuál es la mejor manera de restaurar completamente una máquina.

Lo que he intentado en el pasado es:

  1. Hacer un formato básico / reinstalar desde los discos de instalación de Fedora
  2. Asegúrese de que la red esté habilitada
  3. Copie todo desde la copia de seguridad rsync sobre la parte superior del sistema recién instalado

De esta manera funciona, pero no creo que todos los paquetes que se instalaron funcionen 100% después.

Quiero poder restaurar mi sistema con la mínima cantidad de esfuerzo y que todo funcione igual que en el momento en que se realizó la copia de seguridad. Además, si es posible, instálelo en otras máquinas y tenga dos máquinas con los mismos paquetes y datos.

Simon Foster
fuente
Cuando dice que desea instalar en otras máquinas, ¿se refiere a otras 'máquinas / idénticas o más como una computadora de escritorio y una computadora portátil?
Ichorus
el hardware sería diferente pero querría los mismos paquetes de software en ambos
Simon Foster,

Respuestas:

17

Esto es lo que he hecho (esto supone un solo disco, en / dev / sda)

  • use dd para respaldar el MBR y la tabla de particiones: "dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout"

  • use rsync para copiar todo con algo como: "rsync -axvPH --numeric-ids ..."

Al restaurar hago esto:

  • arranque la máquina de destino con sysrescuecd , normalmente tendré el archivo 'sda.layout' en una memoria USB.

  • restaure la tabla de partición / MBR con dd: "dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda"

  • Use partprobe (gracias al comentarista Mark) para que el núcleo vuelva a leer la tabla de particiones.

  • Montar todas las diversas particiones en / restaurar /. Hago que los puntos de montaje sean idénticos en restaurar, por lo que si tengo / boot, / var en mi fuente, termino con / restore / boot, / restore / var, etc.

  • use rsync para restaurar todo.

kbyrd
fuente
3
He hecho esto varias veces y tengo la ventaja de usar los comandos estándar de la CLI de Linux. Uso rsnapshot, un script perl alrededor de rsync para hacer copias de seguridad en un servidor central. Luego, vuelva a sincronizar todo después de arrancar desde sysrescuecd y hacer la tabla de particiones. Por cierto, "partprobe" volverá a leer la tabla de particiones
Mark Porter
De acuerdo, esto puede verse como un truco vil, pero como puede hacer que el núcleo vuelva a leer la tabla de particiones emitiendo un sysctl () como lo hace fdisk, también podría tener fdisk, que a diferencia de partprobe siempre está ahí en mi experiencia, hacer it: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug
Gracias por las sugerencias de todos, sabía que debía haber una mejor solución. Probaré estas sugerencias y veré qué funciona mejor para mí.
Simon Foster
3
¡No olvides contar con dd! "dd bs = 512 if = / dev / sda of = / backups / sda.layout count = 1" y "dd bs = 512 if = / path / to / sda.layout of = / dev / sda count = 1"
Steven
@ Steven: ¡Mierda! Gracias por la captura. ¿Puedo votar un comentario?
kbyrd 05 de
6

Nunca clono sistemas por completo. Nunca se sabe qué puede cambiar, y su imagen clonada del sistema ya no está actualizada en el momento en que ocurre un cambio. La mejor manera de hacerlo es establecer un procedimiento que le permita producir sistemas funcionalmente idénticos. Una posibilidad es algo como Kickstart, o AutoYaST o herramientas similares. Mantenga buenas copias de seguridad de su configuración e idealmente use un sistema de administración de configuración como Bcfg2, Puppet o CFEngine para configurar todo en lugar de hacerlo a mano. Luego, cuando necesita crear un nuevo sistema que sea similar a otro que tiene, o recrear un sistema existente, es un procedimiento simple y bien definido.

Kamil Kisiel
fuente
3

Tomaría más esfuerzo por adelantado, pero Kickstart y Revisor le permiten personalizar una instalación y usarla en otras máquinas. Puede incluir versiones personalizadas de sus archivos de configuración.

También puede considerar mantener su directorio de inicio en una partición separada. Puede dejar esa partición sola mientras realiza una instalación limpia en otra partición.

dkaylor
fuente
2

Tome una copia del cd de recuperación del sistema y, después de su instalación mínima inicial, inicie desde ella, monte y realice un chroot en su disco, y luego realice el rsync. Una vez finalizado, es posible que deba ejecutar update-grub para que se inicie desde el dispositivo de arranque y el núcleo correctos.

pgs
fuente
2

Siempre he pensado que la forma Gentoo de instalar un nuevo sistema (desde una copia de seguridad o no) fue la mejor debido a su simplicidad.

  1. Cree un sistema de trabajo mínimo.
  2. Cargue el sistema de trabajo como un disco duro en un livecd.
  3. Alquilar el sistema de archivos y guardar en algún lugar
  4. Cargue el sistema de destino con un livecd.
  5. Prepare el disco duro de destino y móntelo.
  6. Untar al disco duro montado.
  7. Entra chroot.
  8. Configure el gestor de arranque y otras cosas que dependen del sistema.
  9. Reiniciar y listo.
  10. Instale nuevo software / copie carpetas de usuario / agregue otros archivos según sea necesario.
andrewd18
fuente
2

Prueba clonezilla live cd. Puede iniciar una sesión en vivo e imágenes de su máquina sin tener que instalar nada. Luego tiene la opción de almacenar la copia de la imagen en un recurso compartido de red o máquina remota, etc.

TimK
fuente
0

Si es exactamente la misma máquina, solo la usaría ddpara crear una imagen de disco, y luego la reimportaría según sea necesario (posiblemente cambiando algunas configuraciones después, si corresponde).

Si está cambiando el hardware, he tenido éxito al crear un tarball o completar la copia de seguridad rsync de la raíz del sistema de archivos. No estoy seguro de por qué necesitaría una instalación completa primero: siempre que realice una copia de seguridad completa, la instalación básica de Fedora no debería ser un requisito previo.

Tim
fuente
0

Su procedimiento puede causar numerosos problemas y debe evitarse.

Hay dos formas principales recomendadas de hacerlo, y una tercera si solo está tratando de construir un entorno de desarrollo.

Imagen

Si el hardware al que va a restaurar TO será el mismo, o lo suficientemente similar, use una herramienta de imagen de disco para hacer una copia de todo el disco duro o la matriz. Cuando desee restaurar, simplemente vuelva a crear una imagen de las máquinas en cuestión con esta imagen. Si crea imágenes en varias máquinas, tenga en cuenta que necesitará actualizar cualquier configuración específica de la máquina en los otros dispositivos (nombre de host, dirección IP estática, etc.) para que no entren en conflicto entre sí.

Para hacer la imagen real, recomendaría cualquier herramienta o producto que pueda clonar discos duros.

Configuración / copias de seguridad del directorio de inicio

En su máquina principal, haga una copia de seguridad regularmente (con el método que desee) cualquiera de los siguientes directorios (u otros) que necesite:

/ home - Todos los ajustes personales del usuario, documentos y archivos
/ etc. - configuraciones
/ opt - software especial no instalado a través del administrador de paquetes
/ usr / local - software especial no instalado a través del administrador de paquetes
/ var - logs y tal

Al restaurar, reinstale el sistema operativo en las máquinas en cuestión y luego copie cada uno de estos (o solo los archivos relevantes) en su ubicación correcta.

Máquinas virtuales con instantáneas

Cree una máquina virtual en VMWare (o lo que prefiera). Cuando esté configurado como lo desea, cree una instantánea. Esta instantánea se puede restaurar fácilmente en cualquier número de máquinas virtuales nuevas o existentes.

En general, solo debe hacer una copia de seguridad de los datos y las configuraciones (sin embargo, las define) El SO y el software pueden reconstruirse trivialmente en cualquier momento: solo su propio contenido es valioso. Si esta configuración es para el desarrollo, y necesita garantizar un entorno idéntico (en lugar de simplemente hacer que las cosas funcionen nuevamente), las instantáneas en una máquina virtual son realmente su mejor opción.

Las imágenes son la solución de fuerza bruta. Si puede, solo haga una copia de seguridad de sus datos y no se preocupe por el sistema operativo. Intentar restaurarlo por completo es pedir problemas.

Si puede aclarar cuál es su intención final aquí, puedo proporcionar una solución más detallada.

Rym
fuente
0

Como usted dice "el hardware será diferente", SystemImager puede ser muy útil.

Es solo un montón de scripts de envoltura alrededor de PXE y Rsync. Por lo tanto, la "copia de seguridad" que crea es solo una estructura de directorio completa de su servidor Linux respaldado. Puede "cd" en este directorio y cambiar las cosas a medida que se alimenta. (SystemImager gestiona el cambio de la configuración de red por sí solo cuando empuja la imagen).

Puede iniciar sesión en su servidor respaldado y ejecutar yum o apt para instalar el software antes de sacar la imagen.

Editar: puede echar un vistazo al script SI que crea particiones / volúmenes lógicos y modificarlo de acuerdo con el tamaño del disco de las máquinas de destino. También puede agregar / eliminar módulos del kernel.

Ahora no
fuente
0

He tenido muy buena suerte con Mondo Rescue. Básicamente, realiza una copia de seguridad de todos sus archivos y particiones en un CD de arranque para su uso posterior. Puede manejar cambios en particiones y unidades.

http://www.mondorescue.org/

JD Frias
fuente
0
  • La forma más segura es clonar los discos completos o al menos las particiones relevantes y restaurarlos usando un Live CD.

  • Otro método más eficiente en cuanto al espacio es usar dump (xfsdump para XFS), pero en este caso tendrá que recrear (formatear) las particiones a mano. No olvides crearlos con los mismos parámetros, especialmente UUID y LABEL.

  • También puede usar tar con el --xattrs parámetro para guardar los atributos extendidos de cada archivo.

Cristian Ciupitu
fuente
1
Rsync moderno en Linux tiene -X y -A para atributos extendidos y ACL respectivamente.
kbyrd
0

partimage y partclone (partes de Clonezilla) son utilidades útiles para crear imágenes completas del sistema.

Como identificó, las imágenes completas del sistema no son necesariamente portátiles: generalmente debido a los nombres de los dispositivos.

Puede ser tan simple como reinstalar GRUB (preferiblemente en una partición separada / de arranque) y el MBR después de la creación de imágenes (con, por ejemplo, un LiveCD).

Otro enfoque es utilizar las herramientas de gestión de configuración para definir políticas que se aplican a una imagen de línea de base (como los cuadros base de Vagrant); y separe las copias de seguridad de los datos en bloques y / o almacenamiento de objetos (EBS / S3, Openstack Block Storage / Openstack Object Storage)

Wes Turner
fuente