User FAQ: Difference between revisions

From FAIWiki
Jump to navigation Jump to search
(remove very old stuff)
 
(14 intermediate revisions by 5 users not shown)
Line 2: Line 2:


== I'm new to FAI. How should I start ? ==
== I'm new to FAI. How should I start ? ==
* Read the FAI guide and this FAQ.
* Use the FAI CD and the FAIme build service
* Start with the simple examples by copying them to FAI_CONFIGDIR.
* Install the stable distribution on your first clients!  
* Install the stable distribution on your first clients!  
''debian@layer-acht.de''
== What's the official website for FAI? ==
http://www.informatik.uni-koeln.de/fai




== Where do I find the FAI mailing list ? ==
== Where do I find the log files? ==
* During installation the are available in /tmp/fai/ on the install client
* At the end of the installation they will be copied to /target/var/log/fai
* If $LOGSERVER and $LOGUSER are set, they are copied to the install server in the home directory of the user $LOGUSER
* After rebooting the install client, the are available in /var/log/fai


There's info on mailing lists and archives in this Wiki: [[Linux-fai mailing list infos]]
= Somewhat more advanced FAQs =
== Can I write a hook that is executed ''after'' a certain task? ==
(freely) quoting <code>#fai</code>:


[[User:Sanso|sanso]] 10:30, 11 Aug 2005 (CEST)
<pre>
 
<sanso> is there a way to define post-hooks other than defining a (pre-)hook for the following task?
There also is a section "Mailing list" on the FAI homepage at
<Mrfai> sanso: yes post hooks are possible. Define a pre hook, and inside this hook, you
 
