Tenho o boot PXE 99% funcionando nos meus Raspberry Pi 5 SBCs - tudo, exceto apt-get update
funciona. Meu ambiente é um servidor TFTP no TrueNAS Scale com 2 compartilhamentos NFS, um para tftpboot e um para os sistemas de arquivos raiz. A configuração 66 do DHCP distribui o endereço IP TFTP sem problemas.
Nova informação extra : Descobri que isso não é um problema puramente no Raspberry Pi OS. Se eu usar DietPi, também baseado em Debian, a mesma coisa acontece:
Err:15 https://dietpi.com/apt bookworm InRelease
At least one invalid signature was encountered.
O processo para obter os arquivos do sistema de arquivos raiz é:
- Inicializando o pi5 a partir do novo cartão SD
- Passe pela instalação inicial
- rsync /boot/firmware e / para os compartilhamentos acima (não há arquivos ISO envolvidos nisso, como algumas soluções PXE usam). O rsync foi executado
--perms
e verifiquei que as permissões no destino são as mesmas da origem.
Entretanto, quando o pi5 inicializa a partir do PXE, apt-get update
ele não roda e gera os seguintes erros:
me@raspberrypi:~ $
me@raspberrypi:~ $ sudo apt-get update
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:3 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Err:1 http://deb.debian.org/debian bookworm InRelease
At least one invalid signature was encountered.
Err:2 http://deb.debian.org/debian-security bookworm-security InRelease
At least one invalid signature was encountered.
Err:3 http://deb.debian.org/debian bookworm-updates InRelease
At least one invalid signature was encountered.
Get:4 http://archive.raspberrypi.com/debian bookworm InRelease [39.3 kB]
Err:4 http://archive.raspberrypi.com/debian bookworm InRelease
At least one invalid signature was encountered.
Reading package lists... Done
W: GPG error: http://deb.debian.org/debian bookworm InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian bookworm InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: http://deb.debian.org/debian-security bookworm-security InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian-security bookworm-security InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: http://deb.debian.org/debian bookworm-updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian bookworm-updates InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: http://archive.raspberrypi.com/debian bookworm InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.raspberrypi.com/debian bookworm InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
me@raspberrypi:~ $
Permitir repositórios inseguros e não autenticados vai mais longe, mas ainda falha com erros como:
W: GPG error: http://deb.debian.org/debian bookworm InRelease: At least one invalid signature was encountered.
W: The repository 'http://deb.debian.org/debian bookworm InRelease' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
O exemplo apt abaixo instala o nginx, mas observe a linha que diz:
WARNING: The following packages cannot be authenticated!
nginx-common nginx
Aqui está o resultado completo:
me@raspberrypi:~ $ sudo apt-get install nginx
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
nginx-common
Suggested packages:
fcgiwrap nginx-doc ssl-cert
The following NEW packages will be installed:
nginx nginx-common
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 606 kB of archives.
After this operation, 1,708 kB of additional disk space will be used.
Do you want to continue? [Y/n]
WARNING: The following packages cannot be authenticated!
nginx-common nginx
Install these packages without verification? [y/N] y
Get:1 http://deb.debian.org/debian bookworm/main arm64 nginx-common all 1.22.1-9 [112 kB]
Get:2 http://deb.debian.org/debian bookworm/main arm64 nginx arm64 1.22.1-9 [494 kB]
Fetched 606 kB in 1s (541 kB/s)
Preconfiguring packages ...
Selecting previously unselected package nginx-common.
(Reading database ... 78339 files and directories currently installed.)
Preparing to unpack .../nginx-common_1.22.1-9_all.deb ...
Unpacking nginx-common (1.22.1-9) ...
Selecting previously unselected package nginx.
Preparing to unpack .../nginx_1.22.1-9_arm64.deb ...
Unpacking nginx (1.22.1-9) ...
Setting up nginx-common (1.22.1-9) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.
Setting up nginx (1.22.1-9) ...
Upgrading binary: nginx.
Processing triggers for man-db (2.11.2-2) ...
me@raspberrypi:~ $
Isso me sugere que não é um problema de permissões do sistema de arquivos, caso contrário, novos pacotes não poderiam ser instalados. Após uma reinicialização, o nginx ainda está lá e funcionando bem, então a persistência do sistema de arquivos também está funcionando bem.
Observe que posso adicionar novos repositórios, por exemplo, o repositório Docker, seguindo as instruções oficiais de instalação.
Este não é um problema do Docker, como muitos outros resultados de pesquisa sugerem; o repositório do Docker não está e nunca foi instalado neste sistema, exceto para o teste acima. Há bastante espaço em disco disponível, então também não é isso.
O que pode estar causando isso? Usar temporariamente um apt vazio sources.list
e sources.list.d
permitir que o apt rode sem lançar erros, como esperado. Depois de adicionar um novo repositório e executar, sudo apt-get update
tudo está bem, então definitivamente está relacionado aos repositórios existentes da instalação do cartão SD. Restaurar os arquivos copiados mencionados acima traz o erro de volta imediatamente.
Pesquisei bastante e encontrei alguns erros idênticos, mas suas soluções não funcionam aqui, por exemplo
Acontece que isso era um problema de permissões NFS, afinal. O TrueNAS Scale requer que o Maproot User seja
root
e o Maproot Group sejawheel
antes que esse tipo de implementação de inicialização PXE funcione para mim. Eu tinhanobody
/nogroup
para todos os compartilhamentos antes; isso funciona bem para todos os meus outros casos de uso, mas não para PXE.Para os usuários de terminal por aí, isso está
no_root_squash
no seu/etc/exports
arquivo. Este bloco de exemplo não é uma recomendação, é muito inseguro e apenas um exemplo do que funcionou aqui durante o teste: