これについていくつかの質問があることを知っていますが、今回の質問は異なるようです。以下は、PXEブートサーバーによって提供されるGrub構成です。
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
}
前述のように、これは「カーネルを最初にロードする必要があります」という結果になります。これまではうまくいっています。より多くの背景を追加するために、2週間前までに次のメニュー項目を使用することができました。
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
}
linux
+(http)を使用したり、linuxefi
HTTPプロトコルを使用していない(したがって、遅いTFTPを使用する)がトリックを実行しているように見えますが、これまでこれがうまくいった理由があります。
編集:注:これはTFTPサーバーのログ出力です。 206 HTTP エラーの一部に注意してください。
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"
答え1
HTTPをプロトコルとして使用すると、KeepAliveTimeoutがGrubのタイムアウトよりも長い場合、カーネルのダウンロードがタイムアウトし、上記のエラーで失敗します。 Apache設定でこの値を減らすと問題が解決します。