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

Re: FAI 1.0: facts and answers



[...]
> > their context the method is not suitable for general use for the
> > following reasons:
> 
> FAI is not intend to be a general purpose tool. Not yet !
> 
> FAI is for use in a network environment. An installation only from
> CD-ROM is not yet indented. I assume that most computers are connected
> to a ethernet network, where are other computers are available. Also I
> assumed that the computer should booted from network card, or the
> floppy disk is only used for booting the kernel. So there is no floppy
> disk space limitation when access to configuration files or
> executables is needed. Because the root file system is mounted, there
> is also no great amount of RAM needed (using initrd you need as much
> RAM as the filesystem consumes).

I understand your assumptions but IMHO debian users need a more general
method usable also on standalone machines installable from cdrom.

> > 1)	it needs a running server with a special setup.
> 
> I think BOOTP, NFS suppport isn't a "special" setup. You are also
> using ftp,NFS, HTTP in your dzinstall tool.

I *can* use ftp, nfs, http but I'm not bound to any of them.
My goal is to install from an exact copy of the same cd stored on any
medium and accessible with common protocols but I don't want to force
the use of any particular medium or protocol.

> > 2)	it works only via NFS. This means that you can't install directly
> > 	a machine from an official debian cd (and probably from any cd)
> > 	or from a debian http site.
> > 	So you can't use it for newbie installation of a single machine
> > 	which is one of the great reasons for having an auto-installation.
> 
> The installation of packages from CD could be made via
> apt-get. Currently FAI is using apt-get but only with NFS. Maybe it
> will be possible in future to do the whole installation from CD and a
> special floppy. A live filesystem (untar'ed base.tgz or more ) on the
> CD would help for this. But FAI assumes your computer is connected to
> a network. If you have a network, mostly there will be an other host
> that can act as NFS and BOOTP server. You only have to do a manually
> installation for the first computer in you local network.

There are users who don't have access to a local network or server, or
are connected with a low-bandwidth network. For example home users who
want to install automatically their only machine.

> Maybe it will be possible to create a floppy, which boots and gets the
> configuration information from it, not from bootp. Then the rest could
> be accessed from a CDROM. But this is future !
> 
> dzinstall (a tool from Massimo Dal Zotto) cannot use an original Debian
> CD_ROM, because it needs a lot of spezial versions of Debian packages
> (see below).

True, this is the real problem with my installer. I hope it will be solved
when all the packages have been converted to debconf, which I'm planning to
use in the future. At that time I had no choices because debconf wasn't yet
available and I wanted to propose a configuration method which could be
integrated with debian, like debconf is now.

> > 3)	it needs NFS root, a special kernel with NFS root support and the
> > 	setup of TFTP and BOOTP. The ramdisk method seems much more easier
> > 	to set-up and should work on any machine with a minimum amount of
> > 	memory.
> 
> The "special" kernel is already prepared and included in FAI-1.0 and
> it's not difficult to build such a kernel. TFTP and BOOTP is very easy
> to set up.  Dzinstall uses initrd, so if the root filesystem of initrd
> is larger than the RAM space, you can't do an installation. FAI only
> needs the ramdisk for the log files (about 100 kbytes).

I'm not so sure the casual user can easily set-up tftp, bootp an nfs. This
can be done only by a system-administrator.

The ramdisk method is quite common in linux installations and most machines
have now a lot of ram. In rare cases where ram is a problem one can always
install with the official debian installer or activate manually a swap
partition before doing anything else.

The use of a live filesystem is nice but can be a real problem if one can't
easily activate the network interface or some strange cdrom device. In these
cases a ramdisk system can offer tools to investigate the problem and load
manually the appropriate modules, while with an unmountable root you can do
nothing but reboot.

> > 4)	the method of configuring the packages is really ugly. It doesn't
> > 	solve at all the main problem with debian installation which is
> > 	the interaction with postinst scripts.
> > 	The `yes | dpkg --configure' won't work in general, unless every
> > 	question provides a good default value and accepts a Return as
> > 	valid answer.
> 
> I can't solve the problems with debian postinst script. This is only a
> good workaround. If the default values don't fit my needs, I call
> cfengine to change the configuration. Using cfengine for configuration
> you are much more flexible than only using postinst scripts.
> 
> For example: try to change the line in /etc/init.d.sysklogd
> 
> from
>  SYSLOGD=""
> to
>  SYSLOGD="-m 240"
> 
> You could not make this using debconf or postinst script. In cfengine
> it's made with
> 
>   { ${target}/etc/init.d/sysklogd
>           ReplaceAll "^SYSLOGD=.*" With "SYSLOGD=${dblquote}-m 240${dblquote}"
>   }

This is nice workaround but it is not integrated with the debian philosopy.
I choose to configure the packages from the inside, which is also the way
followed by debconf.

Maybe we could add the optional configuration option with cfengine to all
debian packages to configure things not handled with debconf. This would be
an interesting option but would also requires changes in the debian policy
and in some admin tool.

> > 5)	it requires a reboot and leaves the machine in an unconfigured
> >	state before running the second phase of the installation.
> 
> That's wrong. After the first reboot (every installation needs one
> reboot) the system is ready. The second reboot is only needed for a
> clean package status. Otherwise the pcmcia-modules and one other
> package will not be reported as deinstalled.
> 
> I think Dzinstall needs a reboot before the installation of selected
> packages - FAI installs packages without reboot before.

Dzinstall needs only a restart of the init in the new root directory. You can
do a reboot after the installation is completed to be sure that everything is
ok, but this is not strictly required.

> These are two contradicting info's from dzinstall manuals:
> 
>     * No reboot required before package installation
> 
>     * restart the system and proceed with package installation
> 
>     When the system reboots it continues the installation by running
>     automatically apt to retrieve and install the selected packages.

I wasn't clear enough in my docs. Only the init is restarted. This is usually
much faster and safe than the forced reboot method.

> > 6)	it uses cfengine instead of debconf. Not knowing anything about the
> >	two tools I can't say if this is a pro or a con.
> It's a pro !
> 
> 
> The main problem with dzinstall is, that it need special versions of a
> lot of debian-packages
> (http://boogie.cs.unitn.it/dz/debian/dzinstall/changed-packages/) 
> FAI only needs very little changes to baseX.X.tgz.

I hope it can use the official packages in the future. Unfortunately it seems
that the automatic installation has not a very high priority at the moment.

> Dzinstall can only configure the root and swap (only one ?)
> partition. FAI is able to partition all disks and to presever data one
> selected partitions if wanted.

The harddisk partitioning code is very minimal and can handle correctly only
a few common situations. It can obviously be improved but it was enough for
my purposes when I wrote it.

My tool has many other limits. My goal was to have a usable installer some
months ago (I absolutely needed it) and to show that the automatic debian
installation would be possible with small changes to the policy.

My opinion is that both methods have their advantages and their limits but
overall I prefer a method which could be integrated with debian instead of
one which changes things from the outside and requires another server for
the installation.

-- 
Massimo Dal Zotto

+----------------------------------------------------------------------+
|  Massimo Dal Zotto               email: dz@cs.unitn.it               |
|  Via Marconi, 141                phone: ++39-0461534251              |
|  38057 Pergine Valsugana (TN)      www: http://www.cs.unitn.it/~dz/  |
|  Italy                             pgp: finger dz@tango.cs.unitn.it  |
+----------------------------------------------------------------------+


Reply to: