Bug 1331698

Summary: Network booting in grub fails when using virtio-net and SLOF-20160223-0
Product: Red Hat Enterprise Linux 7 Reporter: Thomas Huth <thuth>
Component: SLOFAssignee: Thomas Huth <thuth>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: unspecified    
Version: 7.3CC: juzhang, knoel, michen, qzhang, xuhan
Target Milestone: rc   
Target Release: ---   
Hardware: ppc64le   
OS: Unspecified   
Whiteboard:
Fixed In Version: SLOF-20160223-2.gitdbbfda4.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-04 04:33:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Thomas Huth 2016-04-29 10:00:49 UTC
Description of problem:
Booting via network in grub2 currently fails when using virtio-net as NIC and the current SLOF as firmware.

Version-Release number of selected component (if applicable):
SLOF-20160223

How reproducible:
100%

Steps to Reproduce:
1. In the /boot/grub2/grub.cfg file of the guest, add a section like this:
  menuentry 'Netboot' --class os {
     insmod net
     insmod ofnet
     insmod tftp
     insmod gzio
     insmod part_gpt
     set net_default_server=10.0.2.2
     net_add_addr eno0 ofnet_net 10.0.2.99
     echo 'Loading Linux ...'
     linux (tftp)/linux
     echo 'Loading initial ramdisk ...'
     initrd (tftp)/initrd
  }
2. On the host, prepare a folder with the TFTP files, e.g.:
  mkdir /tmp/tftp
  cp /boot/vmlinuz-3.10.0-373.el7.ppc64le /tmp/tftp/linux
  cp /boot/initramfs-3.10.0-373.el7.ppc64le.img /tmp/tftp/initrd
3. Run the guest like this:
  /usr/libexec/qemu-kvm -nographic -vga none -hda /path/to/guesthd.img \
             -device virtio-net-pci,netdev=mynet -netdev user,id=mynet
4. At the grub prompt, select the 'Netboot' entry.

Actual results:
error: Couldn't retrieve mac address..
error: card not found.
error: destination unreachable.

Expected results:
grub succeeds to load the files via network.

Additional info:
This is a known bug from upstream, which has been fixed shortly after the 20160223 release of SLOF. We should backport this patch from upstream:
 http://git.qemu.org/?p=SLOF.git;a=commitdiff;h=d78d7322efbe81027dbc

Comment 1 Thomas Huth 2016-05-03 07:09:00 UTC
Seems like I forgot to copy the whole QEMU command string in step 3 of the description. It should look like this:

  /usr/libexec/qemu-kvm -nographic -vga none -hda /path/to/guesthd.img \
             -device virtio-net-pci,netdev=mynet \
             -netdev user,id=mynet,tftp=/tmp/tftp

i.e. the "tftp=/tmp/tftp" was missing at the end.

Comment 2 Miroslav Rezanina 2016-05-06 12:48:00 UTC
Fix included in SLOF-20160223-2.gitdbbfda4.el7

Comment 4 Xu Han 2016-06-02 10:59:31 UTC
Reproduced this issue with SLOF-20160223-1.gitdbbfda4.el7.

After boot from entry 'Netboot', console showed:

  error: Couldn't retrieve mac address..
  error: card not found.
  error: destination unreachable.



Verified this with SLOF-20160223-3.gitdbbfda4.el7.noarch.

After boot from entry 'Netboot', console showed:

  Loading Linux ...
  Loading initrd ...
  Preparing to boot Linux version 3.10.0-418...
  ...


So base on the above test result, this bug has been fixed.

Comment 6 errata-xmlrpc 2016-11-04 04:33:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-2355.html