Всякий раз, когда я устанавливаю OpenBSD в VirtualBox, мне нужно установить количество процессоров до установки, так как изменение количества позже не сделает новые ядра видимыми. Есть ли команда, которую я могу запустить, чтобы сбросить это количество и повторно проверить?
решение1
По умолчанию OpenBSD устанавливает два ядра: bsd.sp
и bsd.mp
. Первое для однопроцессорных ( sp
) машин, второе для многопроцессорных ( mp
). Установщик выбирает, какое из них более подходит, и устанавливает его как /bsd
, которое затем будет загружено по умолчанию. Другое также будет установлено (как /bsd.sp
или /bsd.mp
), поэтому оно будет доступно, но не будет загружено по умолчанию.
Если у вас был только один ЦП при установке OpenBSD, он обнаружит вашу виртуальную машину как sp
машину, переименует ее /bsd.sp
в /bsd
, чтобы она загружалась по умолчанию, и оставит mp
ядро как /bsd.mp
. Если вы действительно хотите убедиться, что есть что, strings
покажет вам:
# strings /bsd.mp | grep ^OpenBSD
...
OpenBSD 6.9-current (GENERIC.MP) #12: Mon May 10 14:33:52 MDT 2021
# strings /bsd | grep ^OpenBSD
...
OpenBSD 6.9-current (GENERIC) #12: Mon May 10 14:22:32 MDT 2021
Таким образом, ванильное многопроцессорное ядро будет названо GENERIC.MP
, а однопроцессорное ядро будет названо просто GENERIC
. Вы можете увидеть, какое из них вы сейчас используете, используя sysctl kern.osversion
.
Если вы хотите загрузить другое ядро, просто введите его в командной строке загрузки:
boot> boot /bsd.mp
И многопроцессорное ядро будет загружено. Затем вы можете проверить, dmesg
все ли работает так, как запланировано (т. е. ядро было загружено и появилось GENERIC.MP
несколько строк).cpu*
Если вы хотите сделать его новым значением по умолчанию, просто переименуйте /bsd
в /bsd.sp
, а затем переименуйте /bsd.mp
в /bsd
(или измените /etc/boot.conf
).