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: