Вопрос или проблема
Мой клиент afs перестал работать. Я не уверен, почему – может быть, я запустил apt-get
? В любом случае:
user@box ~ $ kinit
[email protected]'s Password:
user@box ~ $ aklog
aklog: a pioctl failed while obtaining tokens for cell ies.auc.dk
Проверка статуса службы:
user@box ~ $ sudo service openafs-client status
[sudo] пароль для user:
● openafs-client.service - клиент OpenAFS
Loaded: загружен (/lib/systemd/system/openafs-client.service; включен; поставщик p
Active: активен (вышел) с Пн 2017-11-13 08:17:40 CET; 3ч 8мин назад
Process: 1942 ExecStartPost=/usr/bin/fs sysname $AFS_SYSNAME (код=вышел, ста
Process: 1934 ExecStartPost=/usr/bin/fs setcrypt $AFS_SETCRYPT (код=вышел, с
Process: 1930 ExecStart=/sbin/afsd $AFSD_ARGS (код=вышел, статус=0/УСПЕХ)
Process: 1918 ExecStartPre=/usr/share/openafs/openafs-client-precheck (код=в
Задачи: 0 (лимит: 512)
Память: 0B
CPU: 0
Nov 13 08:17:40 box systemd[1]: Запуск клиента OpenAFS...
Nov 13 08:17:40 box openafs-client-precheck[1918]: modprobe: FATAL: Модуль
Nov 13 08:17:40 box openafs-client-precheck[1918]: Не удалось загрузить openafs
Nov 13 08:17:40 box fs[1934]: Использование: /usr/bin/fs setcrypt -crypt <включено или о
Nov 13 08:17:40 box fs[1942]: Использование: /usr/bin/fs sysname [-newsys <новая с
Nov 13 08:17:40 box systemd[1]: Запущен клиент OpenAFS.
Modprobe не удался. Чуйка, что это связано с dkms, который должен
собрать модуль ядра. Пытаюсь инициировать сбор модуля
ядра (это должно происходить в рамках установки):
user@box ~ $ sudo dpkg-reconfigure openafs-modules-dkms
-------- Начало удаления --------
Модуль: openafs
Версия: 1.6.21
Ядро: 4.4.0-21-generic (x86_64)
-------------------------------------
Статус: Перед удалением, эта версия модуля была АКТИВНА на этом ядре.
openafs.ko:
- Удаление
- Удаление из: /lib/modules/4.4.0-21-generic/updates/dkms//
- Оригинальный модуль
- Оригинальный модуль не найден для этого модуля на этом ядре.
- Используйте команду dkms install, чтобы переустановить любую предыдущую версию модуля.
depmod.....
DKMS: удаление завершено.
------------------------------
Удаление версии модуля: 1.6.21
полностью из дерева DKMS.
------------------------------
Готово.
Загрузка новых файлов openafs-1.6.21 DKMS...
Сборка только для 4.4.0-97-generic
Сборка модуля для текущего ядра была пропущена, так как
исходный код для этого ядра, похоже, не установлен.
Несоответствие между версиями ядер; 4.4.0-21 был установлен. 4.4.0-97
является текущим. Невозможно собрать для текущего, так как исходный код недоступен.
Установка соответствующих заголовков для текущего ядра:
user@box ~ $ sudo apt-get install linux-headers-`uname -r`
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие НОВЫЕ пакеты будут установлены:
linux-headers-4.4.0-97-generic
0 обновлено, 1 новый установлен, 0 удалено и 14 не обновлено.
Необходимо загрузить 817 кБ архивов.
После этой операции дополнительно будет использовано 7427 кБ дискового пространства.
Получение:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.4.0-97-generic amd64 4.4.0-97.120 [817 kB]
Загружено 817 kB за 0s (1,626 kB/s)
Выбор ранее не выбраного пакета linux-headers-4.4.0-97-generic.
(Чтение базы данных ... 301414 файлов и каталогов в настоящее время установлены.)
Подготовка к распаковке .../linux-headers-4.4.0-97-generic_4.4.0-97.120_amd64.deb ...
Распаковка linux-headers-4.4.0-97-generic (4.4.0-97.120) ...
Настройка linux-headers-4.4.0-97-generic (4.4.0-97.120) ...
Изучение /etc/kernel/header_postinst.d.
run-parts: выполнение /etc/kernel/header_postinst.d/dkms 4.4.0-97-generic /boot/vmlinuz-4.4.0-97-generic
Инициирую сбор модуля ядра afs с помощью dkms:
user@box ~ $ sudo dpkg-reconfigure openafs-modules-dkms
-------- Начало удаления --------
Модуль: openafs
Версия: 1.6.21
Ядро: 4.4.0-97-generic (x86_64)
-------------------------------------
Статус: Перед удалением, эта версия модуля была АКТИВНА на этом ядре.
openafs.ko:
- Удаление
- Удаление из: /lib/modules/4.4.0-97-generic/updates/dkms//
- Оригинальный модуль
- Оригинальный модуль не найден для этого модуля на этом ядре.
- Используйте команду dkms install, чтобы переустановить любую предыдущую версию модуля.
depmod....
DKMS: удаление завершено.
------------------------------
Удаление версии модуля: 1.6.21
полностью из дерева DKMS.
------------------------------
Готово.
Загрузка новых файлов openafs-1.6.21 DKMS...
Сборка только для 4.4.0-97-generic
Сборка начального модуля для 4.4.0-97-generic
Готово.
openafs:
Запуск проверки целостности версии модуля.
- Оригинальный модуль
- Оригинальный модуль не существует в этом ядре
- Установка
- Установка в /lib/modules/4.4.0-97-generic/updates/dkms//
depmod....
DKMS: установка завершена.
Перезапуск клиента afs, чтобы вставить модуль ядра:
user@box ~ $ sudo service openafs-client restart
Проблема решена:
user@box ~ $ kinit
[email protected]'s Password:
user@box ~ $ aklog
user@box ~ $ klist
Кэш учетных данных: FILE:/tmp/krb5cc_1000
Принципал: [email protected]
Выдано Истекает Принципал
Nov 13 13:02:45 2017 Nov 13 23:02:42 2017 krbtgt/[email protected]
Nov 13 13:02:46 2017 Nov 13 23:02:42 2017 afs/[email protected]
Ответ или решение
Решение проблемы с OpenAFS: ошибка "pioctl failed while obtaining tokens"
Введение
Проблемы с клиентом OpenAFS могут возникнуть по разным причинам, включая изменения, вызванные обновлением пакетов или несовместимостью ядра. В этой статье мы подробно рассмотрим шаги, необходимые для диагностики и устранения ошибки "pioctl failed while obtaining tokens for cell", с которой вы столкнулись после, возможно, обновления вашей системы.
Анализ проблемы
На этапе диагностики, после выполнения команды aklog
, система выдала следующее сообщение об ошибке:
aklog: a pioctl failed while obtaining tokens for cell ies.auc.dk
Это указывает на проблему с подключением вашей машины к AFS. Проверка состояния службы OpenAFS с помощью команды sudo service openafs-client status
показала, что клиент был запущен, однако были выбраны сообщения об ошибках:
-
Ошибка загрузки модуля OpenAFS:
Failed to load openafs
-
Указание на необходимость установки заголовков ядра для корректной сборки модуля DKMS:
Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed.
Шаги по устранению неполадок
Для решения проблемы было выполнено несколько последовательных шагов:
-
Проверка совместимости версии ядра: Обнаружено, что версия ядра, с которой работал OpenAFS, не соответствовала текущей установленной версии. Установленные модули DKMS должны соответствовать версии вашего ядра.
-
Установка заголовков ядра:
Для решения проблемы необходимо было установить заголовки для актуального ядра. Это выполняется с помощью команды:sudo apt-get install linux-headers-$(uname -r)
Это позволит DKMS собирать модули для текущего ядра.
-
Пересборка модуля OpenAFS с помощью DKMS:
После установки заголовков ядра была выполнена команда для пересборки модуля OpenAFS:sudo dpkg-reconfigure openafs-modules-dkms
Этот шаг удаляет старый модуль и запрашивает его пересборку для новопрограммируемого ядра, что решает проблему с несовместимостью.
-
Перезапуск службы OpenAFS:
После успешной сборки модуля было необходимо перезапустить службу OpenAFS:sudo service openafs-client restart
Проверка решения
После выполнения вышеуказанных действий оператор провел тестирование с помощью команд kinit
и aklog
, что в итоге позволило успешно получить токены:
user@box ~ $ kinit
user@box ~ $ aklog
Также была проверена доступность кэшированных учетных данных с помощью команды klist
, что подтвердило успешное завершение всех действий, и проблема была решена.
Заключение
Устранение проблемы "pioctl failed while obtaining tokens" в OpenAFS требует внимательного подхода к анализу версии ядра и состояния модулей, а также правильной установки необходимых пакетов. Следуя шагам, описанным в данной статье, пользователи могут самостоятельно решать подобные проблемы без лишней помощи со стороны системных администраторов.
Для дальнейшего изучения данной темы, рекомендуется ознакомиться с документацией OpenAFS и сообществами, обсуждающими подобные вопросы.