[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#250323: more information



With the assistance of some local debian developers I made a few
further tests. This is also relevant to bugs 220529, 247704.
The three bugs should probably be merged.

I tested with Official netinst i386 of 20040528,
http://gluck.debian.org/cdimage/testing/sarge_d-i/i386/20040528/sarge-i386-netin
st.iso
md5 = 2d1e2248b19a23aa5d90624fb15395fa

I was testing on a Dell Latitude CPiA A366XT, with bios version A01,
the same hardware as in bug 247704.

As before, the symlinks in /cdrom/dists did not work, causing
installation to fail.

The cd was tested in other laptops and the symlinks work, so the
disc itself is not at fault.

This suggests a problem specific to the ide controller in these
laptops, possibly a crappy bios problem. I don't know how to narrow
it down further.

There may however be things that could be done to improve the behaviour
of debian-installer in such cases.

The tests I made were as follows

boot command        result
------------        ------
linux               fails at "load installer components from cd"
linux hw-detect/start_pcmcia=false      fails as above
linux noapic nolapic                    fails as above
linux debian-installer/probe/usb=false  fails as above
linux aic7xxx=no_probe                  fails as above
linux append="hdc=noprobe hdc=cdrom"    fails as above
linux26                                 fails as above
expert                                  fails as above

In 'expert' mode I deselected all the IDE chipset drivers except
piix and generic. Also left in ide-detect,ide-disk,ide-cd,isofs,floppy.
The cdrom is not detected (ie the contents of .disk/info file are shown)
But it still fails at the "load installer components from cd" step.

For booting with 'linux' I discovered a workaround, which is to
  <F2>
  umount /cdrom
  mount -t iso9660 /dev/cdroms/cdrom0 /cdrom
  ls -la /cdrom/dists
  (shows symlinks correctly)

If I then go back to the installer <F1> and try that step again
(ie hit the [Retry] button on the installer screen, it works.)
This applies to both 'linux' and 'expert' boots.

However I then hit a critical bug:
On the installer console I get
 Debootstrap Error
 Failed getting Release file /cdrom/dists//Release
Notice the double /.

The syslog shows
 base-installer: error: exiting on error
    base-installer/debootstrap/error/nogetrel

This is occuring because the $SUITE variable is not set by the
time the installer hits /usr/lib/debootstrap/functions.
I am not sure of the exact reason why this happens.

Poking around took me on the following adventures:
1. I saw in /var/lib/dpkg/info/cdrom-detect.postinst that it sets
   $suite, not $SUITE, and this is not exported to the enviroment.
   It looks like $SUITE is set in /var/lib/dpkg/base-installer.postinst
   but I don't grok the call that does it:
     if db_get mirror/suite && [ "$RET" ] ; then
          SUITE=$RET
     fi
   The failure I see in the installer dialog seems to be from this line:
     cp /cdrom/dists/$SUITE/Release $APTLISTDIR/tmp || \
        nogetrel="/cdrom/dists/$SUITE/Release

2.  By this time I had successfully partitioned the hard disk.
    I tried to copy the cdrom contents to one of the partitions,
    and remount that as /cdrom.

    This failed with the same error, $SUITE not getting set.
    I even went back to the partitioning step and fiddled with the
    partitioning to try to get base-installer to work.

3.  I hacked /usr/lib/prebaseconfig.d/90prepare-base-config to force
    SUITE="testing", but it failed with the same error.
    I realised that I should have hacked
      /var/lib/dpkg/info/base-installer.postinst.
    This seemed to give a little more progress; the error message
    about the Release file went away and I was left with:
      An installation step failed. You can try to run the failing item
      again from the menu or skip it and try something else. The failing
      step is : Install the base system.


4.  For some reason the /target/root directory was not being created,
    so /target/root/dbootstrap_settings was not created.
    It appears the value of SUITE is stored there.
    So I created it, and still had no luck.
    the file is getting updated, but it contains the line
        SUITE=""
    grr.

5.  I tried debootstrapping myself.
       debootstrap --verbose sarge /target /cdrom
       I: Retrieving debootstrap.invalid_dists_sarge_Release
       E: unknown location /cdrom/dists/sarge/Release
    grrrrrrrrrrrrr.
    I couldn't find information about where an appropriate basedebs.tar
    would lurk so I gave up here.

Summary:
[bug?]
In my particular case, something is failing to determine correctly
the value of SUITE from the netinst cdrom, during cdrom-detect.

[bug?]
As far as I can tell, something is omitting to create /target/root.
/usr/lib/prebaseconfig.d/90prepare-base-config then fails to create
/target/root/dbootstrap_settings.
This has the flow-on effect of causing SUITE to not be set correctly
when base-installer runs (the value to use is stored in
/target/root/dbootstrap_settings). base-installer then fails. Miserably.

[bug?]
If it matters, /target/boot is not created either. Is that a bug in
partman? (see partitioning below).

Extra info:
this is the partitioning scheme.
  hda1   /         148 Mb
  hda5   /usr     3000 Mb
  hda6   /var      512 Mb
  hda7   /home    2000 Mb
  hda9   /data   13800 Mb (i.e. remainder of the disk)
  hda8   swap      512 Mb

[bug?]
There is definitely some kind of problem with symlink handling in the
packages used for the sarge installer. When I did this
  cp -r /cdrom /target/data
the /cdrom/debian symlink, which points to '.' was copied very many
times, until I got a "too many levels of symbolic links" error.
In /target/data, I had
 /target/data/cdrom/debian/debian/debian/.... /dists/sarge

If it matters, the number of 'debian' subdirs was 40.

Cheers
Vince







Reply to: