If you are performing a PXE boot installation of Oracle VM Server Release 3.4.1 and Release 3.4.2, you should refer to the procedures in this section.
You must use the GRUB2 boot loader if you plan to perform PXE boot with UEFI-based PXE clients. You can also use the GRUB2 boot loader if your environment includes BIOS-based PXE clients as well as UEFI-based PXE clients.
Oracle VM Release 3.4.1 and Release 3.4.2 require you to build the boot loader for PXE clients.
You must mount the Oracle VM Server ISO image file and then build the GRUB2 boot loader.
Oracle Linux 7 or later provide the
grub2-toolspackage that is required to build the GRUB2 boot loader. For this reason, you cannot build the GRUB2 boot loader on Oracle Linux 6 or earlier.The Oracle VM Server Release 3.4.1 and Release 3.4.2 ISO image files include a
grubx64.efiboot loader in theEFI/BOOT/directory. However, this boot loader is configured for installing Oracle VM Server on UEFI-based systems directly from bootable physical media. You cannot use this boot loader to perform a PXE boot.
Build the GRUB2 boot loader as follows:
Place the contents of the Oracle VM Server ISO image file in a directory where you have write privileges, for example, on an Oracle Linux 7 system you could do the following:
# mkdir tmp # cd tmp # mkdir iso # mount -o loop /tmp/OracleVM-Server.iso /iso # mkdir iso-contents # cp -p -R iso/* iso-contents/Change to the following directory:
path/grub2/binSubstitute
pathwith the path to the contents of the Oracle VM Server ISO image file on your file system. Following on from the example in step 1:# cd iso-contents/grub2/bin/
Build the boot loader with the grub2-mkimage command.
For BIOS-based PXE clients:
grub2-mkimage -O i386-pc-pxe -d ../lib/grub/i386-pc/ \ -o core.0 -p '(tftp)/grub2' pxe tftpFor UEFI-based PXE clients:
grub2-mkimage -O x86_64-efi -d ../lib/grub/x86_64-efi/ \ -o core.efi -p '(tftp)/grub2' efinet tftp
In the preceding command example:
-O i386-pc-pxe|x86_64-efigenerates an image in thei386orx86_64format.-dspecifies the directory where the GRUB2 images and modules reside.-ospecifies the output file.-p '(tftp)/grub2'specifies that thegrub.cfgboot loader configuration file, GRUB2 modules, and other required files reside in thegrub2directory on the TFTP server.pxe|efinet tftpadds the GRUB2pxeorefinetmodule and thetftpmodule.
Host the GRUB2 boot loader on the TFTP server so PXE clients can access it over the network, as follows:
Create a
grub2directory in the TFTP root.Copy the boot loader to the
grub2directory.For BIOS-based PXE clients:
# cp -r
path/grub2/bin/core.0 /tftpboot/grub2/For UEFI-based PXE clients:
# cp -r
path/grub2/bin/core.efi /tftpboot/grub2/
Substitute
pathwith the directory where you built the GRUB2 boot loader.Copy the GRUB2 modules and files to the appropriate directory.
For BIOS-based PXE clients:
# cp -r
path/grub2/lib/grub/i386-pc/*.{lst,mod} /tftpboot/grub2/i386-pcFor UEFI-based PXE clients:
# cp -r
path/grub2/lib/grub/x86_64-efi/*.{lst,mod} /tftpboot/grub2/x86_64-efi
Substitute
pathwith the path to the contents of the Oracle VM Server ISO image file on your file system.
You must create a grub.cfg boot loader
configuration file on the TFTP server. You can use the same
boot loader configuration file for both BIOS-based PXE clients
and UEFI-based PXE clients.
Complete the following steps:
Create a
grub.cfgfile.# touch /tftpboot/grub2/grub.cfg
Configure
grub.cfgas appropriate. See Example grub.cfg.
The following is an example of
grub2/grub.cfg:
set default="1"
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set timeout=60
### END /etc/grub.d/00_header ###
search --no-floppy --set=root -l 'Oracle VM Server'
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install Oracle VM Server' --class fedora --class gnu-linux --class gnu --class os {
echo 'Loading Xen...'
insmod multiboot2
multiboot2 /tftpboot/ovs/xen.mn.efi dom0_mem=max:128G dom0_max_vcpus=20 noreboot
echo 'Loading Linux Kernel...'
# Note that the module2 statement must be a single line, the \ delimiter
# indicates line breaks that you should remove
module2 /tftpboot/ovs/vmlinuz ip=dhcp \
repo=nfs:n.n.n.n:/srv/install/ovs \
ks=nfs:n.n.n.n:/srv/install/kickstart/OVS_ks.config \
ksdevice=eth0
echo 'Loading initrd...'
module2 /tftpboot/ovs/initrd.img
}
In the preceding example of
efi/grub.cfg:
Some parameters in
module2statement are broken into separate lines with the\delimiter for readability purposes. A valid configuration contains all parameters and values in a single line.The Xen hypervisor is loaded first from
ovs/xen.mb.efiin the TFTP server root.Limits are applied to dom0 for the installer to ensure that the installer is stable while it runs. This is achieved using the default parameters:
dom0_mem=max:128Ganddom0_max_vcpus=20.The installer kernel is located within the path
ovs/vmlinuzin the TFTP server root.The IP address for the installer kernel is acquired using DHCP.
You should substitute
n.n.n.nwith the IP address of the NFS or HTTP server that hosts the contents of the Oracle VM Server ISO image file.The
ksdeviceparameter specifies the network interface to use. You should specify a value that reflects your network configuration, such aseth0, a specific MAC address, or an appropriate keyword. Refer to the appropriate kickstart documentation for more information.The initial ramdisk image is located within the path
ovs/initrd.imgin the TFTP server root.

