прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение dm07 » 2017-01-02 21:20:17

Всем привет. Нужна помощь. Есть вопрос в корректной загрузке системы после сборки мира и установки нового ядра.
Исходные данные:
1. Система 9.2-RELEASE. Обновляюсь на 10 Stable. Все работает на удаленной площадке. Моя задача: обновить мир и не поломать загрузку системы.
2. Загрузка происходит с zfs:

Код: Выделить всё

# cat /boot/loader.conf | grep zfs
zfs_load="YES"
vfs.root.mountfrom="zfs:tank/root"
vfs.zfs.prefetch_disable=0
vfs.zfs.txg.write_limit_override=1073741824
vfs.zfs_scrub_limit=8
#vfs.zfs.arc="512M"
vfs.zfs.arc_max="6144M"
#vfs.zfs.vdev.cache.size="10M"
vfs.zfs.arc_min="1024M"
vfs.zfs.txg.timeout="1"
vfs.zfs.write_limit_override="0"
vfs.zfs.zil_disable="0"

Код: Выделить всё

# zfs list
NAME            USED  AVAIL  REFER  MOUNTPOINT
tank           1.01T   785G    31K  none
tank/root      1.01T   785G   735G  /
tank/root/tmp  1.41G   785G  1.41G  /tmp
tank/root/var   298G   785G   298G  /var

Код: Выделить всё

# zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 103G in 2h48m with 0 errors on Mon Jul 21 03:13:47 2014
config:

        NAME           STATE     READ WRITE CKSUM
        tank           ONLINE       0     0     0
          mirror-0     ONLINE       0     0     0
            gpt/disk0  ONLINE       0     0     0
            gpt/disk1  ONLINE       0     0     0
3. Собрал мир на базе ветки 10 stable, пересобрал и установил ядро:
make buildworld
make buildkernel KERNCONF=CUSTOM
make installkernel KERNCONF=CUSTOM

4. Сейчас система загружена и еще не перегружалась. В /usr/src/updating вижу:

Код: Выделить всё

1.) recompile and reinstall the ZFS boot loader and boot block
        (this is part of "make buildworld" and "make installworld")
Насколько понимаю, этот шаг делается автоматически. Дальше:

Код: Выделить всё

        2.) update the ZFS boot block on your boot drive

        The following example updates the ZFS boot block on the first
        partition (freebsd-boot) of a GPT partitioned drive ad0:
        "gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
У меня:

Код: Выделить всё

# gpart show
=>        34  3907029101  ada0  GPT  (1.8T)
          34         128     1  freebsd-boot  (64k)
         162    25165824     2  freebsd-swap  (12G)
    25165986  3881863149     3  freebsd-zfs  (1.8T)

=>        34  3907029101  ada1  GPT  (1.8T)
          34         128     1  freebsd-boot  (64k)
         162    25165824     2  freebsd-swap  (12G)
    25165986  3881863149     3  freebsd-zfs  (1.8T)
Вопрос в том, что нужно ли мне выполнять gpart bootcode -p /boot/gptzfsboot -i 1 ada0/ada1 сейчас, до перезагрузки, когда система еще не перегружалась или после того, как я в однопользовательском режиме буду выполнять установку мира?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение guest » 2017-01-02 23:28:00

dm07 писал(а):Всем привет. Нужна помощь. Есть вопрос в корректной загрузке системы после сборки мира и установки нового ядра.
Исходные данные:
1. Система 9.2-RELEASE. Обновляюсь на 10 Stable. Все работает на удаленной площадке. Моя задача: обновить мир и не поломать загрузку системы.
2. Загрузка происходит с zfs:

Код: Выделить всё

# gpart show
=>        34  3907029101  ada0  GPT  (1.8T)
          34         128     1  freebsd-boot  (64k)
         162    25165824     2  freebsd-swap  (12G)
    25165986  3881863149     3  freebsd-zfs  (1.8T)

=>        34  3907029101  ada1  GPT  (1.8T)
          34         128     1  freebsd-boot  (64k)
         162    25165824     2  freebsd-swap  (12G)
    25165986  3881863149     3  freebsd-zfs  (1.8T)
Вопрос в том, что нужно ли мне выполнять gpart bootcode -p /boot/gptzfsboot -i 1 ada0/ada1 сейчас, до перезагрузки, когда система еще не перегружалась или после того, как я в однопользовательском режиме буду выполнять установку мира?
1. на кой х...н обновляться до 10-Stable? (10.3R)
2. зачем перегружаться в однопользовательский режим, если все можно сделать
в multiuser mode:

Код: Выделить всё

#  1.  `cd /usr/src'       (or to the directory containing your source tree).
#  2.  `make buildworld'
#  3.  `make buildkernel KERNCONF=YOUR_KERNEL_HERE'     (default is GENERIC).
#  4.  `make installkernel KERNCONF=YOUR_KERNEL_HERE'   (default is GENERIC).
#       [steps 3. & 4. can be combined by using the "kernel" target]
пункт 5 можно исключить

Код: Выделить всё

#  5.  `reboot'        (in single user mode: boot -s from the loader prompt).
продолжаем:

Код: Выделить всё

