If you want to use FAI on other architectures than i386 or amd64 you might need to take care of some things yourself.
These are things that may have to be changed on other architectures:
lilo(8) and grub(8). Here you may
add support for your specific boot loader.
If you want to serve multiple nfsroot directories on one FAI server,
you need to create specific config directories in /etc for fai, like
/etc/fai-sarge and /etc/fai-etch. Then you need to set the
$NFSROOT variables to different directories and run
faiserver#make-fai-nfsroot -c /etc/fai-sarge
To install a computer with a 32bit i386 system, you need an i386 nfsroot. Creating this 32bit nfsroot on an install server runnning amd64 is quiet simple. Install and setup the fai packages. Then copy your fai config files to a new subdirectory.
faiserver# cp -a /etc/fai /etc/fai-i386
Edit the variable $FAI_DEBOOTSTRAP_OPTS in
/etc/fai-i386/make-fai-nfsroot.conf and add the option —arch
i386. Also choose a different directory for your new nfsroot. Here
are the two lines after editing.
NFSROOT=/srv/fai/nfsroot-i386 FAI_DEBOOTSTRAP_OPTS="--arch i386 --exclude=info"
Now call make-fai-nfsroot which creates the 32bit i386 nfsroot in /srv/fai/nfsroot-i386
faiserver# make-fai-nfsroot -v -C/etc/fai-i386
Creating a partitial mirror using fai-mirror(1) that is needed for
a bootable CD or USB stick is also possible on a different architecture.
Due to a bug in apt-move (#441231), you have to specify the
architecture when calling fai-mirror.
$ export MAXPACKAGES=800 $ fai-mirror -a i386 -v -cDEFAULT,FAIBASE,I386 /srv/mirror-i386
That's all!
There's some stuff on http://www.layer-acht.org/fai. Most notably there are hooks for partitioning and config-files to setup bootloaders for oldworld and newworld.
There's one big IA64 Beowulf cluster running which was installed with
FAI. Only the partitioning part has to be replaced by a short script,
since sfdisk is not available on IA64. This should not be need any
more since the patitioning tool setup-storage(8) works on all
architectures, were parted is supported.
You can install all sorts of Linux distributions from a single Debian
nfsroot. Therefore you have to create a base.tgz of the distribution
you like to install and place it info the basefiles directory. Then
name it UBUNTU910.tar.gz for example. An install client which belongs
to the class UBUNTU910 then extracts this base file into its empty
file system. Additionally you have to adjust the sources.list or
similar configuration files which are needed for specifying the
location of the package repository.
All FAI packages are available in Ubuntu and are used by a large number of people since many version.
Many people are interested in FAI for other (mostly RPM based) Linux distributions. I made some research and it should not be much work to implement it. But I need more help to implement it. If you are interested and would like to help me, please send an email to fai@informatik.uni-koeln.de.
A brief description how to install SLES9 with FAI is available at http://www.sourcecode.de/install_sles_with_fai.
There are also some information in the faiwiki.
Although FAI is architecture independent, there are some packages which are only available for certain architectures (e.g. silo, sparc-utils).
SUN SPARC computers can boot from their boot prompt. To boot a SUN use:
boot net:dhcp - ip=::::::dhcp
You have to convert the kernel image from ELF format to a.out
format. Use the program elftoaout (mentioned in the FAQ). The
symlink to the kernel image to be booted is not the host name.
A success report as of 2001 is available at http://www.opossum.ch/fai/.
FAI has also been ported for use with SUN Solaris OS installations in cooperation with Solaris jumpstart. This was done using FAI 2.8.4 and Solaris 9. Get the FAI sources from FAI 2.8.4 and change to the sunos directory. There you can call make which creates the tarball /tmp/fai-solaris.tar.gz. You have to read the file README.sunos and have some knowledge about Solaris jumpstart. The Solaris support was removed in FAI 2.9.
The file format of the configuration files in disk_config and package_config are different than those for Linux.