Kernel Panic After iPXE Boot – Identical FOG Setup Works at Another Site
-
We have two FOG imaging environments with the same OS, same FOG version (1.5.10.1650), and nearly identical configuration. One site works perfectly; the other crashes every time at the same point, the FOG menu loads, but i get a kernel panic when deploying an image.
Clients (both laptops and Hyper-V Gen 2 VMs) successfully PXE boot and chainload iPXE, but instead of reaching the FOG menu, they hang with the following error: ```
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
Kernel OffWhat We’ve Done: ✅ Re-ran FOG installer ✅ Confirmed init.xz, init_32.xz, bzImage, bzImage32 exist under /var/www/html/fog/service/ipxe/ ✅ Verified file ownership is fogproject:apache ✅ Replaced TFTP boot files (ipxe.efi, snponly.efi, undionly.kpxe) from the known-good environment ✅ Apache + TFTP verified working ✅ Packet captures show clean file downloads over HTTPS (port 443) ✅ Reinstalled kernel/init through FOG web interface ✅ Disabled dnsmasq entirely — we’re using ISC DHCP ✅ Permissions on TFTP directory are correct ✅ Hardware and VM settings match working site DHCP snippet-----------```
subnet 192.168.X.0 netmask 255.255.255.0 {
range 192.168.X.50 192.168.X.254;
option routers 192.168.X.1;
option broadcast-address 192.168.X.255;
next-server 192.168.X.23;
}class “Legacy” {
match if substring(option vendor-class-identifier, 0, 20) = “PXEClient:Arch:00000”;
filename “undionly.kpxe”;
}class “UEFI-32” {
match if substring(option vendor-class-identifier, 0, 20) = “PXEClient:Arch:00002” or
substring(option vendor-class-identifier, 0, 20) = “PXEClient:Arch:00006”;
filename “i386-efi/ipxe.efi”;
option isc-ipxe-boot-script “http://192.168.X.23/fog/service/ipxe/boot.php”;
}class “UEFI-64” {
match if substring(option vendor-class-identifier, 0, 20) = “PXEClient:Arch:00007” or
substring(option vendor-class-identifier, 0, 20) = “PXEClient:Arch:00008” or
substring(option vendor-class-identifier, 0, 20) = “PXEClient:Arch:00009”;
filename “ipxe.efi”;
option isc-ipxe-boot-script “http://192.168.X.23/fog/service/ipxe/boot.php”;
}Packet Capture Observations: TFTP downloads (ipxe.efi, default.ipxe, etc.) are clean iPXE hands off to boot.php over HTTP Apache serves init.xz and bzImage over HTTPS, TLS completes Client terminates after transfer – no further boot activity No NFS or iSCSI requests autoexec.ipxe and default.ipxe are present, but never result in menu Main Issue: **Why does this one environment crash with kernel panic after a seemingly clean iPXE boot, while the other environment—identical in version and config—works? Any ideas appreciated. Been at this for hours.**