Sample Header Ad - 728x90

linuxefi causes "you need to load kernel first"

0 votes
1 answer
1913 views
I am aware of the multiple questions regarding this matter but this one seems to be different. This is the Grub configuration our PXE boot server provides:
net_ls_addr
sleep -i 5
set retcode=$?
clear

if [ $retcode == 1 ]; then
 quit
fi

if [ $retcode == 0 ]; then
 quit
fi

if [ $retcode == 3 ]; then
 terminal_output gfxterm
 set gfxmode="800x600;640x480;auto"
 set theme=theme.txt
fi

menuentry 'Install Custom CentOS 7 Linux x86_64 (CC7)' {
 insmod progress
 clear
 #set net_default_server=linuxsofturl
 echo -n 'loading kernel ...'
 linuxefi (http)/aims/boot/CC7_X86_64/vmlinuz ip=dhcp inst.repo=http://linuxsofturl/centos/7/os/x86_64/ 
 clear
 echo -n 'loading initrd ...'
 initrdefi (http)/aims/boot/CC7_X86_64/initrd
}
This, as mentioned, causes a "you need to load the kernel first". Until now it was working fine. To add further background, the following menu entries used to work until two weeks ago:
menuentry 'Install CentOS 8 Linux x86_64 (C8)' {
 insmod progress
 clear
 echo -n 'loading kernel ...'
 linuxefi /aims/boot/C8_X86_64/vmlinuz ip=dhcp inst.repo=http://linuxsofturl/centos/8/BaseOS/x86_64/os/  inst.addrepo=CUSTOM,http://linuxsofturl/centos/8/CUSTOM/x86_64/  inst.addrepo=locmap,http://linuxsofturl/internal/repos/potd8-stable/x86_64/os/  ks=http://linuxsofturl/linux/centos8/default.ks 
 clear
 echo -n 'loading initrd ...'
 initrdefi /aims/boot/C8_X86_64/initrd
}

menuentry 'Install Custom CentOS 7 Linux x86_64 (CC7)' {
 insmod progress
 clear
 #set net_default_server=linuxsofturl
 echo -n 'loading kernel ...'
 linuxefi (http)/aims/boot/CC7_X86_64/vmlinuz ip=dhcp inst.repo=http://linuxsofturl/centos/7/os/x86_64/ 
 clear
 echo -n 'loading initrd ...'
 initrdefi (http)/aims/boot/CC7_X86_64/initrd
}

menuentry 'Install Scientific Linux Custom 6 x86_64 (SLC6)' {
 insmod progress
 clear
 echo -n 'loading kernel ...'
 linux (http)/aims/boot/SLC6X_X86_64/vmlinuz ip=dhcp repo=http://linuxsofturl/slc6X/x86_64/ 
 clear
 echo -n 'loading initrd ...'
 initrd (http)/aims/boot/SLC6X_X86_64/initrd
}

menuentry 'Install RHEL 8.2 x86_64 (license required)' {
  insmod progress
  clear
  echo -n 'loading kernel ...'
  linux (http)/aims/boot/RHEL_8_2_X86_64/vmlinuz ip=dhcp repo=http://linuxsofturl/enterprise/rhel/server/8/8.2/x86_64/ 
  clear
  echo -n 'loading initrd ...'
  initrd (http)/aims/boot/RHEL_8_2_X86_64/initrd
 }
It seems that either using linux + (http) or linuxefi without HTTP protocol (so it will use TFTP, which will be slow) seems to do the trick, but this has always worked until now for a reason. EDIT: As a sidenote, this is the log output from the TFTP server, note the partial content 206 HTTP error:
2020-09-14T15:06:36.618691+02:00 aimstest01 httpd: 128.142.32.27 - - [14/Sep/2020:15:06:36 +0200] "GET /aims/boot/CC7_X86_64/vmlinuz HTTP/1.1" 200 6762688 114153 "-" "GRUB 2.02~beta2"
2020-09-14T15:07:11.137769+02:00 aimstest01 httpd: 128.142.32.27 - - [14/Sep/2020:15:06:37 +0200] "GET /aims/boot/CC7_X86_64/vmlinuz HTTP/1.1" 206 6762688 34080353 "-" "GRUB 2.02~beta2"
Asked by djuarez (357 rep)
Sep 14, 2020, 08:39 AM
Last activity: Jun 25, 2024, 01:00 AM