Bug 599289 - F13 Anaconda from net-install iso image does not prompt for nic init
F13 Anaconda from net-install iso image does not prompt for nic init
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: anaconda (Show other bugs)
13
All Linux
low Severity medium
: ---
: ---
Assigned To: Radek Vykydal
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-06-02 23:55 EDT by Richard Shaw
Modified: 2010-06-17 23:01 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-06-16 08:41:40 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Log file from failed install attempt. (9.97 KB, text/plain)
2010-06-03 20:07 EDT, Richard Shaw
no flags Details
lspci -v from EeePC (7.39 KB, text/plain)
2010-06-04 07:37 EDT, Richard Shaw
no flags Details
lsmod from EeePC (1.94 KB, text/plain)
2010-06-04 07:38 EDT, Richard Shaw
no flags Details

  None (edit)
Description Richard Shaw 2010-06-02 23:55:41 EDT
Description of problem:
Fedora-13-netinst-i386.iso does not prompt for nic init after being setup on a flash drive using livecd-iso-to-disk on an Asus EEEPC 701 4G.

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


How reproducible:
Every time on several install attempts.

Steps to Reproduce:
1. Boot to USB flash drive. 
2. Go through anaconda workflow and get to bootloader page.
3. Click Next
  
Actual results:
Does not prompt for nic init and goes strait to transferring install image, then I get the following error:

The installer has tried to mount image #1, but cannot find it on the hard drive.

Please copy this image to the hard drive and click Retry.

Expected results:
Should prompt for nic init.

Additional info:
I have tried the same image file under VirtualBox and it prompts for nic init. I have minimally verified network connectivity with activity lights on router.
Comment 1 Chris Lumens 2010-06-03 09:21:47 EDT
When you hit this problem, can you switch to tty2, grab /tmp/anaconda.log, and attach it to this bug report?
Comment 2 Richard Shaw 2010-06-03 20:07:52 EDT
Created attachment 421074 [details]
Log file from failed install attempt.
Comment 3 Richard Shaw 2010-06-04 07:37:12 EDT
Created attachment 421209 [details]
lspci -v from EeePC

Just in case it's helpful.
Comment 4 Richard Shaw 2010-06-04 07:38:15 EDT
Created attachment 421210 [details]
lsmod from EeePC

I see the atl2 module is loaded, but not used by another. I'm not sure if it needs to be.
Comment 5 Richard Shaw 2010-06-04 07:38:40 EDT
ifconfig only shows loopback.
Comment 6 Richard Shaw 2010-06-08 08:40:50 EDT
Booted System Rescue CD 1.5.2 from USB and verified it also loads the atl2 module, but this time both eth0 and wlan0 were available and wired networking worked.

If someone thinks it's worth it I'll download F12 netinst and see if it has the same problem. 

I also have access to a USB DVD drive.

