[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EFI PXE boot using grubx64.efi - Large images

From: Randy Goldenberg
Subject: Re: EFI PXE boot using grubx64.efi - Large images
Date: Fri, 29 Dec 2017 12:10:06 -0800
User-agent: Mutt/1.5.24 (2015-08-30)

Disclaimer: For PXE booting I use iPXE, not grub. I successfully EFI booted the CentOS 7.4 LiveCD using the procedure outlined below, and iPXE. I would not expect PXE booting with grub to be substantially different.

I found a CentOS 7 LiveCD that appears to be the one you're trying to boot, on a CentOS mirror at centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-LiveGNOME-1708.iso. This is the image used. For preparing your PXE booting setup, mount the ISO.

The initrd inside the ISO at isolinux/ does not support booting over the network. Various attempts to inject the needed drivers using dracut were unsuccessful. Instead of the kernel and initrd in the ISO, I used the kernel and initrd available on CentOS mirrors at centos/7.4.1708/os/x86_64/images/pxeboot. Put these files wherever you put stuff to be loaded by grub; probably your tftp directory (iPXE can access these using http, much faster).

The ISO contains a squashfs archive of the root file system used for live booting, in the "LiveOS" directory. Copy the LiveOS directory to your http server.

The ISO has a boot menu at isolinux/isolinux.cfg. This was the model for the iPXE boot entry below, tweaked a bit for loading the root file system over http. It has also been tweaked for EFI booting, by adding the name of the kernel and a definition of an initrd variable to the boot environment. For details on the boot options, consult the dracut manual. I would expect adjusting it to fit the conventions of grub PXE booting to be trivial:

kernel ${boot-url}CentOS-7-x86_64-LiveGNOME-1708/vmlinuz
initrd ${boot-url}CentOS-7-x86_64-LiveGNOME-1708/initrd.img
imgargs vmlinuz initrd=initrd.img ip=dhcp root=live:${boot-url}CentOS-7-x86_64-LiveGNOME-1708/squashfs.img rootfstype=auto ro quiet rhgb rd.luks=0

"${boot-url}" is defined elsewhere. Replace it with the URL for the files on your http or tftp server, as appropriate.

Please let me know if you have any questions.



On Thursday December 28, 2017, Locane wrote:
I know that the files exist and are accessible, since they are the same files
that regular legacy PXE references.  That root= parameter is in the legacy PXE
menu entry too.

Here's the legacy PXE menu entry that works if you're curious:

        kernel /images/LiveCD/vmlinuz
        MENU LABEL ^LiveCD
        append initrd=/images/LiveCD/initrd.img ksdevice=bootif root=live:/
boot.iso kssendmac text  ks=http://<SERVER IP>/cblr/svc/op/ks/profile/LiveCD
        ipappend 2

On Thu, Dec 28, 2017 at 12:12 PM, Locane <address@hidden> wrote:

   The grub entry looks like this currently:

   menuentry 'Do not use broken livecd' {
      linuxefi images/LiveCD/vmlinuz initrd=images/LiveCD/initrd.img ksdevice=
   bootif lang=  root=live:/boot.iso kssendmac text  ks=http://<SERVER IP>/
      initrdefi images/LiveCD/initrd.img

   On Thu, Dec 28, 2017 at 12:09 PM, Randy Goldenberg <
   address@hidden> wrote:

       On Wednesday December 27, 2017, Locane wrote:

           Hello all!  I hope this is the appropriate list for Grub2
           questions, if not
           please let me know.

           As a self-taught DevOps person, I'm missing some knowledge.

           At the moment, I'm trying to boot a 1.2 gigabyte CentOS 7.4 livecd
           from an
           EFI PXE menu using grubx64.efi, and I'm running in to the error
           allocate initrd".

       How have you configured grub for booting the live CD?



       Help-grub mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]