0

I'm trying to install SLES 11 SP3 using Cobbler but it failed after downloading the NBP file. The error on the screen is "Unable to fetch TFTP image".

I have a similiar setup for SLES 11 SP2 and it is working fine. The difference with this setup is I am installing SLES 11 SP3 on a IBM x3500 M5 server, which requires a bootable driver kit(BDK) to be installed prior to the installation of the OS itself.

My setup is as follows:

/var/lib/tftpboot> tree uefisp3
uefisp3
├── biostest
├── bootx64.efi
├── elilo.conf
├── initrd
├── linux
├── memtest
├── message
└── pxelinux.0

The initrd and linux is not from the SLES DVD, but from the BDK image.

Quoting from https://drivers.suse.com/doc/Usage/Driver_Kits.html: Copy the kernel and initrd images from the driver kit iso image to the appropriate location on your tftp boot server. The initrd and kernel image are found under the /boot/x86_64/loader directory.

I have tried changing the /etc/cobbler/dhcp.template by pointing the filename to uefisp3/bootx64.efi, pxelinux.0 and uefisp3/pxelinux.0 but none of them work.

My cobbler distro report:

Name                           : sles11sp3
Architecture                   : x86_64
Breed                          : suse
Comment                        :
Initrd                         : /driverkit/boot/x86_64/loader/initrd
Kernel                         : /driverkit/boot/x86_64/loader/linux
Kernel Options                 : {'install': 'http://192.168.0.10/sles/sles11sp3', 'addon': 'http://192.168.0.10/sles/driverkit'}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {}
Management Classes             : []
OS Version                     : sles10
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

My elilo.conf (to be honest I'm not even sure if I need this file, but this is how I did it with SLES 11 SP2):

/var/lib/tftpboot> cat uefisp3/elilo.conf
prompt
timeout=100
default=linux

image=linux
    label=linux
    description = "Installation"
    initrd=initrd
    append="/images/sles11sp3/initrd textmode=1 install=http://192.168.0.10/sles/sles11sp3 autoyast=http://192.168.0.10/cblr/svc/op/ks/profile/raid1drbd_sp3i addon=http://192.168.0.10/sles/driverkit"

Excerpt from pxelinux.cfg/default file:

LABEL raid1drbd_sp3
        kernel /images/sles11sp3/linux
        MENU LABEL raid1drbd_sp3
        append initrd=/images/sles11sp3/initrd textmode=1 install=http://192.168.0.10/sles/sles11sp3 addon=http://192.168.0.10/sles/driverkit  autoyast=http://192.168.0.10/cblr/svc/op/ks/profile/raid1drbd_sp3
        ipappend 2

TFTP server works, as I did try to fetch some files from the TFTP server manually. In /var/log/messages there is an error "tftp: client does not accept options", which from what I read is most likely not relevant to the issue that I'm facing now.

Anyone with success installing SLES 11 SP3 with the driver kit?

UPDATE:

Captured the following during PXE boot attempt:

PXE boot on SLES 11 SP3

2015-05-21 16:30:52.830169 IP 192.168.0.50.fj-hdnet > spacewalk.tftp:  49 RRQ "uefisp3/bootx64.efi" octet tsize 0 blksize 1468
2015-05-21 16:30:52.839093 IP 192.168.0.50.h323gatedisc > spacewalk.tftp:  41 RRQ "uefisp3/bootx64.efi" octet blksize 1468 
2015-05-21 16:30:53.360209 IP 192.168.0.50.h323gatestat > spacewalk.tftp:  41 RRQ "uefisp3/bootx64.efi" octet blksize 1468 
2015-05-21 16:30:53.872046 IP 192.168.0.50.h323hostcall > spacewalk.tftp:  30 RRQ "/grub.efi" octet blksize 512 
2015-05-21 16:30:53.875762 IP 192.168.0.50.caicci > spacewalk.tftp:  30 RRQ "/grub.efi" octet blksize 512

Am running out of time, will do further testing tomorrow. Thanks for the idea. Brilliant!

SECOND UPDATE:

Currently PXE works as well as the auto installation. However the server is not able to boot up due to error with elilo.conf. I was not around during the installation so I am not sure what went wrong. Didn't get the chance to perform another round of installation.

Thanks.

  • It might sound extreme but in these cases a Wireshark traffic capture will save you many working hours. You can see there what files are requested by the client and where is the "real" error. If you are not able to understand a Wireshark capture just upload it somewhere. – Pat May 20 '15 at 8:48
  • you should've saved the captures as pcap files and upload the those files somewhere... – Pat May 21 '15 at 11:47
  • Oh I do have them. I'll upload them up tomorrow, Don't have access to the server from home. – gidot May 21 '15 at 13:15
  • Link to download the pcaps: wetransfer.com/downloads/… sp2.pcap - sp2 efi boot. works fine. sp3_gefi.pcap - sp3, configuration is as how I did it with SP2. It requested for grub.efi. sp3_test.pcap - sp3, with grub.efi and grub.cfg in place. Works, but error with elilo.conf upon boot. Thanks. – gidot May 22 '15 at 20:09
  • you uploaded partial captures showing no more than TFTP requests.. well there's no much info there. The only thing I can see is that SP2 uses lilo while SP3 uses grub... – Pat May 23 '15 at 6:43
0

Sorry for the late response, this is how I got it to work.

1 - Mount SLES 11 SP3 to /sles11sp3

2 - Mount the bootable driverkit to /bdk

3 - Copy the grub.efi file into /var/lib/tftpboot/ directory.

# cp /bdk/EFI/BOOT/grub.efi /var/lib/tftpboot/

4 - Copy the bootx64.efi, kernel and initrd, and grub.cfg into /var/lib/tftpboot/uefisp3/ directory.

# cp /bdk/EFI/BOOT/bootx6.efi /var/lib/tftpboot/uefisp3/
# cp /bdk/boot/x86_64/loader/linux /var/lib/tftpboot/uefisp3/
# cp /bdk/boot/x86_64/loader/initrd /var/lib/tftpboot/uefisp3/
# cp /sles11sp3/EFI/BOOT/grub.cfg /var/lib/tftpboot/uefisp3/

All of the files can be copied from either SLES DVD or Driver Kit, except for the initrd file. The initrd file must be copied from the driver kit.

5 - Modify grub.cfg file. The only important menu entry for me is the installation, so I removed the rest of the menu entries.

menuentry 'Auto Installation' {
  set gfxpayload=keep
  echo 'Loading kernel ...'
  linuxefi /images/sles11sp3/linux splash=silent textmode=1 showopts install=http://192.168.0.10/sles/sles11sp3 autoyast=http://192.168.0.10/sles/autoyast/sles11sp3towerbdk.ks
  echo 'Loading initial ramdisk ...'
  initrdefi /images/sles11sp3/initrd
}

6 - Add the following inside autoyast file:

  <add-on>
    <add_on_products config:type="list">
      <listentry>
        <media_url><![CDATA[http://192.168.0.10:80/sles/bdk]]></media_url>
        <product>driver-kit</product>
        <product_dir>/</product_dir>
      </listentry>
    </add_on_products>
  </add-on>

7 - Add the uefisp3 group in the dhcpd.conf file.

group {
        filename "uefisp3/bootx64.efi";
        next-server 192.168.0.10;
    host test { hardware ethernet 40:F2:H9:A6:49:C7; fixed-address 192.168.0.50; option host-name test; }
}

8 - Restart dhcp and tftp services.

@Pat Thanks for the tcpdump idea that led to some of the findings.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.