web-dev-qa-db-fra.com

Comment mon serveur TFTP peut-il héberger des fichiers supérieurs à 2 Go?

J'ai un serveur TFTP fonctionnel via le tftp-hpa package sur mon installation Ubuntu 16.04 (32 bits). Il peut serveur OS pour le démarrage PXE sur le réseau si la taille du système d'exploitation est inférieure à 2 Go.

Lorsque j'essaie de démarrer à partir d'une image ISO plus grande sur le réseau, le client PXE de démarrage signale:

loading big.iso failed. no such file or directory

Le big.iso le fichier existe définitivement, j'ai donc tenté de déboguer le problème avec le serveur tftp:

me@box$ tftp 192.168.1.1
tftp> get pxelinux.cfg/default
sent RRQ <file=pxelinux.cfg/default, mode=netascii>
received DATA <block=1, 512 bytes>
sent ACK <block=1>
received DATA <block=2, 512 bytes>
sent ACK <block=2>
received DATA <block=3, 305 bytes>
Received 1329 bytes in 0.0 seconds
tftp> get big.iso
tftp: big.iso: Value too large for defined data type
tftp>

Cela me rappelle l'erreur que j'obtiens lorsque j'interagis avec des fichiers de plus de 2 Go avec des programmes plus anciens. Existe-t-il un moyen d'obtenir le tftp-hpa servir big.iso sur mon système 32 bits?

1
recursion.ninja

Vous pouvez obtenir la source de HPA tftp/tftpd avec apt source tftpd-hpa.

Avez-vous essayé de transférer un fichier> 2G avec le client hpa tftp? Si cela réussit, le coupable est le code de démarrage PXE, et vous ne pouvez pas faire grand-chose à ce sujet.

Dans tous les cas, PXE n'est pas censé charger l'intégralité de l'image du système de fichiers; il devrait simplement charger le noyau et initrd, et accéder à l'image du système de fichiers avec NFS.

1
JayEye