I am running a PXE booted Raspberry cluster: one pi is the PXE boot server with has an SSD attached and is updated to 4.14.82-v7+ #1165. The boot-image for the PXE clients is rsync'ed. Clients boot up ok but do not update themselves to the latest release. uname -a returns: 4.14.34-v7+ #1110 despite even a firmware update to rpi-4.14.y.

I noticed that they are not updating when I tried to install the latest docker, which runs fine on the master (PXE boot server) but fails on the clients because /lib/module/4.14.34-v7+/* does not exist anymore. Somewhere the release update is out of sync with the PXE boot image? I think when I did an autoremove on the master the rsynced PXE poot image was also updated to remove the 4.14.34-v7+ version. Can that cause the apt-get process to think it already has the latest?

thanks

  • I did a: sudo apt-get update; sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel .. as recommended in a similar out-of-sync post but uname still returns the same 4.14.34 version after a reboot. – tak Nov 27 at 3:53

It seems the out-of-sync situation between the PXE-boot client kernel version was caused by messing with the python versions and this causing apt-get to lose track of things. The /lib/module/4.14.34* files were gone on the PXE-boot image and I could not find an easy way to restore them.

My solution was to take one of the cluster-Pi's out and fit it with an SDcard with a fresh Raspbian install, go through the standard configuration and update, then reboot.

create a mount point

sudo mkdir /nfs

mount the PXE-boot server's location for pi's

sudo mount -t nfs {your PXE-boot server IP address}:/nfs-client1 /nfs

clean out the directory if you messed with it.

then rsync the current OS to the mounted location

sudo rsync -xa --progress --exclude /nfs / /nfs/client1

sudo umount {your PXE-boot server IP address}:/nfs-client1

you can shutdown the SDcard Pi and take the SDcard out for the next adventure and join it back to the cluster. It will be PXE-booted next.

back on the PXE-boot server:

Regenerate SSH host keys on the client filesystem by chrooting into it:

cd /nfs/client1

sudo mount --bind /dev dev

sudo mount --bind /sys sys

sudo mount --bind /proc proc

sudo chroot .

rm /etc/ssh/ssh_host_*

dpkg-reconfigure openssh-server

exit

sudo umount dev

sudo umount sys

sudo umount proc

power-cycle all the PXE-client and they should boot up with the current version of the system.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.