Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 18 Jan 24 18:16:22, всего сообщений: 10753
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 9035 из 10753 ===================================== RU.UNIX.BSD =
От   : Eugene Grosbein                  2:5006/1           30 Jun 19 22:01:41
Кому : All                                                 30 Jun 19 22:01:41
Тема : Re: Как правильно готовить apcupsd
FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+fe8f46cb
На   : area://RU.UNIX.BSD?msgid=grosbein.net+edd4f14a
= Кодировка сообщения определена как: IBM866 =================================
==============================================================================
12 мая 2019, воскресенье, в 15:27 NOVT, Eugene Grosbein написал(а):

EG> 12 мая 2019, воскресенье, в 08:49 NOVT, Semen Panevin написал(а):

SP>>  Thursday May 02 2019 22:22, Victor Sudakov писал Semen Panevin:
VS>>> Да, а чем обеспечивается, что данный скрипт запускается всегда
VS>>> последним перед halt?
SP>>>> depend() {
SP>>>>         need mount-ro
SP>>>> }
SP>> Вот это гарантирует, что скрипт запустится после mount-ro скрипта, т.е. после
SP>> перемонтирования дисков в ro.
EG> Да, а ядро FreeBSD не перемонтирует файловые системы в ro, а отмонтирует.

Кстати сказать, уже три года как в FreeBSD есть фича "re-root",
вызываемая при помощи reboot -r, которая после полного завершения
работы системы и отмонтирования всех файловых систем
вместо горячей перезагрузки заставляет ядро заново смонтировать
указанную в vfs.root.mountfrom файловую систему в качестве рута
и начать загрузку с неё.

Можно создать md-диск, положить на него мелкую UFS с нужными
бинарниками (даже необязательно статическими), включая /sbin/init
и нужный код в качестве скрипта /etc/rc, который и продолжит
выполнение работы с UPS уже после штатного завершения работы системы.

Я эту фичу использовал, когда писал удалённую перепрошивку
роутера FreeBSD/MIPS32 с 8 мегабайтами встроенного флеша
и 128M памяти: скрипт умел проверить размер загружаемого образа (fetch -s),
загрузить образ в новосозданный RAM-диск нужного размера
(с добавкой под /sbin/init и остальное), скопировать туда нужные
скрипты и бинари, сделать kenv vfs.root.mountfrom=ufs:$md
и reboot -r. После чего init запускает /etc/rc с md-диска,
а тот может потом сказать init-у выполнить обычный горячий ребут
командой kill -INT 1. Работало: перепрошивало флеш и стартовало
с него новое ядро и систему.

Для работы с UPS должно быть ещё проще.
Пример такого скрипта, который автоматически вычисляет
необходимый размер md-диска и загружает на него указанный
список бинарей (и сам добавляет туда нужные либы) и скриптов:

http://www.grosbein.net/freebsd/mips/upgrade/upgrade

Eugene
--
Hароду - чтоб не вздумал бунтовать! -
Мы тоже разрешили воровать.
Пусть лучше сам ворует потихоньку,
Чем с воровскою властью враждовать!..
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.109611 секунды