iPXE discussion forum
Can not boot RHEL 7.3 by using iPXE - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Can not boot RHEL 7.3 by using iPXE (/showthread.php?tid=8243)

Pages: 1 2


Can not boot RHEL 7.3 by using iPXE - hiconyan - 2016-12-01 03:59

Hi,

I am trying to boot RHEL 7.3 by using iPXE (0c8d16 and fd95c).
The hardware is HP ProLiant DL360 Gen9.
However, Linux kernel does not start up after downloading initrd and vmlinuz.
It looks like downloading initrd and vmlinuz was completed.

- Screenshot: https://www.dropbox.com/s/73edzv79jhul5o2/screenshot.png
- dhcpd.conf: https://www.dropbox.com/s/yhpfvlotq06g5d3/dhcpd.conf
- boot.ipxe: https://www.dropbox.com/s/of0e31md6zhbubx/boot.ipxe

I can boot vmlinuz of RHEL 7.1 with initrd of RHEL 7.3.
Therefore, I think the cause of this is vmlinuz of RHEL 7.3.

Can anyone boot RHEL/CentOS 7.3 by using iPXE?

Sorry for my poor English...


RE: Can not boot RHEL 7.3 by using iPXE - NiKiZe - 2016-12-01 23:21

there is no official ipxe git version of 0c8d16 Where does your ipxe come from? is it based on the latest git master?

HP is somewhat problematic, and so is several RHEL and CentOS releases
But if I understood you correctly you have tried other EFI boots on the same hardware that works?
Have you tried the problematic version in a VM with EFI boot?


RE: Can not boot RHEL 7.3 by using iPXE - hiconyan - 2016-12-07 08:16

I used PXELINUX following the RHEL official manual (Sec 21.1.2).
And deploying RHEL 7.3 was succeeded.
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/chap-installation-server-setup.html

So, I think latest iPXE has compatibility issues on RHEL 7.3.


RE: Can not boot RHEL 7.3 by using iPXE - NiKiZe - 2016-12-07 08:47

Your screenshot shows a efi boot, did you use efi version of pxelinux? (just trying to clear up which mode is used where)

You can always use ipxe for legacy bios boot which I'm sure will work.

It is known that some HP machines have troubles with ipxe.efi make sure firmware is update on the machine.

Also there is known problems with older versions of RH in efi mode, due to them using old versions of the kernel.


RE: Can not boot RHEL 7.3 by using iPXE - sspans - 2016-12-14 09:06

I have the same issue with iPXE, UEFI, CentOS 7.3 and HP G9 hardware.
We have a working configuration for CentOS 7.2 with the 32mb.bin hacks to deal with the older kernel:

Code:
:centos-7-uefi
initrd ${boot-url}/install/centos-7/32mb.bin
initrd ${boot-url}/install/centos-7/initrd.img
initrd ${boot-url}/install/centos-7/32mb.bin
kernel ${boot-url}/install/centos-7/vmlinuz
initrd ${boot-url}/install/centos-7/32mb.bin
imgargs vmlinuz initrd=initrd.img ks=${boot-url}/install/centos-7/install.ks ksdevice=bootif BOOTIF=01-${netX/mac:hexhyp}
boot

However this config doesn't seem to work for the 7.3 installer. I'm planning to evaluate some alternative solutions next week.
(using an elrepo kernel, bootstrapping via grub + memdisk, etc).


RE: Can not boot RHEL 7.3 by using iPXE - NiKiZe - 2016-12-14 19:28

(2016-12-14 09:06)sspans Wrote:  I have the same issue with iPXE, UEFI, CentOS 7.3 and HP G9 hardware.

If it hangs during kernel boot it should have been resolved a week or two ago in git master, if it still does not it would help if the exact ipxe git version was posted, as well as error description.

(2016-12-14 09:06)sspans Wrote:  However this config doesn't seem to work for the 7.3 installer.
Could you describe more what you mean by "doesn't seem to work" ? does it hang, if so what do you see on screen, if not i guess you get some kind of error message?