first call the default task using task_taskname, then add your code for the post hook.  
[http://www.informatik.Uni-Koeln.DE/fai/ http://www.informatik.uni-koeln.de/fai/]
And don't forget to call skiptask.
Please use your favorite search engine to search for your questions before
Mmmm, do you like to add this to the faiwiki, maybe a FAQ or tip?
posting to the list.
</pre>
Also don't post complete logs. Most times it's sufficient to describe the
setup (which version of fai, which version of debian on the fai server and
which version to be installed with fai) and to post the part of the log(s)
where the error occurs. It's the first error that matters. Or provide logfiles on a webserver and post a link.
 
''debian@layer-acht.de''


= More technical stuff / troubleshooting =
= More technical stuff / troubleshooting =
Line 50: Line 43:
Scripts are executed in class definition order, and in numerical order within each class.
Scripts are executed in class definition order, and in numerical order within each class.


For example, if the classes FOO and BAR were defined (in that order), and <code>$FAI_CONFIGDIR/scripts/FOO</code> contained <code>S20</code> and <code>S40</code>, and <code>$FAI_CONFIGDIR/scripts/BAR</code> contained <code>S30</code>, the order of execution would be:
For example, if the classes FOO and BAR were defined (in that order), and <code>$FAI_CONFIGDIR/scripts/FOO</code> contained <code>20-foo</code> and <code>40-bar</code>, and <code>$FAI_CONFIGDIR/scripts/BAR</code> contained <code>30-mycode</code>, the order of execution would be:
<code>
<code>
# $FAI_CONFIGDIR/scripts/FOO/S20
# $FAI_CONFIGDIR/scripts/FOO/20-foo
# $FAI_CONFIGDIR/scripts/FOO/S40
# $FAI_CONFIGDIR/scripts/FOO/40-bar
# $FAI_CONFIGDIR/scripts/BAR/S30
# $FAI_CONFIGDIR/scripts/BAR/30-mycode
</code>
</code>


== <code>make-fai-nfsroot</code> dies silently, Why? ==
Restarted it with more debug output (-v) and (-r) to recover yielded:
Reading Package Lists...
E: Dynamic MMap ran out of room E: Error occured while processing
phpgroupware-
netsaint (NewPackage) E: Problem with MergeList
/var/lib/apt/lists/172.25.1.52:9999
_debian_dists_unstable_main_binary-i386_Packages E: The package lists or
status file could not be parsed or opened.
Reason:
As I my default <code>/etc/apt/sources.list</code> read in stable, testing and unstable, apt-get needs a lot
of space for its internal tables. Therefore I had also a special <code>apt.conf</code> which is missing in the
nfsroot of FAI. This is a known problem of apt.
Solution:
Copied <code>/etc/apt/sources</code> to <code>/etc/fai/sources.list</code>, then minimised it to contain just one version (e.g. stable)
of Debian
''ngiger@mus.ch''




Line 84: Line 55:
The default actions for FAI do not allow you to get a shell since it is insecure and it will reboot on <ctrl-c> by design.
The default actions for FAI do not allow you to get a shell since it is insecure and it will reboot on <ctrl-c> by design.


If you want to get a shell you need to change FAI's actions by adding 'createvt' to the FAI_FLAGS variable that is passed to the kernel on startup. You can do this via fai-chboot (e.g. <code>fai-chboot -iFv -k "FAI_ACTION=install" hostname</code>) for network installs or for floppy installs you can use something similar to <code>make-fai-bootfloppy "FAI_FLAGS=verbose,createvt,sshd"</code>.
If you want to get a shell you need to change FAI's actions by adding 'createvt' to the FAI_FLAGS variable that is passed to the kernel on startup. You can do this via fai-chboot (e.g. <code>fai-chboot -iFv -k "FAI_ACTION=install" hostname</code>) for network installs.


''dawsons@augsburg.edu''
''dawsons@augsburg.edu''
Line 90: Line 61:
== Why can't I login via ssh to my install client(s) anymore? It used to work but suddenly stopped working. ==
== Why can't I login via ssh to my install client(s) anymore? It used to work but suddenly stopped working. ==
After you have reinstalled FAI on your server a new ssh host key is
After you have reinstalled FAI on your server a new ssh host key is
generated. This also happens when you call <code>fai-setup</code> or <code>make-fai-nfsroot</code>.
generated. This also happens when you call <code>fai-setup</code> or <code>fai-make-nfsroot</code>.
Remove the relevant line from <code>~/.ssh.known_hosts</code> and try again.
Remove the relevant line from <code>~/.ssh.known_hosts</code> and try
again. You can use <code>ssh-keygen -R</code> for removing a host from
the known_hosts file.
 


''debian@layer-acht.de''
== I need a /boot partition, how do I create one? ==


(The relevant lines are the ones containing the client's hostname and/or IP-address --[[User:Sanso|sanso]] 10:32, 11 Aug 2005 (CEST))
If your disk is larger than your BIOS can handle, you will need to create a boot partition to boot from. If you don't have a boot partition you will get <code>GRUB Error: 18</code> when the client boots [http://wiki.linuxquestions.org/wiki/GRUB#Error_18]. Use a [[disk_config]] like this one to boot from the /boot partition:


== How to do a headless install from floppy on my i386 pc? ==
disk_config disk1
So how do you install Debian on a stripped down, headless i386 pc, without network booting, from floppy?
primary    /boot           100        rw              ; ext2 boot  
For a first time user, it was pretty hard. I spent half a day on this, but if I had known the following, the job could have been done in less than an hour. (Not including the actual installation of packages). I had to hook up my monitor once in a while to see what was happening. The following tips apply to FAI in sid (Debian unstable).
logical    /              5000        rw              ; -j ext3
1. Initial setup, before stripping the client PC from unneeded hardware.
logical    swap            100-400    rw             
1.a. If you don't attach input devices: somewhere in your BIOS there should be a "Halt on <X>" setting to handle possible hardware problems on startup, not allowing your system to boot e.g. when no keyboard is connected. Set this to "Halt on No Errors"
1.b. If you want to work without a graphics adaptor: check if your motherboard allows to boot without a graphics card. Even with the "Halt on No Errors" setting, your mobo can refuse to boot without a graphics device.
1.c. In the BIOS, check if your boot sequence starts with the floppy ("A" in general)
1.d. Check that the floppy device you are planning to boot from, is connected to the END of the floppy cable to have it recognized as disk "A"


2. Configuration of FAI
It is important that only the /boot partition is primary, that its filesystem is ext2 and that the boot option is set. If not, FAI will assume that the root partition (/) is the boot partition and GRUB will try to boot from that one. It will result in <code>GRUB Error 15</code>.
2.a. Make sure to explicitly set the LOGSERVER variable in /etc/fai/fai.conf (and nfsroot/etc/fai.conf if you already issued "make-fai-nfsroot"), otherwise FAI will complain with a "SERVER not set" error and can't publish the install logs. (I think this is a bug)
2.b. Use "make-fai-bootfloppy" at least _twice_ to write the bootdisk. The system could not boot from the disk if it was written once. Also check the disk with "e2fsck -c /dev/fd0" to make sure.
2.c. The "faimond" feature didn't work. That's quite inconvenient but no showstopper.
3. After package installation
3.a. At the end of installation, for some reason the newly installed system thinks it should reboot using tftp, but it hangs. It waits for a user to press ENTER or CTRL-C. You can safely ignore this and reboot manually.
3.b. There is NO "fai" account on the newly installed system, and the default root password is "fai", not "roott" which is used in another part of the installation.


''tboloney@lycos.com''


== Device missing or not a block device - where did my device go? ==
== Device missing or not a block device - where did my device go? ==
Line 147: Line 110:
  fi
  fi
  ---%<---
  ---%<---
== setup_harddisk is unable to partition harddisk ==
Installation dies with:
setup_harddisks did not create /tmp/fai/disk_var.sh
and before:
  /dev/hda: no such file or directory
'''Reason:''' Not all files in /dev are existing: Maybe because you have udev on your FAI-Server?
# Nice Solution: Add the package udev to make-fai-nfsroot.conf and rebuild nfsroot. Devicenodes are created then at boottime of the install system.
# Less nice Solution: copy /dev/*-files manually to/create it at $NFSROOT/dev. Dont needs rebuild of nfsroot.

Latest revision as of 21:45, 30 January 2019

FAQs for new users

I'm new to FAI. How should I start ?

  • Use the FAI CD and the FAIme build service
  • Install the stable distribution on your first clients!


Where do I find the log files?

  • During installation the are available in /tmp/fai/ on the install client
  • At the end of the installation they will be copied to /target/var/log/fai
  • If $LOGSERVER and $LOGUSER are set, they are copied to the install server in the home directory of the user $LOGUSER
  • After rebooting the install client, the are available in /var/log/fai

Somewhat more advanced FAQs

Can I write a hook that is executed after a certain task?

(freely) quoting #fai:

<sanso> is there a way to define post-hooks other than defining a (pre-)hook for the following task?
<Mrfai> sanso: yes post hooks are possible. Define a pre hook, and inside this hook, you 
first call the default task using task_taskname, then add your code for the post hook. 
And don't forget to call skiptask.
Mmmm, do you like to add this to the faiwiki, maybe a FAQ or tip?

More technical stuff / troubleshooting

I try to install testing or sid/unstable and something goes wrong. Why?

testing and unstable sid change every day. So it's possible that your problems are solved today or tomorrow. You should try again. It's recommendable to use a local mirror and freeze it when you found a working install. But we also recommend to use stable and local backport repositories whenever possible.

debian@layer-acht.de

As for sid - that's why it's called unstable You might want to get used to things braking.

You should only try to install unstable or testing if You know what you're doing and You know You definitely need something other than stable

sanso 10:20, 11 Aug 2005 (CEST)

What order are scripts executed in?

Scripts are executed in class definition order, and in numerical order within each class.

For example, if the classes FOO and BAR were defined (in that order), and $FAI_CONFIGDIR/scripts/FOO contained 20-foo and 40-bar, and $FAI_CONFIGDIR/scripts/BAR contained 30-mycode, the order of execution would be:

  1. $FAI_CONFIGDIR/scripts/FOO/20-foo
  2. $FAI_CONFIGDIR/scripts/FOO/40-bar
  3. $FAI_CONFIGDIR/scripts/BAR/30-mycode


Why does the system reboot after entering ctrl-c following an installation?

The default actions for FAI do not allow you to get a shell since it is insecure and it will reboot on <ctrl-c> by design.

If you want to get a shell you need to change FAI's actions by adding 'createvt' to the FAI_FLAGS variable that is passed to the kernel on startup. You can do this via fai-chboot (e.g. fai-chboot -iFv -k "FAI_ACTION=install" hostname) for network installs.

dawsons@augsburg.edu

Why can't I login via ssh to my install client(s) anymore? It used to work but suddenly stopped working.

After you have reinstalled FAI on your server a new ssh host key is generated. This also happens when you call fai-setup or fai-make-nfsroot. Remove the relevant line from ~/.ssh.known_hosts and try again. You can use ssh-keygen -R for removing a host from the known_hosts file.


I need a /boot partition, how do I create one?

If your disk is larger than your BIOS can handle, you will need to create a boot partition to boot from. If you don't have a boot partition you will get GRUB Error: 18 when the client boots [1]. Use a disk_config like this one to boot from the /boot partition:

disk_config disk1
primary     /boot           100         rw              ; ext2 boot 
logical     /               5000        rw              ; -j ext3
logical     swap            100-400     rw              

It is important that only the /boot partition is primary, that its filesystem is ext2 and that the boot option is set. If not, FAI will assume that the root partition (/) is the boot partition and GRUB will try to boot from that one. It will result in GRUB Error 15.


Device missing or not a block device - where did my device go?

If Rebooting fails because of modules missing (e.g. can't mount root fs ...) Chances are in error.log You'll find a line saying

---%<---
rcS.log:Failed to create initrd image.
---%<---

rcS.log says:

---%<---
Setting up kernel-image-2.6.8-2-686-smp (2.6.8-12) ...
/usr/sbin/mkinitrd: device /dev/sda1 is not a block device
Failed to create initrd image.
---%<---

I modified Steffen Grunewald's script:

Yes. udev is the culprit, [...] As a workaround, you may set up a hook for configure,

e.g. in $CONFIGSPACE/hooks/configure.DEFAULT

---%<---
echo $0 udev bug workaround
# work-around for udev bug
if [ -x $target/etc/init.d/udev ]; then
   chroot $target /etc/init.d/udev stop
   chroot $target /usr/bin/dpkg --configure --pending
   chroot $target /etc/init.d/udev start
fi
---%<---