---
title: "Инструкция по обновлению до FreeBSD 15.1-RELEASE"
sidenav: download
---

:releaseCurrent: 15.1-RELEASE
:releasePrev: 15.0-RELEASE
:releasePrevLegacy: 14.4-RELEASE
:localRel: 15.1

include::shared/ru/urls.adoc[]

= Инструкция по обновлению до FreeBSD {releaseCurrent}

== Аннотация

В данной заметке подробно описан порядок действий по обновлению существующих установок до FreeBSD {releaseCurrent}.

[[upgrade]]
== Введение

В этом документе объясняется порядок обновления существующих установок {releasePrevLegacy} или {releasePrev} до {releaseCurrent}.
Системы, работающие под управлением более старых релизов, должны быть поэтапно обновлены до одного из этих релизов перед выполнением данного обновления.

Перед обновлением операционной системы создайте резервные копии _всех_ файловых систем, ознакомьтесь с link:../errata[последними исправлениями] для получения информации об известных проблемах и способах их обхода, а также с link:../relnotes[примечаниями к выпуску] для получения сведений о существенных изменениях и несовместимостях.

Порядок выполнения бинарного обновления зависит от метода, используемого для управления операционной системой.
Чтобы определить это, выполните следующую команду:

[source,shell]
----
pkg which /usr/bin/uname
----

Если отображается сообщение `/usr/bin/uname was not installed by a package`, см. раздел <<upgrade-fu>> ниже.

Если отображается имя пакета, например `FreeBSD-runtime-15.0`, см. раздел <<upgrade-pkg>> ниже.

