Двоичное (бинарное) обновление FreeBSD с помощью freebsd-update (9.0 -> 9.1 -> 9.2)

#0. Синопсис

Мир меняется, операционные системы обновляются, FreeBSD в этом - не исключение. В данной статье описывается процесс двоичного (бинарного) обновления операционной системы FreeBSD 9.0 RELEASE до версии 9.1 RELEASE (по такому же принципу можно потом обновить 9.1 до 9.2). Бинарное обновление процесс хоть и простой, но довольно длительный и опасный, и в случае ошибки можно потерять загрузку ОС. Бинарное обновление производится только в случае использования системой дефолтного ядра GENERIC. Если же ядро кастомное (перенастраивалось), ни в коем случае нельзя производить бинарное обновление, т.к. проблемы повсплывают почти со 100%-ной вероятностью, сразу их не заметите, потратите несколько дней на локализацию и исправление проблемы. Т.е. при кастомном ядре должна производиться только классическая сборка мира и ядра из исходного кода, с предварительным обновлением оного.

#1. Бинарное обновление FreeBSD

Приступим. Для начала убедимся, что ядро действительно дефолтное - GENERIC.

# uname -isor
FreeBSD 9.0-RELEASE GENERIC

Ядро подходит, но прежде чем устанавливать новую бинарную версию ядра и мира, необходимо накатить последние багфиксы текущей версии операционной системы. Скачиваем последние патчи для текущей версии.

# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching public key from update5.freebsd.org... done.
Fetching metadata signature for 9.0-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 246 patches.....10....20....30 .... 240... done.
Applying patches... done.
Fetching 1 files... done.

The following files will be added as part of updating to 9.0-RELEASE-p7:
/usr/src/crypto/openssl/ssl/s3_cbc.c

The following files will be updated as part of updating to 9.0-RELEASE-p7:
/boot/kernel/kernel
/boot/kernel/kernel.symbols
...

