make-fai-nfsroot stops

Jens Ruehmkorf ruehmkorf at informatik.Uni-Koeln.DE
Tue Oct 16 12:14:38 CEST 2001


Hi all!

On Tue, 16 Oct 2001, Geert Stappers wrote:

> > What do you mean by "no kernel" is installed? You use debootstrap for
> > building a nfsroot to boot from, I suppose. If you want to install
> > modules to have them available after booting you can do that by
> >
> > # cd /tmp/chroot/
>     cd /tmp/target/
>
> > # mount -t proc proc proc/
> > # chroot . /bin/bash
> > $> do-whatever-you-need-to-install-your-kernel
> > $ <Ctrl-D>
> > # umount proc/
>
> At /tmp/target is "/" of the fresh system mounted

Duh. My fault, I didn't read Christoph's first Email close enough.

I myself use something else than fai to install clients automatically
(which some others and I developed) so I didn't come across similar
problems with make-fai-whatever. I just know how debootstrap and automatic
installing in generell works and try to help out ;)

So there are two problems:

1. make-fai-nfsroot seems to be buggy (Eray pointed out that it's not
fault tolerant, when a command fails the whole big process is botched)

For example right now debootstrap exits with a non-zero exit status every
other day because the installation of some tiny bloody package might fail
(which seems to cause that the fai script fails).

Thomas probably does his script like that because of the debian-policy
that states you should use -e for scripts to detect failures. What I do
for my scripts that build my nfsroot is to invoke them partially with -i
for interactively doing things. Here is a snipplet out of my script:

-- start excerpt --
#
# We want apt to act interactively; set -e and such shell-
# opts might be harmful. So, instead of saving all
# $SHELLOPTS, just invoke a subshell with the options we
# want.
#
bash -ic "(
# export DEBIAN_FRONTEND=noninteractive

# some initial apt-tasks
apt-get update
apt-get install apt

# quick hack for dhclient
[ x${PACKAGES//*dhcp-client*/dhcp-client} = xdhcp-client ] &&
  touch /etc/init.d/dhcp-client

apt-get install $PACKAGES

apt-get clean
apt-get check
)"
-- end excerpt --

This way several critical sections are done interactively (without -e).

2. Usage of debootstrap to install the client is buggy: As I stated above
right now debootstraps fails sometimes (because some base-packages were
changed for example). So, if you still want to be able to install your
clients properly, do something like this:

i. take a look at pbuilder by Junichi Uekawa. Use it to build your own
base.tgz (that is installed onto your clients lateron instead of using
debootstrap).

ii. change the apropriate part within fai to have it unpack your
customized base.tgz to /tmp/target Only the invocation of debootstrap
should be altered by this.

iii. rebuild your base.tgz like every other week. Maybe somebody can do
this and provide it for the others?

Don't bother to ask the debian-boot people too much about failures that
occur outside boot-floppies. They focus all the time they have on b-f to
get it working and are probably not willing to spend their time on
resolving different bugs.

In my opinion, option i-iii would leave fai to work much more stable for
installing testing/unstable, because you don't have to worry whether
debootstrap works or not. Later it can be altered to use debootstrap
again.

Just my own 2 euro ;)

Kind regards,
Jens

--
ruehmkorf at informatik dot uni hyphen koeln dot de



More information about the linux-fai mailing list