Bug 1045361 - Anaconda backtraces with "No device found for the requested iface" when PXE booting
Summary: Anaconda backtraces with "No device found for the requested iface" when PXE b...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: doc-Installation_Guide
Version: 7.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Petr Bokoc
QA Contact: ecs-bugs
Martin Banas
URL:
Whiteboard:
Depends On:
Blocks: 1050111
TreeView+ depends on / blocked
 
Reported: 2013-12-20 09:26 UTC by Lukas Zapletal
Modified: 2019-03-06 01:01 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-06-11 15:52:51 UTC
Target Upstream Version:


Attachments (Terms of Use)
Attaching screenshot (23.01 KB, image/png)
2013-12-20 09:26 UTC, Lukas Zapletal
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1023829 1 None None None 2021-01-20 06:05:38 UTC

Internal Links: 1023829

Description Lukas Zapletal 2013-12-20 09:26:15 UTC
Created attachment 839484 [details]
Attaching screenshot

Description of problem:

Booting via PXELinux with standard RHEL6 options, PXELinux:

default linux
label linux
kernel boot/RedHat-7.0-x86_64-vmlinuz
append initrd=boot/RedHat-7.0-x86_64-initrd.img ks=http://foreman.virtual.lan/unattended/provision ks.device=bootif network ks.sendmac

Kickstart:

install
url --url http://192.168.XXXXX/repos/rhel-everything-7.0-beta-1-x86_64-dvd/
lang en_US.UTF-8
selinux --permissive
keyboard us
skipx
network --bootproto dhcp --hostname eln.virtual.lan
rootpw --iscrypted $1$redhat$9yxjZIXXXXXXXhasqW/
firewall --service=ssh
authconfig --useshadow --passalgo=sha256 --kickstart
timezone UTC
services --disabled autofs,gpm,sendmail,cups,iptables,ip6tables,auditd,arptables_jf,xfs,pcmcia,isdn,rawdevices,hpoj,bluetooth,openibd,avahi-daemon,avahi-dnsconfd,hidd,hplip,pcscd,restorecond,mcstrans,rhnsd,yum-updatesd


repo --name="Extra Packages for Enterprise Linux" --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64

bootloader --location=mbr --append="nofb quiet splash=quiet" 

zerombr
clearpart --all --initlabel
part / --fstype=ext4 --size=1024 --grow
part swap  --recommended

text
reboot

The error message is:

UnknownDeviceError: UnknownDeviceError('bootif', GError('GDBus.Error:org.freedesktop.NetworkManager.UnknownDevice: No device found for the requested iface.',))

I have seen other reports here, but it looks in this case I am not providing --device option in the network kickstart statement, therefore I'd expect this to work. I am using bootif, which is documented as a valid option of the ks.device (formerly ksdevice prior Fedora 17).

Attaching screenshot, if needed I can upload ticket via customer portal.

Comment 2 Lukas Zapletal 2013-12-20 10:01:37 UTC
Now this is interesting, I am booting via PXE without any special options and Anaconda does not start with the very same error. PXE Linux script:

kernel boot/RedHat-7.0-x86_64-vmlinuz
append initrd=boot/RedHat-7.0-x86_64-initrd.img ks=http://foreman.virtual.lan/unattended/provision

Note there are NO special options there. Relevant part from my kickstart:

network --bootproto dhcp --hostname eln.virtual.lan

The same error message.

Comment 4 Radek Vykydal 2014-01-06 09:24:50 UTC
Seems to be an issue similar to bug #1023829.

The behaviour in cases when --device specified in kickstart does not exist (ie using old eth0 instead of new systemd naming), or is not specified as in your case doesn't work as in rhel 6 currently. I'll investigate if we are able to use ks.device option in case of --device not specified in rhel7 flow (dracut + anaconda vs. loader + anaconda in rhel6), and if bootif value of ks.device works.

When reporting a bug please attach the traceback log file (/tmp/anaconda-tb-*) or use bug reporting to bugzilla that should be offered by installer.

Comment 6 Radek Vykydal 2014-01-06 14:50:23 UTC
I wonder where the "network" option is targeted, it is not an anaconda boot option.

Comment 7 Lukas Zapletal 2014-01-06 15:39:47 UTC
Okay, I was passing kernel parameters incorrectly, when I do not provide ksdevice=bootif, it works fine.