...
^[[6~WARNING: FreeBSD 9.0-RELEASE HAS PASSED ITS END-OF-LIFE DATE.
Any security issues discovered after Mon Apr  1 04:00:00 MSK 2013
will not have been corrected.

Утилита сообщила, что текущая версия FreeBSD (9.0) по вопросам безопасности не поддерживается с 1 апреля 2013 года. Устанавливаем скачанные патчи и перезагружаемся.

# freebsd-update install
Installing updates... done.
# shutdown -r now
Shutdown NOW!

После загрузки, рядом с версией системы мы должны увидеть суффикс »-pX», который указывает версию патчей безопасности.

# uname -isor
FreeBSD 9.0-RELEASE-p7 GENERIC

Актуальные патчи для текущей системы установлены, можно приступать к обновлению самой системы.

# freebsd-update upgrade -r 9.1-RELEASE

Начнётся довольно длительный процесс, в ходе которого мы должны будем ответить на несколько вопросов и увидим информативный вывод по замене бинарных файлов системы. Утилита может попросить внести изменения в файлы вручную, если вывод по обновлению того или иного конфига будет неоднозначный.

Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 9.0-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic src/src world/base world/lib32

The following components of FreeBSD do not seem to be installed:
world/doc world/games

Does this look reasonable (y/n)? y

Fetching metadata signature for 9.1-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 9.0-RELEASE for merging... done.
Preparing to download files... done.
Fetching 37713 patches.....10....20....30....40....50....done
...
...
Applying patches... done.
Fetching 2120 files... done.
Attempting to automatically merge changes in files... done.

The following changes, which occurred between FreeBSD 9.0-RELEASE and
FreeBSD 9.1-RELEASE have been merged into /etc/defaults/periodic.conf:
--- current version
+++ new version
@@ -11,11 +11,11 @@
 # are changed and new features are added.
 #
 # For a more detailed explanation of all the periodic.conf variables, please
 # refer to the periodic.conf(5) manual page.
 #
-# $FreeBSD: release/9.0.0/etc/defaults/periodic.conf 220020 2011-03-26 03:01:48Z dougb $
+# $FreeBSD: release/9.1.0/etc/defaults/periodic.conf 231721 2012-02-15 01:52:59Z gjb $
 #
 
 # What files override these defaults ?
 periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local"
 
@@ -94,10 +94,11 @@
 daily_status_disks_enable="YES"				# Check disk status
 daily_status_disks_df_flags="-l -h"		# df(1) flags for check
 
 # 404.status-zfs
 daily_status_zfs_enable="NO"				# Check ZFS
+daily_status_zfs_zpool_list_enable="YES"		# List ZFS pools
 
 # 405.status-ata_raid
 daily_status_ata_raid_enable="NO"			# Check ATA raid status
 
 # 406.status-gmirror
@@ -145,10 +146,16 @@
 
 # 500.queuerun
 daily_queuerun_enable="YES"				# Run mail queue
 daily_submit_queuerun="YES"				# Also submit queue
 
+# 800.scrub-zfs
+daily_scrub_zfs_enable="NO"
+daily_scrub_zfs_pools=""			# empty string selects all pools
+daily_scrub_zfs_default_threshold="35"		# days between scrubs
+#daily_scrub_zfs_${poolname}_threshold="35"	# pool specific threshold
+
 # 999.local
 daily_local="/etc/daily.local"				# Local scripts
 
 
 # Security options
Does this look reasonable (y/n)? y

The following changes, which occurred between FreeBSD 9.0-RELEASE and
FreeBSD 9.1-RELEASE have been merged into /etc/newsyslog.conf:
--- current version
+++ new version
@@ -1,7 +1,7 @@
 # configuration file for newsyslog
-# $FreeBSD: release/9.0.0/etc/newsyslog.conf 221382 2011-05-03 12:22:46Z ru $
+# $FreeBSD: release/9.1.0/etc/newsyslog.conf 234675 2012-04-25 07:09:02Z glebius $
 #
 # Entries which do not specify the '/pid_file' field will cause the
 # syslogd process to be signalled when that log file is rotated.  This
 # action is only appropriate for log files which are written to by the
 # syslogd process (ie, files listed in /etc/syslog.conf).  If there
@@ -17,19 +17,19 @@
 # future, these defaults may change to more conservative ones.
 #
 # logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
 /var/log/all.log			600  7	   *	@T00  J
 /var/log/amd.log			644  7	   100	*     J
-/var/log/auth.log			600  7     100  *     JC
+/var/log/auth.log			600  7     100  @0101T JC
 /var/log/console.log			600  5	   100	*     J
 /var/log/cron				600  3	   100	*     JC
 /var/log/daily.log			640  7	   *	@T00  JN
 /var/log/debug.log			600  7     100  *     JC
 /var/log/kerberos.log			600  7	   100	*     J
 /var/log/lpd-errs			644  7	   100	*     JC
 /var/log/maillog			640  7	   *	@T00  JC
-/var/log/messages			644  5	   100	*     JC
+/var/log/messages			644  5	   100	@0101T JC
 /var/log/monthly.log			640  12	   *	$M1D0 JN
 /var/log/pflog				600  3	   100	*     JB    /var/run/pflogd.pid
 /var/log/ppp.log	root:network	640  3	   100	*     JC
 /var/log/security			600  10	   100	*     JC
 /var/log/sendmail.st			640  10	   *	168   B
Does this look reasonable (y/n)? y

The following files are affected by updates, but no changes have
been downloaded because the files have been modified locally:
/.cshrc
/root/.cshrc

The following files will be removed as part of updating to 9.1-RELEASE-p24:
/boot/kernel/iw_cxgb.ko
/boot/kernel/iw_cxgb.ko.symbols
...
...
The following files will be added as part of updating to 9.1-RELEASE-p24:
/boot/kernel/drm2.ko
/boot/kernel/drm2.ko.symbols
...
...
/usr/src/sys/arm/arm/genassym.c
/usr/src/sys/arm/arm/identcpu.c
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".

Обновления скачаны и настроены, устанавливаем.

# freebsd-update install
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

Первым запуском freebsd-update install применяются обновления к ядру и его модулям. Следуем указаниям утилиты, перезагружаем систему.

# shutdown -r now
Shutdown NOW!

Система должна загрузиться с новым ядром. Далее нужно вновь запустить freebsd-update install. Утилита определит этап обновления и начнёт удалять старые объектные файлов и совместно используемые библиотеки.

# freebsd-update install
Installing updates... done.

После чего нужно снова перезагрузиться.

# shutdown -r now

И снова выполнить freebsd-update install и перезагрузиться, это позволит понять, что все этапы процесса обновления завершены.

# freebsd-update install
Installing updates... done.
# shutdown -r now

Готово, можно проверять текущую версию операционной системы.

# uname -isor
FreeBSD 9.1-RELEASE-p22 GENERIC
FreeBSD 9.2-RELEASE-p15 GENERIC

Система теперь имеет версию 9.1-RELEASE и версию патчей безопасности p22. После бинарного обновления совершенно не лишним будет проверить логи, конфиги и корректную работу сервисов. Как и было указано в начале статьи, таким же образом производится обновление операционной системы с версии FreeBSD 9.1-RELEASE до версии FreeBSD 9.2-RELEASE. На этом всё, успехов в обновлении!

freebsd/dvoichnoe_binarnoe_obnovlenie_freebsd_s_pomoschju_freebsd-update_9.0_-_9.1.txt · Последние изменения: 2015/05/14 19:33 — vav
Наверх
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0