¿Hay un "punto de restauración" en Linux (Debian / Ubuntu) como Windows?

17

Estoy trabajando directamente en una máquina virtual Ubuntu (VM). Algunas actualizaciones (como kernel) estaban disponibles en el administrador de actualizaciones.

Si no estuviera usando una VM, no la actualizaría ya que es un riesgo romper algo. Como se trata de una máquina virtual, puede crear una instantánea o exportar un dispositivo y restaurarlo si algo sale mal.

Supongamos que no estoy usando una VM con una instalación Debian / Ubuntu. ¿Existe un enfoque de instalación-restauración que no dependa de una configuración de VM para restaurar su sistema exactamente antes de una actualización (como un "Punto de restauración" en Windows), que sea fácil de restaurar como un dispositivo VM?

(No estoy buscando "imágenes fantasma" o algo así (Norton Ghost, Clonezilla, etc.), estoy buscando algo integrado en el sistema Linux)

Alguien todavía te usa MS-DOS
fuente
3
Sé que esto está fuera de tema, así que lo agrego como comentario, pero OpenSolaris puede hacer una instantánea de todo el sistema de archivos ZFS y restaurarlo más tarde. Tampoco ocupa mucho espacio en disco debido a la deduplicación. De hecho, la forma estándar de realizar actualizaciones importantes es crear una nueva instantánea de FS e instalar las actualizaciones en ella. Si funciona, puede eliminar el anterior. Si no, puede volver al que estaba funcionando.
AndrejaKo
3
@AndrejaKo: +1 Sin embargo, es un "clon" (una instantánea grabable; las instantáneas normales son de solo lectura) y el hecho de que no necesita mucho espacio no tiene nada que ver con la deduplicación, sino con la forma en que se manejan las instantáneas y los clones. en los sistemas de archivos COW. Es decir, también obtiene el mismo ahorro de espacio en disco en grupos sin deduplicación.
knweiss
@knweiss Sí, eso es correcto. ¡Lo acabo de buscar!
AndrejaKo

Respuestas:

15

No hay ninguna característica similar integrada en ninguna distribución de Linux que yo sepa. Hay varias razones por las que sería mucho menos útil que para Windows.

  • Principalmente, las distribuciones de Linux son mucho más serias que Microsoft sobre actualizaciones estables solo para corregir errores importantes y con cambios mínimos. Por ejemplo, con Ubuntu y Debian, puede elegir recibir solo actualizaciones de seguridad ( -security), o solo actualizaciones de seguridad y correcciones de errores importantes ( -updates).

  • Las actualizaciones del kernel son las más riesgosas, debido a la posibilidad de que un cambio aparentemente beneficioso cause problemas en una configuración de hardware específica. Esta es la razón por la cual la mayoría de las distribuciones permiten instalar más de una versión del kernel al mismo tiempo; Por ejemplo, en el momento en que escribo esto, Ubuntu 10.04 tiene tres versiones de kernel disponibles: 2.6.32.21.22desde la versión original, 2.6.32.22.23con actualizaciones de seguridad y también 2.6.32.23.24con actualizaciones que no son de seguridad. Si la versión ... 24 causa un problema en su computadora, puede reiniciar desde ... 23 (e incluso marcar la ... 24 como prohibida de instalar, al menos si está usando aptitude).

  • No hay registro: todos los datos de configuración están en archivos (en la /etcjerarquía), que pueden restaurarse fácilmente individualmente si algo sale mal. Incluso entonces, las actualizaciones a la versión estable rara vez afectan los archivos que se encuentran debajo /etc.

  • Si está instalando paquetes de otra fuente que no sea una versión estable, entonces es posible que desee conservar copias de versiones anteriores de paquetes y realizar copias de seguridad de sus archivos de configuración. Aquí hay algunos consejos sobre esto en Debian y Ubuntu.

    • Los paquetes descargados se guardan en /var/cache/apt/archives. Si tiene espacio en el disco, simplemente no elimine los archivos de paquetes antiguos hasta que haya confirmado que la versión más nueva funciona para usted.
    • Muchas fuentes conservan versiones anteriores, por lo que puede degradar fácilmente (ya sea descargando e instalando una versión anterior de forma manual o utilizando las preferencias de apt). Para Debian, mire snapshot.debian.org .
    • Hay una manera muy fácil de configurar el control de versiones /etc: instale el etckeeperpaquete y actívelo con el comando etckeeper init. (Lo hago, pero no porque me preocupe que las actualizaciones rompan algo, sino porque me preocupa que mis cambios rompan algo).
Gilles 'SO- deja de ser malvado'
fuente
Sí, simplemente no hay comparación entre la estabilidad de Windows y Debian / stable. Incluso si algo se rompe (casi siempre debido a un error evidente del usuario), hay muchas herramientas para depurar y solucionar problemas.
liori
2
"Las actualizaciones del kernel son las más riesgosas". Por eso guardo una copia de Knoppix junto a mi computadora. 5 y no 6.
anfetamachine
También puede encontrar útil [rsnapshot] (rsnapshot.org), una utilidad de instantánea del sistema de archivos basada en rsync .
Pablo A
5

