Ошибки подписей apt при PXE-загрузке Raspberry Pi 5: решение проблемы

Представьте: вы настроили PXE-загрузку на Raspberry Pi 5, всё работает идеально – кроме одного. При попытке обновить пакеты через apt-get update система упорно ругается на невалидные подписи репозиториев. Эта проблема, как оказалось, связана не с самим Debian или Raspberry Pi OS, а с тонкостями настройки сетевых файловых систем. Давайте разберёмся, почему так происходит и как это исправить без переустановки всего окружения.

Почему apt не доверяет репозиториям при PXE-загрузке?

Ошибки вида «At least one invalid signature was encountered» обычно указывают на проблемы с проверкой GPG-ключей. Но если вы точно скопировали файловую систему с рабочего SD-носителя через rsync (с сохранением прав!), причина кроется глубже – в механизме монтирования NFS-шары.

Ключевой момент: при PXE-загрузке корневая файловая система монтируется с сервера, и если NFS не позволяет клиенту работать с правами root, это ломает целостность метаданных. Например, файлы в /var/lib/apt/lists/ и /etc/apt/trusted.gpg.d/ могут оказаться в состоянии, которое система считает «подозрительным».

Проверьте: сравните права на файлы в оригинальной системе (с SD-карты) и в NFS-шаре. Даже если вы использовали rsync --perms, настройки сервера могут «подчищать» UID/GID при монтировании.

Настройка NFS в TrueNAS Scale для PXE-загрузки

TrueNAS по умолчанию использует параметры безопасности, которые не всегда совместимы с требованиями Linux-систем для загрузки. Вот как настроить шары правильно:

1. Maproot User/Group:

В интерфейсе TrueNAS перейдите в настройки NFS-шары (Services → NFS → Shares). Для каждой из них:

– Установите Maproot User → root
– Maproot Group → wheel

Настройки NFS в TrueNAS Scale

2. Проверьте права на каталоги:

ls -lZ /mnt/storage/tftp/rpi-pxe/etc/apt/trusted.gpg.d/

Если владелец файлов – не root, или SELinux-контекст отличается от оригинального, это вызовет конфликты.

3. Ручная правка /etc/exports (для продвинутых):

Если вы предпочитаете конфигурацию через командную строку, добавьте опцию no_root_squash:

"/mnt/storage/tftp/rpi-pxe" 192.168.1.0/24(rw,no_root_squash,subtree_check)
# Пример (не используйте в продакшене!):
/mnt/storage/tftp/rpi-pxe 192.168.1.0/24(sec=sys,rw,no_root_squash,insecure)

Дополнительные проверки и решения

Если ошибки остаются, попробуйте:

– Обновить ключи APT вручную:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [ID_ключа]

ID ключей можно найти в ошибках вывода apt-get update.

– Проверить синхронизацию времени:

Некорректное время на клиенте ломает проверку подписей. Установите chrony:

sudo apt install chrony && sudo systemctl restart chronyd

– Временное отключение проверки подписей (только для тестирования!):

Создайте файл /etc/apt/apt.conf.d/99insecure:

APT::Get::AllowUnauthenticated "true";

Важно: no_root_squash снижает безопасность! Используйте его только в доверенных сетях и ограничьте доступ подсетью (например, 192.168.1.0/24 вместо 0.0.0.0/0).

Если вы дочитали до этого момента, скорее всего, проблема уже решена. Но если нет – проверьте, не блокирует ли брандмауэр доступ к портам 123 (NTP) или 80/443 (для загрузки пакетов). Иногда «неочевидные» сетевые ограничения становятся последним камнем преткновения в таких кейсах.

Добавить комментарий

Все поля обязательны к заполнению. Ваш адрес email не будет виден никому.

Новое
Интересное