FreeBSD 12 выбор ядра при загрузке

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Dimzon
рядовой
Сообщения: 13
Зарегистрирован: 2011-12-23 3:28:42

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Dimzon » 2019-01-21 9:27:07

Здравствуйте всем!
Уважаемые специалисты, помогите пожалуйста разобраться с САБЖем? Проблема в следующем - ставлю начисто систему (FreeBSD 12.0)
При установке не ставлю дерево портов и дерево исходников. Делаю, "portsnap fetch extract" Затем устанавливаю subversion. Устанавливаю
исходники "svn co svn://svn.freebsd.org/base/releng/12.0 /usr/src". "svn info /usr/src" показывает r342321. Опосля копирую GENERIC, переименовываю в кастомный конфиг, собираю и ставлю мир и кастомное ядро (разумеется KERNCONF=MYKERNEL). Так так система свежая, то никаких make.conf нет и в помине. Все собирается и ставится без ошибок. В конце система радостно рапортует, что MYKERNEL установлено. Перезагружаюсь.
При перезагрузке, в меню загрузки видно только одно ядро - что уже настораживает, ну ладно... Система прогружается, "uname -a" показывает GENERIC, при чём r341666. И всё! Не могу загрузить или выбрать при загрузке своё скомпилённое ядро! После установки системы (самый первый запуск) на диске повился каталог /bootpool, а вместо /boot появился линк на /bootpool/boot После компиляции и установки ядра и мира в /bootpool/boot появился каталог kernel.old и kernel время которых совпадает с временем установки. Ну думаю ладно - сервер пока не продакшн, проведу варварский эксперимент, удалю каталог /bootpool. Полностью! От слова "совсем". И заодно линк /boot. Перезагружаюсь.
Система, на удивление прогрузилась, разумеется с ядром GENERIC (r341666). Делаю поиск по диску всех папок с файлом kernel, нахожу, удаляю ВСЕ папки содержащие этот файл. Зачищаю папку /usr/obj/*, снова вычищаю /usr/src/. Кроме этих, kernel нашёлся ещё в /usr/lib/debug/boot/ - в топку! Повторяю поиск - файла kernel на диске больше нет. Перезагружаюсь - система прогрузилась! uname -a - GENERIC r341666.
Подскажите пожалуйста - откуда оно берёт ядро? И как её заставить грузиться с другим ядром? Сломал голову! Выручайте!

Хостинговая компания 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/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35139
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Alex Keda » 2019-01-21 9:55:43

нихрена не понял =(
Убей их всех! Бог потом рассортирует...

Dimzon
рядовой
Сообщения: 13
Зарегистрирован: 2011-12-23 3:28:42

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Dimzon » 2019-01-21 10:14:14

Наверное слишком много буков - хотел подробней ситуацию описать. Если вкратце - то система не видит скомпиленного и установленного ядра. Всегда грузит свой GENERIC, который устанавливается при первоначальной инсталляции системы. Если с пула zroot удалить ВСЕ каталоги, содержащие файл kernel - система всё равно загружается с этим самым первым ядром. Где она его берёт? Откуда она его грузит?
Если установить ядро с опцией INSTKERNNAME=mykernel, затем сделать nextboot -k mykernel и перезагрузиться - всё равно система загрузится с GENERIC

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

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение guest » 2019-01-21 13:47:12

Про bootpool не ведаю откуда взялся, а загрузчик в 12.x поменялся + lua...

# man loader.conf

/boot/loader.conf[.local]
переменные:

kernel="..."
kernels="kernel kernel.new krenel.old"
kernels_autodetect="yes"

судя по всему реализована схема автообнаружения kernel, они должны находится внутри /boot/
переменная kernels - позволяет задать для меню несколько ядер (не забыть про "s" в окончании),
а переменную kernel можно оставить пустую в случае нескольких ядер.
Возможно автодетект можно отключить: kernels_autodetect="no" и для одного ядра задать kernel="kernel" (последнее)

Ну и загрузчик с lua продолжают пилить-усовершенствовать и исправлять ошибки.

ps. Могу выяснить что там с /bootpool, но для этого нужно время: установить в виртуалке, пересобрать и установить МИР
и посмотреть что к чему, в том числе и скрипты bsdinstall - как там оформляются by default пулы zfs и загрузочный пул.
Если память не изменяет, /bootpool - это была придумка в одном из руководств GELI выложенных в Internet.
И да, загрузчик изменили, теперь /boot и для UFS и для ZFS и для GELI вроде един и без доп.телодвижений.

pps. Если вдруг загрузочный пул изменился, то вероятно в gpart нужно вместо /boot использовать /bootpool, смотреть
например через bectl - man bectl:
# bectl list

Dimzon
рядовой
Сообщения: 13
Зарегистрирован: 2011-12-23 3:28:42

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Dimzon » 2019-01-21 14:11:15

Да курил я man loader.conf - ничего не помогает. Сколько бы ядер не было установлено в /boot - в меню загрузки, в списке ядер всегда одно ядро. ВСЕГДА! Беда в том, что я не понимаю, что происходит - если /boot вообще убить, (удалить, стереть) - то ничего не меняется! Опять в списке одно ядро, оно загружается, но откуда - не понятно! Директории /boot нету - а оно грузится! И загружается ВСЕГДА одно и то же ядро - GENERIC

Dimzon
рядовой
Сообщения: 13
Зарегистрирован: 2011-12-23 3:28:42

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Dimzon » 2019-01-21 14:30:32

Я вообще запутался... В общем удаляю каталог /boot затем перезагружаюсь. Во время появления меню загрузки, ESC-ом прерываю загрузку и выпадаю в командную строку. Набираю "ls" вижу - /boot. Набираю "ls boot" - вижу содержимое каталога boot, в нём есть каталог kernel. Кто нибудь может объяснить, что это происходит? Что это за каталог? Где он находится? И как в него установить своё ядро? После загрузки системы каталога в томе zroot /boot по-прежнему нету. Ясумащасойду

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

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение snorlov » 2019-01-21 14:50:46

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

Dimzon
рядовой
Сообщения: 13
Зарегистрирован: 2011-12-23 3:28:42

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Dimzon » 2019-01-21 15:01:23

А что значит в загрузочный пул? Как его на чистую воду вывести? Вы правы, ставлю на ZFS - делаю всё обычным инсталятором, никаких танцев с бубнами. При чём даже если перед инсталляцией переинициализировать RAID массив - всё равно происходит всё тоже самое

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

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение snorlov » 2019-01-21 15:06:26

Если я прав то

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

man zpool
man zfs
и смотрите что у вас с пулами а также что куда монтируется...

Dimzon
рядовой
Сообщения: 13
Зарегистрирован: 2011-12-23 3:28:42

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Dimzon » 2019-01-22 2:22:27

С пулами у меня всё норм - у меня два RAID массива. На один - ставлю систему, он становится zroot. На втором - пользовательские данные, базы данных и файловая помойка с бэкапами, его я подключаю, как work, в свою точку монтирования.
После загрузки видны все пулы, "zpool list" показывает два пула - собственно zroot и work. Ни каких дополнительных "загрузочных" пулов не видно.

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

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение snorlov » 2019-01-22 10:59:29

приведите zfs list

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

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение guest » 2019-01-22 18:27:15

установил 12.0
установил subversion
скачал sources releng/12.0
собрал систему, ядро, установил
reboot
имею два ядра в меню загрузки и никаких проблем, загружаю любое: kernel или kernel.old
- как и полагается, они разные.
не имею никаких bootpool

Вы о чем-то умолчали.

Мимо крокодиль
проходил мимо

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Мимо крокодиль » 2019-01-23 13:10:53

Чудяса, вот бы раньше так, под рутом снес boot, да ваще все снес, а фря хоп финт ушами и :crazy: . С ZFS близко знакомы?

Мимо крокодиль
проходил мимо

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Мимо крокодиль » 2019-01-23 13:17:48

А, Вы, уточните у автора - куда(на что) именно он её ставит, как разметку делает....мож тоже иммортальBSD получится.

Мимо крокодиль
проходил мимо

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение Мимо крокодиль » 2019-01-23 13:23:07

RAID ...

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

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение guest » 2019-01-23 14:45:31

А, Вы, уточните у автора - куда(на что) именно он её ставит, как разметку делает....мож тоже иммортальBSD получится.
а оно мне надо: заниматься мазохизмом в стиле

- задавайте Ваши вопросы
- ждите вопроса
- ждите ответа

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

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение snorlov » 2019-01-23 18:15:13

почему я начал задавать про zfs и пулы, да просто на каких то бетах у меня при инсталляции по дефолту, получалось, что появлялось 2-а пула, причем тот который был загрузочным в дальнейшем отключался, а вместо него был другой, и на том и на другом /boot существовал, в другом случае, были 2-е boot директории в разных zfs, причем они тоже в процессе перезагрузки перемонтировались, в результате ядро как поставилось generic по умолчанию так с ним все время стартовало, хотя система честно компилировала и ставила custom-ное, лень было разбираться,загрузился с диска, дальше в шелл и ручками...

мимо крокодиль
проходил мимо

FreeBSD 12 выбор ядра при загрузке

Непрочитанное сообщение мимо крокодиль » 2019-01-23 21:48:18

а оно мне надо: заниматься мазохизмом в стиле

- задавайте Ваши вопросы
- ждите вопроса
- ждите ответа
Я хз, Ви, таки отписались ведь.