1

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.

gidot
  • 33
  • 7
  • 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 08: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: https://www.wetransfer.com/downloads/10a372d4e1e0caf411cbbfa34d4bee4020150522102317/146f2d2d881181e8e27c7bb68c63be4120150522102317/bcd5b7 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 06:43
  • SP3 by default uses lilo as well, that's why I wonder why it calls for grub. I ran tcpdump to listen to only tftp port to eliminate unnecessary dumps. The error that I'm getting now is this http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c04472696&sp4ts.oid=7307066, except that I am using ipv4. I haven't looked deeper into it. – gidot May 23 '15 at 08:16
  • 1) Wireshark captures should've been full if not we do not know i.e. what TFTP requests were denied. 2) Now PXE works and you nun into an "after first boot" error that haven't been fixed by HP. 3) probably you should clean up your question... – Pat May 23 '15 at 17:03

1 Answers1

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.

gidot
  • 33
  • 7