[[upgrade-source]
Если выполняется обновление из исходных кодов, обратитесь к link:{handbook}cutting-edge/#makeworld[главе Руководства FreeBSD, посвящённой обновлению FreeBSD из исходных кодов].

[[upgrade-fu]]
== Обновление с использованием дистрибутивных наборов

Системы, развёрнутые с использованием дистрибутивных наборов, обновляются с помощью man:freebsd-update[8].
Системы, работающие под управлением {releasePrevLegacy} или {releasePrev}, могут быть обновлены следующим образом:

. **Установите все ещё не установленные исправления**:
+
Всегда загружайте и устанавливайте все ожидающие патчи для текущей системы перед обновлением:
+
[source,shell]
----
freebsd-update fetch
freebsd-update install
----
+
. **Обновите ядро**
+
Загрузите и установите новое ядро:
+
[source,shell,subs="verbatim,attributes"]
----
freebsd-update upgrade -r {localRel}-RELEASE
freebsd-update install
----
+
В процессе man:freebsd-update[8] может запросить помощь в объединении конфигурационных файлов.
+
. **Перезагрузитесь в новое ядро**
+
Перезагрузитесь в новое ядро перед установкой нового пользовательского окружения:
+
[source,shell]
----
shutdown -r +10min "Rebooting for a kernel upgrade"
----
+
. **Обновите пользовательское окружение**
+
После перезагрузки снова выполните man:freebsd-update[8] для установки новых компонентов пользовательского окружения:
+
[source,shell]
----
freebsd-update install
----
+
man:freebsd-update[8] может предложить пересобрать или переустановить всё стороннее программное обеспечение из-за изменений в системных библиотеках.
Следуйте этим инструкциям по мере необходимости.
+
[TIP]
====
При обновлении с {releasePrevLegacy}, если переустановка всего стороннего программного обеспечения невозможна, установите пакет package:misc/compat14x[].
====
+
. **Удалите старые файлы**
+
Снова выполните man:freebsd-update[8] для удаления устаревших файлов базовой системы:
+
[source,shell]
----
freebsd-update install
----
+
. **Обновите загрузчик**
+
Чтобы определить, какой загрузчик необходимо обновить в вашей системе, выполните следующую команду:
+
[source,shell]
----
sysctl machdep.bootmethod
----
+
Продолжите в разделе <<upgrade-loader-uefi>> или <<upgrade-loader-bios>> ниже.

[[upgrade-pkg]]
== Обновление с использованием пакетов базовой системы

Системы, развёрнутые с пакетной базовой системой, обновляются с помощью man:pkg[8].
Системы, работающие под управлением {releasePrevLegacy} или {releasePrev}, могут быть обновлены следующим образом:

. **Создайте снимок текущей установки**
+
Создайте рекурсивный снимок работающей системы с именем, содержащим текущую дату:
+
[source,shell,subs="verbatim,attributes"]
----
bectl create -r pre-{localRel}
----
+
Загрузчик предоставляет меню для загрузки с этого снимка, если потребуется откат обновления.
+
. **Обновите менеджер пакетов**
+
[source,shell]
----
pkg upgrade -yr FreeBSD-ports pkg
----
+
. **Обновите базовую систему**
+
[source,shell]
----
pkg -oABI=FreeBSD:15:$(uname -p) -oOSVERSION=1501000 upgrade -r FreeBSD-base
----
+
После обновления просмотрите все сообщения, выведенные `pkg(8)`.
Некоторые пакеты могут требовать дополнительных шагов по настройке, например выполнения `service <name> setup`.
Следуйте этим инструкциям по мере необходимости.
+
. **Обновите сторонние модули ядра**
+
Сторонние модули ядра также должны быть обновлены вместе с базовой системой:
+
[source,shell]
----
pkg upgrade -r FreeBSD-ports-kmods
----
+
Если установка не использует их, man:pkg[8] ответит соответствующим образом.
+
. **Проверьте наличие неудачных обновлений конфигурации**
+
Если man:pkg[8] не может объединить обновления конфигурационных файлов, он установит новую конфигурацию как файл с расширением `.pkgnew`.
Проверьте их наличие с помощью следующей команды:
+
[source,shell]
----
find /etc /usr/local/etc -name '*.pkgnew' -ls
----
+
Если они существуют, сравните их с развёрнутой версией (например, `diff /etc/rc.conf /etc/rc.conf.pkgnew`) и объедините все необходимые изменения.
+
. **Обновите загрузчик**:
+
Чтобы определить, какой загрузчик необходимо обновить в вашей системе, выполните следующую команду:
+
[source,shell]
----
sysctl machdep.bootmethod
----
+
Продолжите в разделе <<upgrade-loader-uefi>> или <<upgrade-loader-bios>> ниже.

[[upgrade-loader-uefi]]
== Обновление загрузчика UEFI

[start=7]
. **Определение ESP**
+
Определите системный раздел EFI (ESP), в котором находится загрузчик, выполнив следующую команду:
+
[source,shell]
----
efibootmgr -v
----
+
Вывод должен быть похож на следующий:
+
[source,shell]
----
 +Boot0000* FreeBSD HD(1,GPT,f859c46d-19ee-4e40-8975-3ad1ab00ac09,0x800,0x82000)/File(\EFI\freebsd\loader.efi)
                       nda0p1:/EFI/freebsd/loader.efi (null)
----
+
Активная запись загрузчика помечена символом плюс (+).
Отметьте расположение загрузчика, в данном случае `EFI/freebsd/loader.efi` на `nda0p1`, хотя в системах оно может различаться.
+
. **Монтирование ESP**
+
Если ESP ещё не смонтирован в [.filename]#/boot/efi#, смонтируйте раздел, указанный в выводе `efibootmgr`:
+
[source,shell]
----
mount_msdosfs /dev/nda0p1 /boot/efi
----
+
. **Установка загрузчика**
+
На системах AMD64 обновите загрузчик в настроенном и стандартном расположениях, выполнив следующие команды:
+
[source,shell]
----
cp /boot/loader.efi /boot/efi/efi/freebsd/loader.efi
cp /boot/loader.efi /boot/efi/efi/boot/bootx64.efi
----
+
Обратите внимание, что в некоторых установках может отсутствовать `freebsd/loader.efi`.
+
Для систем AArch64 вместо этого выполните следующие команды:
+
[source,shell]
----
cp /boot/loader.efi /boot/efi/efi/freebsd/loader.efi
cp /boot/loader.efi /boot/efi/efi/boot/bootaa64.efi
----
+
Для других архитектур действия различаются соответственно; при необходимости обратитесь к man:loader.efi[8].
+
. **Завершение**
+
Перезагрузитесь после завершения обновления до FreeBSD {releaseCurrent}:
+
[source,shell]
----
shutdown -r +10min "Rebooting for a system upgrade"
----

[[upgrade-loader-bios]]
== Обновление загрузчика BIOS

Для систем, загружающихся через BIOS или UEFI CSM и использующих схему разделов GPT, обновление начального загрузчика является необязательным, если только не обновляется корневой пул ZFS (что не рекомендуется).
Обновление возможно только в том случае, если раздел `freebsd-boot` имеет размер не менее 180 КБ; теперь стандартным является 512 КБ.

[start=7]
. **Определение раздела freebsd-boot**
+
Определите имя устройства и индекс раздела `freebsd-boot`, выполнив следующую команду:
+
[source,shell]
----
gpart show
----
+
Вывод должен быть похож на следующий:
+
[.screen]
----
 =>       34  246162605  ada0  GPT  (224G)
          34       1024     1  freebsd-boot  (512K)
----
+
Отметьте имя (`ada`) и индекс (`1`) раздела `freebsd-boot`.
+
. **Обновление загрузчика**
+
При использовании ZFS в BIOS обновите загрузочный код, выполнив следующую команду:
+
[source,shell]
----
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
----
+
Где `1` — это индекс раздела `freebsd-boot`.
+
Если загрузка выполняется с массива хранения, повторите этот шаг для всех дисков в пуле.
+
При использовании UFS в BIOS вместо этого выполните следующую команду:
+
[source,shell]
----
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
----
+
. **Завершение**
+
Перезагрузитесь после завершения обновления до FreeBSD {releaseCurrent}:
+
[source,shell]
----
shutdown -r now
----

//
// The FreeBSD Russian Documentation Project
//
// Original EN revision (22.06.2026): 01bfc34871146e3de912efc4afe374393d265417
//