Is it possible that this may be a kernel problem instead of an anaconda prolem?
Comment 7 Radek Vykydal 2010-06-15 09:56:15 EDT
(In reply to comment #2)
> Created an attachment (id=421074) [details]
> Log file from failed install attempt.    

The log says that install method you used is hdiso (repo= parameter):

23:52:24,779 INFO loader: kernel command line: initrd=initrd.img repo=hd:UUID=D280-E836:/  BOOT_IMAGE=vmlinuz 

so the packages are not supposed to be fetched from repositories over network (therefore anaconda doesn't ask for network configuration) but from iso image on hd you defined (hd:UUID=D280-E836:/), and anaconda can't find iso on that location as the message says:

The installer has tried to mount image #1, but cannot find it on the hard
drive.

For supported use of livecd-iso-to-disk, you can refer to http://fedoraproject.org/wiki/FedoraLiveCD/USBHowTo.
Comment 8 Richard Shaw 2010-06-15 11:28:38 EDT
So if I don't have a USB cd/dvd drive, am I not supposed to be able to use the netinst image? 

So it would seem that I either have to have all the files available, or I have to download install.img even though it's on the USB stick because anaconda can't handle more than one source method?

I know this is not the most popular method of installing, but it seems like a valid use case to have what files you HAVE to have (install.img) pre-downloaded, and then pull all others (packages) from an online source.

How does this work with a burned image? I assume it still finds install.img on the CD/DVD but still looks for the packages on a online mirror?
Comment 9 Radek Vykydal 2010-06-15 11:52:25 EDT
(In reply to comment #8)
> So if I don't have a USB cd/dvd drive, am I not supposed to be able to use the
> netinst image? 
> 
> So it would seem that I either have to have all the files available, or I have
> to download install.img even though it's on the USB stick because anaconda
> can't handle more than one source method?
> 
> I know this is not the most popular method of installing, but it seems like a
> valid use case to have what files you HAVE to have (install.img)
> pre-downloaded, and then pull all others (packages) from an online source.
> 

The thing is that you have probably used repo= parameter (repositories location) in place of stage2= parameter (install.img location). See the documentation of stage2= and repo= boot parameters at http://fedoraproject.org/wiki/Anaconda_Boot_Options.

In your case, setting stage2=hd:UUID=D280-E836:/ and removing repo= parameter (to use default network repositories) should work. You can also try to set repo= explicitly to a network repo.

> How does this work with a burned image? I assume it still finds install.img on
> the CD/DVD but still looks for the packages on a online mirror?    

Yes, with CD/DVD media, install.img is taken from media by if you don't override it with stage2= parameter, and packages are taken from online mirror if you don't override it with repo= boot parameter.
Comment 10 Richard Shaw 2010-06-15 13:27:07 EDT
Just so you know, I did not do any manual configuration, the repo= parameter must have been setup by livecd-iso-to-disk.

Also, from http://fedoraproject.org/wiki/FedoraLiveCD/USBHowTo#Command_Line_Method_-_Linux_only

"The livecd-iso-to-disk method also works with netinst.iso and boot.iso files, even though these are not Live images."

Should this be amended slightly? Or should the livecd tools be smart enough to handle this situation?

If so, should this bug be reassigned to the livecd-tools package?

I'll give the stage2 parameter a try when I get home tonight.
Comment 11 Radek Vykydal 2010-06-15 13:45:50 EDT
(In reply to comment #10)
> Just so you know, I did not do any manual configuration, the repo= parameter
> must have been setup by livecd-iso-to-disk.
> 
> Also, from
> http://fedoraproject.org/wiki/FedoraLiveCD/USBHowTo#Command_Line_Method_-_Linux_only
> 
> "The livecd-iso-to-disk method also works with netinst.iso and boot.iso files,
> even though these are not Live images."
> 
> Should this be amended slightly? Or should the livecd tools be smart enough to
> handle this situation?
> 
> If so, should this bug be reassigned to the livecd-tools package?
> 
> I'll give the stage2 parameter a try when I get home tonight.    

Thanks a lot for information, when I checked quickly I tried older version of livecd-iso-to-disk which didn't set up repo= parameter this way, sorry for that - my bad. I'll investigate more, from what you say it seems we should fix something.
Comment 12 Richard Shaw 2010-06-15 17:33:01 EDT
I did some digging in the script myself. Unfortunately I only know some python, my bash programming is not very good at all, but I think I figured out how to fix it in theory:


The detection portion of the code:
---
detectisotype() {
   if [ -e $CDMNT/LiveOS/squashfs.img ]; then
       isotype=live
       return
   fi
   if [ -e $CDMNT/images/install.img ]; then
       isotype=installer
       return
   fi
   echo "ERROR: $ISO does not appear to be a Live image or DVD installer."
   exitclean
}
---
There needs to be a third option with the correct logic to figure out that install.img is available, but packages are not. Maybe it could be something like isotype=net_installer.

Then this part:
---
# DVD Installer
if [ "$isotype" = "installer" ]; then
 sed -i -e "s;initrd=initrd.img;initrd=initrd.img repo=hd:$USBLABEL:/;g" $BOOTCONFIG $BOOTCONFIG_EFI
 sed -i -e "s;stage2=\S*;;g" $BOOTCONFIG $BOOTCONFIG_EFI
fi
---
Might need to look like:
---
# DVD Net Installer
if [ "$isotype" = "net_installer" ]; then
 sed -i -e "s;initrd=initrd.img;initrd=initrd.img stage2=hd:$USBLABEL:/;g" $BOOTCONFIG $BOOTCONFIG_EFI
 sed -i -e "s;stage2=\S*;;g" $BOOTCONFIG $BOOTCONFIG_EFI
fi
---
Although I think the 2nd sed line would need to occur first or I think it will erase what the first sed line does.

The other option I can think of would be just to use stage2= instead of repo=. Shouldn't anaconda figure out that local install media is available anyway?
Comment 13 Richard Shaw 2010-06-15 23:23:31 EDT
I tried changing repo= to stage2= i.e:

label linux
  menu label ^Install a new system or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img stage2=hd:UUID=D280-E836:/ 

but ran into a problem. It now could not find install.img. Will stage2 look inside of an ISO like repo will?

Error in text mode portion of anaconda:
"An error occurred finding the installation image on your hard drive. Please check your images and try again."

Any ideas?
Comment 14 Radek Vykydal 2010-06-16 07:04:24 EDT
Ah, the stage2= parameter should be

stage2=hd:UUID=D280-E836:/images/install.img

but I haven't try yet if it really works.

What I am positive about to work is using dd method (eg. "dd if=Fedora-13-i386-netinst.iso of=/dev/sdX" and when booting the USB, changing the boot parameter (after hitting Esc)

stage2=hd:LABEL="Fedora"

to

stage2=hd:LABEL="Fedora":/images/install.img 

(this will be fixed in Fedora 14, I'll make a note for F13 in documentation)
Comment 15 Radek Vykydal 2010-06-16 08:41:40 EDT
(In reply to comment #14)
> Ah, the stage2= parameter should be
> 
> stage2=hd:UUID=D280-E836:/images/install.img
> 
> but I haven't try yet if it really works.

Ok, now I have, it does.

I will update the http://fedoraproject.org/wiki/FedoraLiveCD/USBHowTo with what we really support:

- livecd-iso-to-disk method for livecd and install dvd
- dd method for live CD, netinst.iso and boot.iso. For the two latter and Fedora 13, ":/images/install.img" has to be appended to stage2=hd:label="Fedora" boot parameter so that user is not asked for install.img location in loader
(fixed with bug #528809).

I am closing this as not a bug, thanks for the report and cooperation. If you want support for netinst.iso and boot.iso to be added to livecd-iso-to-disk, please fill a new bug with the request for livecd-tools component.
Comment 16 Richard Shaw 2010-06-16 09:42:18 EDT
(In reply to comment #14)
> Ah, the stage2= parameter should be
> 
> stage2=hd:UUID=D280-E836:/images/install.img

Of course that will not work for me since the livecd tool copies the ISO, not the contents of the ISO. I assume that means that the stage2= parameter will not look inside of an ISO? If so, the explaination at http://fedoraproject.org/wiki/Anaconda/Options is confusion/ambiguous. 

The following entry is what confuses me:
"repo=hd:<device>:/<path>
Look for ISO images on the hard drive partition given by device (/dev/sda1, for instance). This may not be a partition that will be formatted during installation later. These should be ISO images, not an exploded tree on the hard drive. anaconda will not look for the install.img file in any of the ISO images. The install.img must be placed in <path>/images/, or a stage2= or CD must be provided. device can be a device name, LABEL=, or UUID=."

It starts out saying it will look for packages in an ISO but not install.img, which can't be true or I would not have gotten as far in the install process as I did.

Then for the description of "stage2=" should probably be updated to explicitly state that it will not look inside of an ISO for install.img.

I don't want to dd over my USB stick, so if I copy the contents of the ISO to the disk and update my syslinux.cfg accordingly, it should work right?
Comment 17 Radek Vykydal 2010-06-16 10:44:53 EDT
(In reply to comment #16)
> (In reply to comment #14)
> > Ah, the stage2= parameter should be
> > 
> > stage2=hd:UUID=D280-E836:/images/install.img
> 
> Of course that will not work for me since the livecd tool copies the ISO, not
> the contents of the ISO. I assume that means that the stage2= parameter will
> not look inside of an ISO? If so, the explaination at
> http://fedoraproject.org/wiki/Anaconda/Options is confusion/ambiguous. 

It will (it worked for me with livecd-iso-to-disk from F13) because install.img is extracted from the iso and copied right to the USB stick into directory images by livecd tool (for $isotype "installer" which is your netinst.iso case).
Comment 18 Richard Shaw 2010-06-16 11:10:49 EDT
Ok, I get it now... The livecd-iso-to-disk utility copies the installer.img out of the ISO but also copies over the ISO. In the case of the netinst image, that is redundant. Perhaps a test for the netinst image versus the full installer DVD could prevent it.
Comment 19 Richard Shaw 2010-06-17 23:01:30 EDT
(In reply to comment #15)
> I am closing this as not a bug, thanks for the report and cooperation. If you
> want support for netinst.iso and boot.iso to be added to livecd-iso-to-disk,
> please fill a new bug with the request for livecd-tools component.    

Bug filed with my first patch to a bash script

https://bugzilla.redhat.com/show_bug.cgi?id=604942

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