#  6.  `mergemaster -p'
#  7.  `make installworld'
#  8.  `mergemaster'            (you may wish to use -i, along with -U or -F).
#  9.  `make delete-old'
# 10.  `reboot'
# 11.  `make delete-old-libs' (in case no 3rd party program uses them anymore)
перед п.10 (перед тем как перезагрузиться):
# gpart bootcode -p /boot/gptzfsboot -i 1 ada0
# gpart bootcode -p /boot/gptzfsboot -i 1 ada1

у Вас же zroot как зеркало на партициях ada0p3 и ada1p3, ну и загрузчик на обоих обновить.

Пункт 11 не выполнять, иначе у Вас собранный софт/порты в 9.2, на 10'ой ветке рухнет
без старых библиотек.
Нужно установить compat9x и только потом грохнуть delete-old-libs.
Потом потихоньку пересобрать весь софт из портов.

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение dm07 » 2017-01-02 23:35:29

undefined писал(а): 1. на кой х...н обновляться до 10-Stable? (10.3R)
До 11 stable ветки обновиться? Или обновиться до старой 9.3 Stable во избежании гемора с пересборкой портов?
undefined писал(а): перед п.10 (перед тем как перезагрузиться):
# gpart bootcode -p /boot/gptzfsboot -i 1 ada0
# gpart bootcode -p /boot/gptzfsboot -i 1 ada1
Спасибо за этот совет. Я на всякий случай хочу смоделировать ситуацию на виртуальной машине, т.к. сервер рабочий и хочу максимально все протестировать.

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение snorlov » 2017-01-03 11:25:56

Раз вы из исходников обновляетесь, то почитайте UPDATING, особенно ту часть, в которой описано обновление с минорных веток, конечно лучше обновляться не до stable , а до 10.3R... Кстати, если уж так побаиваетесь на тему загрузчика, то ведь новый загрузчик уже будет скомпилирован после make buildworld, правда он будет лежать не в /boot

guest
проходил мимо

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение guest » 2017-01-03 12:18:06

dm07 писал(а):
undefined писал(а): 1. на кой х...н обновляться до 10-Stable? (10.3R)
До 11 stable ветки обновиться? Или обновиться до старой 9.3 Stable во избежании гемора с пересборкой портов?
sorry, откуда такая мания - обновляться до Stable вместо RELEASE?

Обновляться до определенной версии Stable, имеет смысл только когда Вы регулярно
следите за развитием системы и знаете когда и что "сломали" в Stable и когда починили.

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

9.3 - EOL
10.3 - April 30, 2018
undefined писал(а):Я на всякий случай хочу смоделировать ситуацию на виртуальной машине, т.к. сервер рабочий и хочу максимально все протестировать.
правильное решение

Практика показывает, лучше на второй машине установить свежую систему, собрать и настроить ВСЕ
что нужно и затем этот диск установить на боевой сервер и за несколько переключений - все
донастроить и "докрутить"

Сервер: <-> boot [hddold 9.3] / [hddnew 10.3] - reboot в новую систему 10.3, на XY минут
- что-то не работает, подстраивать. Не хватает времени - снова reboot в 9.3
И так за несколько раз. Как один из вариантов.

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение dm07 » 2017-01-03 13:41:32

snorlov писал(а): конечно лучше обновляться не до stable , а до 10.3R
undefined писал(а): откуда такая мания - обновляться до Stable вместо RELEASE
Я всегда обновлялся до Stable на рабочих серверах и проблем никогда не было. В случае Release вы наверное имели в виду, что лучше будет выкачать и собраться на Releng ветке (ибо это тот же самый Release плюс текущие патчи безопасности).

guest
проходил мимо

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение guest » 2017-01-03 14:05:52

dm07 писал(а):
snorlov писал(а): конечно лучше обновляться не до stable , а до 10.3R
undefined писал(а): откуда такая мания - обновляться до Stable вместо RELEASE
Я всегда обновлялся до Stable на рабочих серверах и проблем никогда не было.
это говорит лишь о том что Вам везло.
В случае Release вы наверное имели в виду, что лучше будет выкачать и собраться на Releng ветке (ибо это тот же самый Release плюс текущие патчи безопасности).
разумеется, только выкачивать лучше RELEASE и обновляться до него, а уж потом RELENG и пересборка,
это надежней.

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение dm07 » 2017-01-03 15:00:38

undefined писал(а): разумеется, только выкачивать лучше RELEASE и обновляться до него, а уж потом RELENG и пересборка,
это надежней.
Спасибо!

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение f_andrey » 2017-01-04 3:36:33

Кстати, раз всё одно корень на ZFS, очень рекомендую посмотреть в сторону beadm адски удобная штука, в том числе для относительно безопасного и быстрого апдейта ;)
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

lazhu
сержант
Сообщения: 254
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

прописать загрузчик для FreeBSD на zfs root после обновления с 9.2 release на 10 stable

Непрочитанное сообщение lazhu » 2017-01-09 16:28:43

f_andrey писал(а):Кстати, раз всё одно корень на ZFS, очень рекомендую посмотреть в сторону beadm адски удобная штука, в том числе для относительно безопасного и быстрого апдейта ;)
ТС, послушайте умных людей ^^^
Рекомендую не то, что "посмотреть в сторону", а устанавливать в самую наипервейшую очередь после установки свежей системы и сразу делать снэпшот.