No es necesario, ya que el administrador de paquetes se encarga de qué archivo es de qué paquete y también puede revertir la actualización o instalación del paquete.

mbq
fuente
2
pero si el paquete se ha roto algo durante el reinicio, hacer una reversión podría ser difícil (especialmente relacionado con las revisiones del kernel)
Warren
1
Es por eso que generalmente se mantiene el kernel anterior y se puede seleccionar para arrancar en grub.
mbq
1
No estoy de acuerdo. Sería muy útil poder cambiar entre la actualización x del sistema operativo y la actualización x + 1 (la diferencia podría incluir mucho más que un paquete de kernel) con un simple reinicio. Esto es posible con OpenSolaris.
knweiss
Todo es posible con Solaris, excepto encontrar controladores estables ;-)
mbq
5

Podría intentar usar una herramienta como etckeeper . Esta herramienta simplemente mantiene los archivos de configuración de todo el sistema en un repositorio de control de versiones y facilita la reversión y la aplicación nuevamente de cualquier cambio.

Pero, para ser honesto, nunca necesité revertir ningún cambio que surgiera de las actualizaciones en mis sistemas debian / stable. Lo uso para corregir errores que hice manualmente.

liori
fuente
Uso etckeeper, pero en realidad me resulta más útil ver una línea de tiempo de cambios que retroceder (por supuesto, obtienes ambas habilidades). Usar el servidor web incorporado (por ejemplo, hg, git, bzr, etc.) suele ser el más fácil:sudo hg serve -R /etc
3

TMK, la función de restauración de Windows solo revierte los cambios en el registro y algunos directorios críticos. Linux no tiene esto.

Puede probar el enfoque manual con copias de seguridad. Simplemente haga una copia de seguridad de su directorio de inicio y la lista de programas de Synaptic y úselo como punto de restauración.

TheLQ
fuente
3

Tenga en cuenta que Ubuntu en particular (pero probablemente también Debian) no eliminará los paquetes de kernel antiguos al instalar las actualizaciones, y puede configurar el gestor de arranque para presentar una lista de núcleos para elegir al iniciar.

Esto crea automáticamente "puntos de restauración", solo para el núcleo, porque puede elegir la versión anterior si la nueva causa problemas. Hasta donde yo sé, Windows no tiene nada como esto para sus actualizaciones del núcleo. (Y especialmente para los usuarios domésticos, no me gustaría entender ayudar a diagnosticar y corregir un sistema que no se puede iniciar debido a una actualización del núcleo).


fuente
3

Hay una herramienta llamada Timeshift. ( http://www.teejeetech.in/p/timeshift.html ) No lo he usado, pero parece prometedor y he escuchado cosas buenas de los usuarios. Las instantáneas están diseñadas para evitar la duplicación de datos. Y no te asustes con un sitio web de aspecto oscuro. :)

usuario31389
fuente
2

Si utiliza el Administrador de volumen lógico para administrar el contenido de sus discos duros, lo obtendrá de forma gratuita en cierta medida mediante instantáneas. Para citar el gran CÓMO : "Un ejemplo es tomar una instantánea de un volumen, montar la instantánea e intentar un programa experimental que cambie los archivos en ese volumen. Si no le gusta lo que hizo, puede desmontar la instantánea, eliminarla, y monte el sistema de archivos original en su lugar ".

vwegert
fuente
Me gustaría señalar que la partición de disco sugerida en Ubuntu 12.04+ usa LVM, por lo que esta es realmente la mejor sugerencia.
kevinf
1

Dependiendo de su tecnología VM, puede detener / suspender / pausar la VM, volcar el núcleo y copiar la imagen de la VM. Si falló, simplemente restaure el original.

Si es directo en un volumen lógico, puede crear una instantánea LVM basada en el LV original. Pruebe una actualización y, si funciona, vuelva a hacerlo en la máquina virtual original (consulte lvcreate (8) -s)

O usando el alquitrán viejo dorado (1). Crea una bola de alquitrán completa del espacio de usuario, restaura los archivos y elimina los archivos que no estaban en la bola de alquitrán original.

bclermont
fuente
De la pregunta: "¿Existe un enfoque de instalación-restauración que no depende de una configuración de VM"?
Ben Voigt
1

En este momento, Linux realmente no ofrece tal característica, aunque sería muy útil.

Sin embargo, el artículo Actualizaciones irrompibles, ZFS y Apt describe la función apt-clone de la distribución de almacenamiento Nexenta basada en Linux y sugiere ...

También se está creando un nuevo sistema de archivos en parte como respuesta a ZFS, llamado BTRFS, que tendrá muchas de las ventajas de ZFS y podrá habilitar "actualizaciones irrompibles" para distribuciones promedio de Linux como Ubuntu en el futuro también.

En mi humilde opinión, primero necesitamos un sistema de archivos utilizable Copy-On-Write (COW) para Linux antes de que dicha característica se pueda implementar en los instaladores / actualizadores del sistema de una manera sensata.

Aviso: aunque Nexenta está basado en Linux, no utiliza el kernel de Linux. Utiliza el núcleo OpenSolaris y ZFS.

Knweiss
fuente
No me refiero a elegir tus liendres, pero basado en Linux sin kernel de Linux es un poco un oxímoron.
Seamus Connor