(2016-12-14 09:06)sspans Wrote:  I'm planning to evaluate some alternative solutions next week.
(using an elrepo kernel, bootstrapping via grub + memdisk, etc).
memdisk does not work in efi mode.


RE: Can not boot RHEL 7.3 by using iPXE - mathp - 2016-12-16 02:34

Hello,

I can confirm the same behavior also on non-HP UEFI hardware (Quanta / QCT). We chainload iPXE from the stock PXE firmware then call something very similar to what sspans posted. All we can see is that the initrd / vmlinuz image loads as usual, but then we only get a blinking cursor in top left of the screen (freeze). Eventually the server reboot by itself.

git log show that I compiled and executed:

Code:
commit 26050fd4c87c50503d5bd573b2ec91703676e211
Author: Raed Salem <raeds@mellanox.com>
Date:   Thu Dec 8 11:01:51 2016 +0200

I believe this is master / latest.

The exact same setup with the CentOS 7.2 vmlinuz works perfectly. Also booting a grub2 core.efi network image directly (not using iPXE) to load the same vmlinuz / initrd works (but of course, that's like going back 10 yrs in term of automation capabilities Sad )

Thanks for you help.

Math.


RE: Can not boot RHEL 7.3 by using iPXE - sspans - 2016-12-19 09:56

(2016-12-14 19:28)NiKiZe Wrote:  
(2016-12-14 09:06)sspans Wrote:  I have the same issue with iPXE, UEFI, CentOS 7.3 and HP G9 hardware.

If it hangs during kernel boot it should have been resolved a week or two ago in git master, if it still does not it would help if the exact ipxe git version was posted, as well as error description.

I will give master a shot and report back, however I expect results similar to mathp.


(2016-12-14 19:28)NiKiZe Wrote:  
(2016-12-14 09:06)sspans Wrote:  However this config doesn't seem to work for the 7.3 installer.
Could you describe more what you mean by "doesn't seem to work" ? does it hang, if so what do you see on screen, if not i guess you get some kind of error message?

Black screen followed by an eventual reboot

(2016-12-14 19:28)NiKiZe Wrote:  
(2016-12-14 09:06)sspans Wrote:  I'm planning to evaluate some alternative solutions next week.
(using an elrepo kernel, bootstrapping via grub + memdisk, etc).
memdisk does not work in efi mode.

I was referring to the grub memdisk feature - which allows creation of a single grub image with kernel/initrd embedded.


RE: Can not boot RHEL 7.3 by using iPXE - sspans - 2016-12-19 15:18

I've just verified that master / 26050fd4c87c50503d5bd573b2ec91703676e211 shows the same results, RHEL 7.2 kernels work (with 32mb.bin) and 7.3 kernels fail (black screen + reboot)


RE: Can not boot RHEL 7.3 by using iPXE - mathp - 2016-12-20 07:12

I found a way using the CentOS 7.3 kernel to make this work, but it's largely inspired by allenb CentOS 7 post : http://forum.ipxe.org/showthread.php?tid=7813&pid=12480#pid12480

Instead of using the ELRepo Kernel, I just went with the currently updated 7.3 kernel version:

Code:
mkdir POC && cd $_
wget http://<your-centos-mirror>/centos/7.3.1611/updates/x86_64/Packages/kernel-3.10.0-514.2.2.el7.x86_64.rpm
wget http://<your-centos-mirror>/centos/7.3.1611/os/x86_64/images/pxeboot/initrd.img
mkdir {kernel,initrd,pxe-images}

This gave me the following starting structure:

Code:
/home/mathp/POC/
|-- initrd/
|-- initrd.img
|-- kernel/
|-- kernel-3.10.0-514.2.2.el7.x86_64.rpm
`-- pxe-images/

3 directories, 2 files

The following steps match the ones described by "allenb", but with a few differences in the compression used and the depmod command. I also needed to load extra modules, but that is probably just a dependency of my kickstart pre-scripts (I create a ram drive to save some settings to be used between the pre and post script).

Code:
cd kernel/
rpm2cpio ../kernel-3.10.0-514.2.2.el7.x86_64.rpm | cpio -idum
cp boot/vmlinuz-3.10.0-514.2.2.el7.x86_64 ../pxe-images/
cd ../initrd
xz -dc < ../initrd.img | cpio --quiet -i --make-directories
rm -rf usr/lib/modules/3.10.0-514.el7.x86_64
cd ..
rsync -a kernel/lib/modules/3.10.0-514.2.2.el7.x86_64 initrd/usr/lib/modules
depmod -ae -F kernel/boot/System.map-3.10.0-514.2.2.el7.x86_64 -b /home/mathp/POC/initrd
mkdir initrd/etc/modules-load.d
echo -e "loop" > initrd/etc/modules-load.d/loop.conf
echo -e "libcrc32c\nxfs" > initrd/etc/modules-load.d/xfs.conf
echo -e "fat\nvfat" > initrd/etc/modules-load.d/fat.conf
echo -e "jbd2\nmbcache\next4" > initrd/etc/modules-load.d/ext4.conf
echo -e "brd" > initrd/etc/modules-load.d/brd.conf
cd initrd/
find . 2>/dev/null | cpio --quiet -c -o | xz -9 --format=lzma >../pxe-images/initrd.img-3.10.0-514.2.2.el7.x86_64
cd ../pxe-images
ls -l
-rw-r--r-- 1 root root 52900032 Dec 19 23:04 initrd.img-3.10.0-514.2.2.el7.x86_64
-rwxr-xr-x 1 root root  5393328 Dec 19 22:49 vmlinuz-3.10.0-514.2.2.el7.x86_64

I then use the resulting vmlinuz / initrd in the very straight forward iPXE fashion:

Code:
set my-initrd initrd.img-3.10.0-514.2.2.el7.x86_64
set my-vmlinuz vmlinuz-3.10.0-514.2.2.el7.x86_64

imgfree
initrd --name initramfs ${boot-images}/${os}/${os-version}/${my-initrd}
kernel ${boot-images}/${os}/${os-version}/${my-vmlinuz} initrd=initramfs ${params}

Output:
Code:
http://[removed]/ai/boot-images/centos/7.3.1611/initrd.img-3.10.0-514.2.2.el7.x86_64... ok
http://[removed]/ai/boot-images/centos/7.3.1611/vmlinuz-3.10.0-514.2.2.el7.x86_64... ok
...
[    0.000000] Linux version 3.10.0-514.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Dec 6 23:06:41 UTC 2016
[    0.000000] Command line: vmlinuz-3.10.0-514.2.2.el7.x86_64 initrd=initramfs inst.ks=http://[removed]/ai/auto-config/centos/kickstart/7.3.1611/ks-7.3.1611-server.cfg ip=dhcp BOOTIF=01-2c-60-0c-d0-ab-52 inst.sshd inst.vnc inst.text console=tty0 console=ttyS1,115200n8
...


The only thing that I found in the kernel RPM change log between the "stock" centos 7.3 kernel and this published updated version that I think might be applicable is:

Quote:* Fri Nov 04 2016 Frantisek Hrbata <fhrbata@hrbata.com> [3.10.0-514.2.1.el7]
- [firmware] efi: Fix usage of illegal alignment on efi_low_alloc (Lenny Szubowicz) [1392044 1387689]

I'm not certain where to look to find any information on that patch...

Anyway, this is by far not an ideal solution, more like an ugly patch to the problem, but at least it works, and using centos / RHEL provided kernel. I'm quite certain this is not an iPXE problem but really a problem with the stock pxelinux/vmlinuz kernel in the installation media / repo.

Hope this helps.

Math.


RE: Can not boot RHEL 7.3 by using iPXE - sspans - 2016-12-20 14:48

I've decided to stick to the grub-wrapper solution for now.
Script + grub.cfg below:

Code:
#!/bin/bash -ex

rm -rf bootx64.efi boot memdisk.tar

# needed to build a custom bootloader
yum install grub2-efi-modules

mkdir -p boot/grub
cp grub.cfg boot/grub/
tar cvf memdisk.tar vmlinuz initrd.img boot
grub2-mkimage  -v --memdisk=memdisk.tar -o bootx64.efi -O x86_64-efi memdisk tar echo help sleep linux linuxefi lsefi reboot multiboot linux16 boot efi_uga efi_gop gfxterm video video_fb videoinfo videotest efifwsetup efinet http
rm -rf memdisk.tar boot

grub.cfg:
Code:
net_bootp efinet0

menuentry "CentOS-7" {
    linuxefi (memdisk)/vmlinuz ks=http://boot.myhost.tld/install/centos-7/install.ks BOOTIF=${net_efinet0_dhcp_mac}
    initrdefi (memdisk)/initrd.img
}

set timeout=0
set default="CentOS-7"



RE: Can not boot RHEL 7.3 by using iPXE - mathp - 2016-12-21 01:14

For people finding this post because they have issues installing RHEL 7.3 / CentOS 7.3 on UEFI hardware using iPXE...

There is a bug in the "stock" kernel that came out with 7.3 and the installer pxelinux/vmlinuz image is not working.

The updated kernel, i.e. kernel-3.10.0-514.2.2.el7.x86_64.rpm fixes this issue.

Hopefully, this will save someone from wasting time like I did. If someone has a "simpler" alternative to the solution I posted earlier in this thread, or if the nice people supporting CentOS decide that it would make more sense to update the installer vmlinuz / initrd and squashfs, I think that the iPXE community would thank you!!!

http://rhn.redhat.com/errata/RHBA-2016-2862.html

Code:
* After migration to Red Hat Enterprise Linux 7.3, the Unified Extensible
Firmware Interface (UEFI) boot failed due to a bug that prevented the kernel
from booting through the PE/COFF image entry, which is used by the Extensible
Firmware Interface (EFI) ipxe boot loader. This update fixes the alignment
parameter on the call to the efi_low_alloc() function, and the kernel now boots
as expected. (BZ#1392044)



RE: Can not boot RHEL 7.3 by using iPXE - mathp - 2016-12-21 03:50

If the hackish solution I posted earlier is for you, and like me, you don't like "force loading" some kernel modules because the ones in the squashfs.img images are an older version, you can completely skip creating and populating the "etc/modules-load.d" directory by also updating the modules inside the squashfs.img images:


"Unsquash" the image:

Code:
yum install squashfs-tools

cd ~mathp/POC
mkdir squashfs-tmp
cd squashfs-tmp
unsquashfs ../squashfs.img

Mount the live O/S filesystem contained within the squashfs image:

Code:
cd ~mathp/POC
mkdir LiveOS-tmp
mount -o loop squashfs-tmp/squashfs-root/LiveOS/rootfs.img LiveOS-tmp/

Replace the kernel modules and unmount the live O/S filesystem:

Code:
rm -rf LiveOS-tmp/usr/lib/modules/3.10.0-514.el7.x86_64/
rsync -avz kernel/lib/modules/3.10.0-514.2.2.el7.x86_64 LiveOS-tmp/usr/lib/modules
depmod -ae -F kernel/boot/System.map-3.10.0-514.2.2.el7.x86_64 -b /home/mathp/POC/LiveOS-tmp/
umount LiveOS-tmp/

Re-create the squashfs image:

Code:
cd squashfs-tmp/
mksquashfs squashfs-root/ ../squashfs.img-3.10.0-514.2.2.el7.x86_64 -noappend -always-use-fragments

A this point, you need to copy the new squashfs image to a directory accessible by your iPXE client. The simplest form is to create a LiveOS directory and put the new squashfs.img file into it, then reference the parent directory in your iPXE config / kernel parameters (via inst.stage2=).

For example, with the files accessible in the following structure:

Code:
http://install-services/boot-images/centos/7.3.1611/
    |-- initrd.img-3.10.0-514.2.2.el7.x86_64
    |-- LiveOS/
    |   |-- squashfs.img -> squashfs.img-3.10.0-514.2.2.el7.x86_64
    |   `-- squashfs.img-3.10.0-514.2.2.el7.x86_64
    `-- vmlinuz-3.10.0-514.2.2.el7.x86_64

you can use something like:

Code:
set my-initrd initrd.img-3.10.0-514.2.2.el7.x86_64
set my-vmlinuz vmlinuz-3.10.0-514.2.2.el7.x86_64

imgfree
initrd --name initramfs http://install-services/boot-images/centos/7.3.1611/${my-initrd}
kernel http://install-services/boot-images/centos/7.3.1611/${my-vmlinuz} initrd=initramfs inst.stage2=http://install-services/boot-images/centos/7.3.1611 ${params}

where ${params} is set to all your other installation parameters (inst.ks, console, inst.text BOOTIF=, etc.)

Have fun ;-)


RE: Can not boot RHEL 7.3 by using iPXE - fdge - 2017-01-19 22:15

(2016-12-20 14:48)sspans Wrote:  I've decided to stick to the grub-wrapper solution for now.
Script + grub.cfg below:

grub.cfg:
Code:
net_bootp efinet0

menuentry "CentOS-7" {
    linuxefi (memdisk)/vmlinuz ks=http://boot.myhost.tld/install/centos-7/install.ks BOOTIF=${net_efinet0_dhcp_mac}
    initrdefi (memdisk)/initrd.img
}

set timeout=0
set default="CentOS-7"

How did you get 'net_bootp efinet0' to work?
Mine keeps saying 'error: couldn't autoconfigure efinet0' I get the same response with just the command 'net_bootp'.


RE: Can not boot RHEL 7.3 by using iPXE - jjmakin - 2017-06-01 12:19

Thank you very much for posting this info.
I was very relieved to get anaconda running to completion, however on reboot my machine just dropped me into a grub shell and I can't determine if my kickstart file is bad or somehow I've made a mistake repeating the process above.
As a few months have passed I have used kernel 3.10.0-514.21.1.el7.x86_64
My kickstart options are to use autopart with lvm and my bootloader option is a very simple bootloader --location=mbr

(2016-12-20 07:12)mathp Wrote:  I found a way using the CentOS 7.3 kernel to make this work, but it's largely inspired by allenb CentOS 7 post : http://forum.ipxe.org/showthread.php?tid=7813&pid=12480#pid12480

Instead of using the ELRepo Kernel, I just went with the currently updated 7.3 kernel version:

Code:
mkdir POC && cd $_
wget http://<your-centos-mirror>/centos/7.3.1611/updates/x86_64/Packages/kernel-3.10.0-514.2.2.el7.x86_64.rpm
wget http://<your-centos-mirror>/centos/7.3.1611/os/x86_64/images/pxeboot/initrd.img
mkdir {kernel,initrd,pxe-images}

This gave me the following starting structure:

Code:
/home/mathp/POC/
|-- initrd/
|-- initrd.img
|-- kernel/
|-- kernel-3.10.0-514.2.2.el7.x86_64.rpm
`-- pxe-images/

3 directories, 2 files

The following steps match the ones described by "allenb", but with a few differences in the compression used and the depmod command. I also needed to load extra modules, but that is probably just a dependency of my kickstart pre-scripts (I create a ram drive to save some settings to be used between the pre and post script).

Code:
cd kernel/
rpm2cpio ../kernel-3.10.0-514.2.2.el7.x86_64.rpm | cpio -idum
cp boot/vmlinuz-3.10.0-514.2.2.el7.x86_64 ../pxe-images/
cd ../initrd
xz -dc < ../initrd.img | cpio --quiet -i --make-directories
rm -rf usr/lib/modules/3.10.0-514.el7.x86_64
cd ..
rsync -a kernel/lib/modules/3.10.0-514.2.2.el7.x86_64 initrd/usr/lib/modules
depmod -ae -F kernel/boot/System.map-3.10.0-514.2.2.el7.x86_64 -b /home/mathp/POC/initrd
mkdir initrd/etc/modules-load.d
echo -e "loop" > initrd/etc/modules-load.d/loop.conf
echo -e "libcrc32c\nxfs" > initrd/etc/modules-load.d/xfs.conf
echo -e "fat\nvfat" > initrd/etc/modules-load.d/fat.conf
echo -e "jbd2\nmbcache\next4" > initrd/etc/modules-load.d/ext4.conf
echo -e "brd" > initrd/etc/modules-load.d/brd.conf
cd initrd/
find . 2>/dev/null | cpio --quiet -c -o | xz -9 --format=lzma >../pxe-images/initrd.img-3.10.0-514.2.2.el7.x86_64
cd ../pxe-images
ls -l
-rw-r--r-- 1 root root 52900032 Dec 19 23:04 initrd.img-3.10.0-514.2.2.el7.x86_64
-rwxr-xr-x 1 root root  5393328 Dec 19 22:49 vmlinuz-3.10.0-514.2.2.el7.x86_64

I then use the resulting vmlinuz / initrd in the very straight forward iPXE fashion:

Code:
set my-initrd initrd.img-3.10.0-514.2.2.el7.x86_64
set my-vmlinuz vmlinuz-3.10.0-514.2.2.el7.x86_64

imgfree
initrd --name initramfs ${boot-images}/${os}/${os-version}/${my-initrd}
kernel ${boot-images}/${os}/${os-version}/${my-vmlinuz} initrd=initramfs ${params}

Output:
Code:
http://[removed]/ai/boot-images/centos/7.3.1611/initrd.img-3.10.0-514.2.2.el7.x86_64... ok
http://[removed]/ai/boot-images/centos/7.3.1611/vmlinuz-3.10.0-514.2.2.el7.x86_64... ok
...
[    0.000000] Linux version 3.10.0-514.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Dec 6 23:06:41 UTC 2016
[    0.000000] Command line: vmlinuz-3.10.0-514.2.2.el7.x86_64 initrd=initramfs inst.ks=http://[removed]/ai/auto-config/centos/kickstart/7.3.1611/ks-7.3.1611-server.cfg ip=dhcp BOOTIF=01-2c-60-0c-d0-ab-52 inst.sshd inst.vnc inst.text console=tty0 console=ttyS1,115200n8
...


The only thing that I found in the kernel RPM change log between the "stock" centos 7.3 kernel and this published updated version that I think might be applicable is:

Quote:* Fri Nov 04 2016 Frantisek Hrbata <fhrbata@hrbata.com> [3.10.0-514.2.1.el7]
- [firmware] efi: Fix usage of illegal alignment on efi_low_alloc (Lenny Szubowicz) [1392044 1387689]

I'm not certain where to look to find any information on that patch...

Anyway, this is by far not an ideal solution, more like an ugly patch to the problem, but at least it works, and using centos / RHEL provided kernel. I'm quite certain this is not an iPXE problem but really a problem with the stock pxelinux/vmlinuz kernel in the installation media / repo.

Hope this helps.

Math.



RE: Can not boot RHEL 7.3 by using iPXE - mathp - 2017-06-07 23:18

Hi jjmakin,

My understanding is that you iPXE booted successfully and that the installation ran normally. Then on first reboot you got stuck at the grub prompt? That sounds like the system is unable to find the proper boot "info".

If you ended up in this thread, I assume you're booting UEFI native mode.

Did "autopart" create the "EFI" partition properly? If so, I suggest you try adding "--boot-drive=<boot device name>" to the "bootloader" kickstart line (that works for me using GPT formatted disk), ex.:

Code:
bootloader --location=mbr --boot-drive=sda

From the grub menu, you can also test this without re-installing by manually specifying the boot device...

Sounds like your 95% there: if you had made a mistake in the long process I posted, I doubt the server would have PXE booted and installed without reporting an issue.

Best,
Math.

(2017-06-01 12:19)jjmakin Wrote:  Thank you very much for posting this info.
I was very relieved to get anaconda running to completion, however on reboot my machine just dropped me into a grub shell and I can't determine if my kickstart file is bad or somehow I've made a mistake repeating the process above.
As a few months have passed I have used kernel 3.10.0-514.21.1.el7.x86_64
My kickstart options are to use autopart with lvm and my bootloader option is a very simple bootloader --location=mbr

(2016-12-20 07:12)mathp Wrote:  I found a way using the CentOS 7.3 kernel to make this work, but it's largely inspired by allenb CentOS 7 post : http://forum.ipxe.org/showthread.php?tid=7813&pid=12480#pid12480

Instead of using the ELRepo Kernel, I just went with the currently updated 7.3 kernel version:

...



RE: Can not boot RHEL 7.3 by using iPXE - jjmakin - 2017-06-08 11:39

Hi Math,

Thank you for replying. I tried the same setup on different hardware and it worked fine, so thank you for the initial solution, which has worked wonders for me.

(2017-06-07 23:18)mathp Wrote:  Hi jjmakin,

My understanding is that you iPXE booted successfully and that the installation ran normally. Then on first reboot you got stuck at the grub prompt? That sounds like the system is unable to find the proper boot "info".

If you ended up in this thread, I assume you're booting UEFI native mode.

Did "autopart" create the "EFI" partition properly? If so, I suggest you try adding "--boot-drive=<boot device name>" to the "bootloader" kickstart line (that works for me using GPT formatted disk), ex.:

Code:
bootloader --location=mbr --boot-drive=sda

From the grub menu, you can also test this without re-installing by manually specifying the boot device...

Sounds like your 95% there: if you had made a mistake in the long process I posted, I doubt the server would have PXE booted and installed without reporting an issue.

Best,
Math.

(2017-06-01 12:19)jjmakin Wrote:  Thank you very much for posting this info.
I was very relieved to get anaconda running to completion, however on reboot my machine just dropped me into a grub shell and I can't determine if my kickstart file is bad or somehow I've made a mistake repeating the process above.
As a few months have passed I have used kernel 3.10.0-514.21.1.el7.x86_64
My kickstart options are to use autopart with lvm and my bootloader option is a very simple bootloader --location=mbr

(2016-12-20 07:12)mathp Wrote:  I found a way using the CentOS 7.3 kernel to make this work, but it's largely inspired by allenb CentOS 7 post : http://forum.ipxe.org/showthread.php?tid=7813&pid=12480#pid12480

Instead of using the ELRepo Kernel, I just went with the currently updated 7.3 kernel version:

...



RE: Can not boot RHEL 7.3 by using iPXE - mathp - 2017-10-30 21:36

Quick Update, I had great success with iPXE and "stock" CentOS 7.4.1708 installer kernel - no modification needed during my tests.

-mathp.


RE: Can not boot RHEL 7.3 by using iPXE - WmYVR - 2017-11-21 16:22

I am new to this forum and iPXE. I have been struggling to get my CentOS 7.4 1708 to PXEboot successfully ultimately to proceed to KickStart - using a VMware ESXi VM (BIOS and not EFI). Like this thread, both the CentOS's pxeboot initrd and vmlinuz files are being loaded via HTTP but vmlinuz fails to complete its boot due to not being able to mount the root filesystem.

I note that "mathp" says he/she had success with iPXE and "stock" Centos 7.4.1708 installer kernel. I would appreciate a snippet of the iPXE script that did this so that I can confirm my environment.

Thanks

WmYVR


RE: Can not boot RHEL 7.3 by using iPXE - d4rk3 - 2019-08-14 18:34

(2017-11-21 16:22)WmYVR Wrote:  I am new to this forum and iPXE. I have been struggling to get my CentOS 7.4 1708 to PXEboot successfully ultimately to proceed to KickStart - using a VMware ESXi VM (BIOS and not EFI). Like this thread, both the CentOS's pxeboot initrd and vmlinuz files are being loaded via HTTP but vmlinuz fails to complete its boot due to not being able to mount the root filesystem.

I note that "mathp" says he/she had success with iPXE and "stock" Centos 7.4.1708 installer kernel. I would appreciate a snippet of the iPXE script that did this so that I can confirm my environment.

Thanks

WmYVR

This is the only way I can get a VM with UEFI to boot CentOS 7-x86_64-1810. Hope this helps.
Also, it will look like it's stuck, give it time. Probably a good 10 minutes or so. Eventually it will load the installation menu.

Code:
set    repo        http://mirror.centos.org/centos-7/7/os/x86_64
set    imgargs    initrd=initrd.img inst.repo=${repo} nomodset

kernel ${server}/${centos}/vmlinuz ${imgargs}
initrd ${server}/${centos}/initrd.img
boot