diff --git a/xCAT-server/lib/xcat/plugins/mknb.pm b/xCAT-server/lib/xcat/plugins/mknb.pm index b352f6a5f..a24ad1870 100644 --- a/xCAT-server/lib/xcat/plugins/mknb.pm +++ b/xCAT-server/lib/xcat/plugins/mknb.pm @@ -253,6 +253,10 @@ sub process_request { copy("/usr/lib/syslinux/pxelinux.0", "$tftpdir/pxelinux.0"); } elsif (-r "/usr/share/syslinux/pxelinux.0") { copy("/usr/share/syslinux/pxelinux.0", "$tftpdir/pxelinux.0"); + } elsif ("/usr/lib/PXELINUX/pxelinux.0") { + copy("/usr/lib/PXELINUX/pxelinux.0", "$tftpdir/pxelinux.0"); + } else { + copy("/opt/xcat/share/xcat/netboot/syslinux/pxelinux.0", "$tftpdir/pxelinux.0"); } if (-r "$tftpdir/pxelinux.0") { chmod(0644, "$tftpdir/pxelinux.0"); diff --git a/xCAT-server/lib/xcat/plugins/pxe.pm b/xCAT-server/lib/xcat/plugins/pxe.pm index 0031d9bdf..dab9cbe81 100644 --- a/xCAT-server/lib/xcat/plugins/pxe.pm +++ b/xCAT-server/lib/xcat/plugins/pxe.pm @@ -478,24 +478,19 @@ sub process_request { } #end prescripts code - if (!-r "$tftpdir/pxelinux.0") { - unless (-r "/usr/lib/syslinux/pxelinux.0" or -r "/usr/share/syslinux/pxelinux.0") { - $::PXE_callback->({ error => ["Unable to find pxelinux.0 "], errorcode => [1] }); - return; + my @pxelinuxpaths=("/usr/lib/syslinux/pxelinux.0","/usr/share/syslinux/pxelinux.0","/usr/lib/PXELINUX/pxelinux.0","/opt/xcat/share/xcat/netboot/syslinux/pxelinux.0"); + foreach $path (@pxelinuxpaths) { + if (-r "$path") { + copy("$path","$globaltftpdir/pxelinux.0"); + chmod(0644, "$globaltftpdir/pxelinux.0"); + last; } - if (-r "/usr/lib/syslinux/pxelinux.0") { - copy("/usr/lib/syslinux/pxelinux.0", "$tftpdir/pxelinux.0"); - } else { - copy("/usr/share/syslinux/pxelinux.0", "$tftpdir/pxelinux.0"); - } - chmod(0644, "$tftpdir/pxelinux.0"); } - unless (-r "$tftpdir/pxelinux.0") { - $::PXE_callback->({ errror => ["Unable to find pxelinux.0 from syslinux"], errorcode => [1] }); + unless (-r "$globaltftpdir/pxelinux.0") { + $::PXE_callback->({ errror => ["Unable to find pxelinux.0 from syslinux or pxelinux"], errorcode => [1] }); return; } - $errored = 0; my %bphash; my $inittime = 0;