Если debug ssh-соединения выдаёт receive packet: type 51 :
$ ssh -vvvT <user>@host ... debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug3: send packet: type 50 debug3: receive packet: type 51 debug1: Authentications that can continue: publickey,password,keyboard-interactive ...
Можно проверить пользователя командой:
$ user info <user> login <user> passwd * uid 333 groups _user change NEVER class user gecos User Account dir /var/user shell /bin/sh expire NEVER
Следует обратить внимание на class user. Нужно убедиться, что login-класс user корректно прописан в login.conf. Одна из возможных причин ошибки связана с тем, что с версии OpenBSD 7.1 добавилась возможность прописывать login-классы в файлах /etc/login.conf.d/<class>. Имя файла в папке /etc/login.conf.d должно быть без расширения.
Скачать последний BIOS по ссылке на официальном сайте или на drivers.ru. Так же понадобится загрузочная USB-флэшка с FreeDOS. Для этого скачиваем FullUSB-образ с сайта freedos.org, распаковываем его и, предварительно выяснив имя USB-устройства, сохраняем на флэшку командой:
# Выясняем имя USB-устройства df -hT # Записываем образ на флэшку sudo dd if=/home/user/FD13FULL.img of=/dev/sdb status=progress sudo sync -f
После того, как флэшка готова, надо распаковать и скопировать на неё обновление BIOS.
Далее загружаемся с флэшки, выбираем язык и на вопрос продолжить установку отвечаем вернуться в DOS. Далее выполняем обновление BIOS:
# Посмотреть файлы в текущем каталоге dir # Сохранить в файл текущую версию BIOS afudos current.rom /O # Полностью обновить BIOS afudos latest.rom /P /B /N /C /E /K
Файл /etc/login.conf позволяет задать лимиты ресурсов для классов пользователей. Объявив класс можно присвоить его пользователю командой:
usermod -L gitea _gitea
Лимиты использования виртуальной памяти задаются через параметр datasize. Например, чтобы использовать максимально допустимый размер виртуальной памяти надо указать в /etc/login.conf:
# Gitea gitea: :datasize=infinity: :openfiles-cur=2048: :openfiles-max=16384: :priority=5: :memoryuse=15G: :memorylocked=5G: :tc=staff:
Проверить лимиты пользователя можно командой:
su - _gitea -c '/usr/local/bin/bash -c "ulimit -a"'
Для теста памяти можно воспользоваться утилитой memtester. Синтаксис команды:
memtester [-p PHYSADDR [-d DEVICE]] <MEMORY> [ITERATIONS]
<MEMORY> - кол-во аллоцируемой памяти. По-умолчанию, размер в мегабайтах, но можно использовать и значения B, K, M, или G.
ITERATIONS - количество циклов тестирования. По-умолчанию бесконечно.
Пример использования:
memtester 100M 7
Для тестирования памяти в OpenBSD можно воспользоваться утилитой memtester. Если были выявлены ошибки, как временное решение, можно попытаться исключить диапазоны "битой" памяти из использования ядром. Сделать это можно с помощью файла /etc/boot.conf и опции machine memory.
Пример ошибки:
Solid Bits : testing 18FAILURE: 0xffffffffffff0f0f != 0xffffffffffffffff at offset 0x022e8100. FAILURE: 0xffffffffffff0f0f != 0xffffffffffffffff at offset 0x022e8110. FAILURE: 0xffffffffffff0f0f != 0xffffffffffffffff at offset 0x022e8120. FAILURE: 0xffffffffffff0f0f != 0xffffffffffffffff at offset 0x022e8130.
Из ошибки видно, что диапазон адресов 0x022e8100 - 0x022e8130 не проходит тест. Добавляем в /etc/boot.conf строку:
machine memory -0x100@0x022e8100
Синтаксис команды:
machine memory [+-]<size>@address size[KMG]
Где size - размер (оффсет) диапазона, а address - начальный адрес диапазона. В примере выше из памяти доступной для ядра был исключен диапазон 4k начиная с адреса 0x022e8100. 4k - потому что 0x100 это 16^3 = 4096 байт.
Можно исключить несколько диапазонов, последовательно указав несколько команд. После этого перезагружаемся и бежим покупать новую память.