It looks like we just need to properly document that this option value (bootif) is not supported now.

Comment 8 David Cantrell 2014-01-15 19:06:03 UTC
Reassigning so the docs team can update the install guide with regards to the information in comment #7.

Comment 9 Petr Bokoc 2014-01-20 13:32:56 UTC
Actually the whole ksdevice boot option is deprecated now. The entire chapter on boot options has been rewritten for RHEL 7 (see BZ#831512, and more importantly, see the attachment describing the options available).

We'll add a section into the Installation Guide covering deprecated and removed options for RHEL7. Later this section might be moved into the Migration Planning Guide, but we'll keep it in the IG for now.

Comment 16 Jan Stodola 2014-05-20 09:56:56 UTC
Hi Petr,
Table 20.7. Automatic Interface Configuration Methods says:

ksdevice=link 	Ignored (this is the same as the default behavior)

This is not true, it is not ignored. If the "ksdevice=link" parameter is present, anaconda tries to find a network device with a link and activates this device.

Comment 17 Radek Vykydal 2014-05-20 11:16:30 UTC
(In reply to Jan Stodola from comment #16)
> Hi Petr,
> Table 20.7. Automatic Interface Configuration Methods says:
> 
> ksdevice=link 	Ignored (this is the same as the default behavior)
> 
> This is not true, it is not ignored. If the "ksdevice=link" parameter is
> present, anaconda tries to find a network device with a link and activates
> this device.

Jan are you sure? I thought that ksdevice=link wrt choosing a device to be activated in initramfs is actually ignored (ie not a network device with link is activated but all network devices with link are activated). Another thing is using the ksdevice value for missing kickstart network --device option, where the first device with link found is actually used.

Comment 18 Jan Stodola 2014-05-20 13:40:38 UTC
Radek, I tested this way:

1. create a kickstart on /boot partition:

install
cdrom
lang en_US.UTF-8
keyboard us
reboot
text
rootpw redhat
timezone --utc America/New_York

bootloader --location=mbr
zerombr
clearpart --all --initlabel
autopart

%packages
@base
%end

2. download installation kernel and initramdisk to /boot, modify grub.cfg, use following kernel boot parameters to start the installation:

"ks=hd:sda1:/ks.cfg"

3. make sure that _no_ DVD is present in the drive (just to make sure the installation fails in initramfs)
4. restart the system and start the installation

The installation fails as expected and networking is not running.

Now restart the installation again and add the "ksdevice=link" boot parameter - the installation fails too, but the network device is configured with an IP address.

Both installations fail in initramfs and the "ksdevice=link" parameter is obviously not ignored.

Is my testing incorrect?

Comment 19 Radek Vykydal 2014-05-20 14:29:11 UTC
Hm, so currently adding ksdevice=link seems to be equivalent to rd.neednet, ie saying "activate network in initramfs", which without further network configuration (ip= argument) means activating of all devices (The same happens when the ksdevice is not present and network is needed in initramfs ... first row of the table).

So I wonder what should we write in the doc then... not trivial to find something sensible and not misleading.

Comment 20 Petr Bokoc 2014-05-20 15:59:54 UTC
(In reply to Radek Vykydal from comment #19)
> Hm, so currently adding ksdevice=link seems to be equivalent to rd.neednet,
> ie saying "activate network in initramfs", which without further network
> configuration (ip= argument) means activating of all devices (The same
> happens when the ksdevice is not present and network is needed in initramfs
> ... first row of the table).
> 
> So I wonder what should we write in the doc then... not trivial to find
> something sensible and not misleading.

Well, ksdevice=link is the same thing as no ksdevice= at all, we could just say that, right? 'ksdevice=link: same as "not present"'

Comment 21 Radek Vykydal 2014-05-20 16:16:21 UTC
Not exactly. If the installation doesn't require network in initramfs, eg DVD install, with ksdevice=link network would be activated in initramfs while without ksdevice=link it would be not.

So maybe let's say something along: same as "not present" but network will be activated in initramfs no matter it is actually needed (but this can be achieved by supported rd.neednet option).

Comment 23 Jan Stodola 2014-05-29 11:36:31 UTC
Looks good to me, thanks.


Note You need to log in before you can comment on or make changes to this bug.