En mi anterior entrada he descrito como instalar FreeBSD 9 sobre ZFS con soporte para beadm; ahora pretendo mostrar las ventajas de esta configuración a la hora de afrontar tareas tan comprometidas -y necesarias- como son las actualizaciones de SO.
Como punto de partida, tenemos un sistema bajo FreeBSD 9 en el que se ha generado un snapshot con beadm nada mas concluir la instalación.
La versión inicial que tenemos es:
root@morsa:/root # uname -a
FreeBSD morsa 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UT
C 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
En FreeBSD hay dos rutas para actualizar el S.O; con svn o CTM se puede actualizar los fuentes de /usr/src y después compilar el kernel y el userland, o bien, emplear el comando freebsd-update que actualiza los binarios y es el método que voy a mostrar.
freebsd-update permite realizar actualizaciones de versión mayores o menores, solo con el kernel GENERIC, no con los personalizados. También permite parchear FreeBSD.
Para actualizar el sistema, primero hay que descargar la actualización:
root@morsa:/root # freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 1 mirrors found..........................................
Fetching metadata signature for 9.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Preparing to download files...
00....110....120
The following files will be updated as part of updating to 9.1-RELEASE-p4:Una vez concluida la descarga, actualizamos el sistema:
/boot/kernel/kernel
/boot/kernel/kernel.symbols
/boot/kernel/linker.hints
/boot/kernel/nfsd.ko
/boot/kernel/nfsd.ko.symbols
/lib/libc.so.7
/lib/libcrypto.so.6
/rescue/
/rescue/atacontrol
/rescue/atmconfig
root@morsa:/root # freebsd-update installReiniciamos el servidor:
Installing updates... done
root@morsa:/root # shutdown -r nowAhora, tenemos FreeBSD 9 actualizado:
root@morsa:/root # uname -aEn este punto, realizamos un snapshot para tener un punto de retorno consistente.
FreeBSD morsa 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
root@morsa:/root # beadm create 91_30062013@update_RELEASE-p4
Created successfullyFinalmente listamos los snapshots que hemos realizado.
root@morsa:/root # beadm list -s
BE/Dataset/Snapshot Active Mountpoint Space CreatedA partir de este punto, si fuera preciso deshacer los cambios y retroceder a un punto anterior confiable tenemos dos opciones:
91_30062013
fbsdzpool1/ROOT/91_30062013 NR / 466.7M 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/usr - /usr 435.6M 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/usr/home - /usr/home 144.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/usr/ports - /usr/ports 1.4G 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/usr/ports/distfiles - /usr/ports/distfiles 1.7M 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/usr/ports/packages - /usr/ports/packages 144.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/usr/src - /usr/src 511.9M 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var - /var 692.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/crash - /var/crash 148.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/db - /var/db 278.2M 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/db/pkg - /var/db/pkg 280.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/empty - /var/empty 144.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/log - /var/log 416.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/mail - /var/mail 152.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/run - /var/run 448.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013/var/tmp - /var/tmp 356.0K 2013-06-30 14:39
fbsdzpool1/ROOT/91_30062013@intall_r243825 - - 71.7M 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/usr@intall_r243825 - - 78.6M 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/usr/home@intall_r243825 - - 0.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/usr/ports@intall_r243825 - - 8.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/usr/ports/distfiles@intall_r243825 - - 8.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/usr/ports/packages@intall_r243825 - - 0.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/usr/src@intall_r243825 - - 1.9M 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var@intall_r243825 - - 124.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/crash@intall_r243825 - - 0.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/db@intall_r243825 - - 212.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/db/pkg@intall_r243825 - - 8.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/empty@intall_r243825 - - 0.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/log@intall_r243825 - - 108.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/mail@intall_r243825 - - 8.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/run@intall_r243825 - - 184.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013/var/tmp@intall_r243825 - - 100.0K 2013-06-30 16:00
fbsdzpool1/ROOT/91_30062013@update_RELEASE-p4 - - 84.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/usr@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/usr/home@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/usr/ports@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/usr/ports/distfiles@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/usr/ports/packages@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/usr/src@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/crash@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/db@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/db/pkg@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/empty@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/log@update_RELEASE-p4 - - 84.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/mail@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/run@update_RELEASE-p4 - - 0.0K 2013-07-03 08:49
fbsdzpool1/ROOT/91_30062013/var/tmp@update_RELEASE-p4 - - 100.0K 2013-07-03 08:49
freebsd-update rollback: Este comando tiene la opción de deshacer los cambios aplicados, dejando el sistema en el estado anterior a la aplicación de la actualización. En este caso con ejecutar este comando el sistema quedaría restaurado a la versión
FreeBSD 9.1-RELEASE #0 r243825.
beadm create/activate: Con beadm se puede restaurar todo el entorno de Arranque a un punto anterior arbitrariamente definido. Para revertir la versión a FreeBSD 9.1-RELEASE #0 r243825 Ejecutaríamos :
# beadm create -e 91_30062013@intall_r243825 91_04072013La diferencia entre ambos métodos estriba en la especificidad del primero, que revierte el S.O - y solo el S.O- a su estado previo.
# beadm activate 91_04072013
# shutdown -r now
Por contra, en el caso del segundo método el punto de restauración está arbitrariamente definido en el momento de la creación del snapshot y no solo se revierte los binarios de FreeBSD sino los sistema de ficheros completos, donde está instalado el S.O.
El segundo método es más directo, evita problemas con los ficheros de configuración, que puedan haberse modificado con mergemaster, y posibles cambios en el estado de los paquetes y ports que podamos haber realizado.
Hola, comparti este post, si lo queres postear me avisas y lo borro.
ResponderEliminarExcelente Blog!! Hace dos dias instale FreeBSD.
Saludos, y gracias!!