Building a live ISO: Difference between revisions

From FAIWiki
Jump to navigation Jump to search
(minor update, also works with FAI 5.3.6)
No edit summary
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:


Someone asked me about using the FAI nfsroot for a diskless
Someone asked me about using the FAI nfsroot for a diskless
client setup. The clients should PXE boot and have /tmp and /var as
client setup. The clients should PXE boot and mount it's whole file
tmpfs (means writable).  
system via NFS (NFS v3, v4 is not working with overlayfs) from the install server.


It's pretty easy. (Tested with FAI 4.1 and dracut 034-2 (wheezy) and with FAI 4.4~beta and dracut 40-1 (jessie)).
It's pretty easy. Tested with FAI 5.3.6 and dracut from Debian 9 (stretch).


First add all packages you like to have for your
First add all packages you like to have for your
Line 28: Line 28:


That's it. Now, boot your client.
That's it. Now, boot your client.
Since FAI is using aufs (advanced multi layered unification filesystem version 3.x), the whole filesystem is writeable for the client, even it's mounted read-only.
Since FAI is using overlayfs, the whole filesystem is writeable for the client, even it's mounted read-only.




Line 52: Line 52:


apt-cache dumpavail > /var/lib/dpkg/available
apt-cache dumpavail > /var/lib/dpkg/available
aptitude -y install at-spi2-core locales lightdm xfce4 xterm xorg xserver-xorg-video-all xserver-xorg-input-all systemd-sysv sysvinit-core-
apt-get update
aptitude -y install at-spi2-core locales task-xfce-desktop network-manager systemd-sysv sysvinit-core-
apt-get clean
apt-get clean


rm lib/systemd/system/wpa_supplicant@.service
# optional
# optional
# rm -f /etc/hosts /etc/resolv.conf* /etc/fai/fai.conf /var/lib/apt/lists/*_* /var/tmp/base.tar.xz
# rm -f /etc/hosts /etc/resolv.conf* /etc/fai/fai.conf /var/lib/apt/lists/*_* /var/tmp/base.tar.xz
Line 65: Line 67:
fai-cd -MJd '' -g ~/grub.cfg-diskless ~/fai-diskless.iso
fai-cd -MJd '' -g ~/grub.cfg-diskless ~/fai-diskless.iso
</pre>
</pre>
Adding -H to fai-cd will add some directories onto the CD, that are normally
excluded. Using FAI 5.3.6, this can only be used if you reduce this
value in fai-cd, which leads to a bigger disk image. Otherwise there
will be a no space on device error.
<pre>
<    count=$(($size/900))
---
>    count=$(($size/800))
</pre>


Here's the grub.cfg.diskless:
Here's the grub.cfg.diskless:
Line 91: Line 106:
menuentry "FAI diskless client" --unrestricted {
menuentry "FAI diskless client" --unrestricted {
     set gfxpayload=$resolution
     set gfxpayload=$resolution
     linux  /boot/vmlinuz rd.live.image root=live:CDLABEL=FAI_CD rd.neednet ip=dhcp
     linux  /boot/vmlinuz rd.live.image root=live:CDLABEL=FAI_CD
     initrd  /boot/initrd.img
     initrd  /boot/initrd.img
}
}
Line 100: Line 115:
free space in the disk image (created inside fai-cd in subroutine
free space in the disk image (created inside fai-cd in subroutine
calculate_required_size). You will have about 200MB of free disk
calculate_required_size). You will have about 200MB of free disk
space. This is NO persistens storage.
space. This is NO persistent storage.
 
 
You can download an ISO image, for and example of this Live CD
http://fai-project.org/fai-cd/debian9-live-xfce.iso

Revision as of 23:33, 25 July 2017

How to turn the FAI nfsroot into a file system for diskless clients

Someone asked me about using the FAI nfsroot for a diskless client setup. The clients should PXE boot and mount it's whole file system via NFS (NFS v3, v4 is not working with overlayfs) from the install server.

It's pretty easy. Tested with FAI 5.3.6 and dracut from Debian 9 (stretch).

First add all packages you like to have for your diskless clients to /etc/fai/NFSROOT.

Create the FAI nfsroot

fai-make-nfsroot -v

Then disable some FAI specific things inside the nfsroot:

chroot /srv/fai/nfsroot bash
rm -f /etc/init.d/rcS
dpkg-divert --package fai-nfsroot --remove --rename /etc/init.d/rcS
insserv -r fai-abort
exit

This also works with XFCE and xorg running a graphical desktop.


That's it. Now, boot your client. Since FAI is using overlayfs, the whole filesystem is writeable for the client, even it's mounted read-only.


How to create a Live CD with Xfce desktop

This is tested with FAI 5.0.3, Debian 8.0 (Jessie) and dracut 044+3-3. You will have an account called demo, the pw is fai. Just confirmed that this is also working using FAI 5.3.6 with Debian 9 (stretch) and dracut 044+241-3


fai-make-nfsroot -v

chroot /srv/fai/nfsroot bash
rm -f /etc/init.d/rcS
dpkg-divert --package fai-nfsroot --remove --rename /etc/init.d/rcS
insserv -r fai-abort
export LC_ALL=C
adduser --disabled-login --gecos "fai demo user" demo
ROOTPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
usermod -p "$ROOTPW" demo

apt-cache dumpavail > /var/lib/dpkg/available
apt-get update
aptitude -y install at-spi2-core locales task-xfce-desktop network-manager systemd-sysv sysvinit-core-
apt-get clean

rm lib/systemd/system/wpa_supplicant@.service
# optional
# rm -f /etc/hosts /etc/resolv.conf* /etc/fai/fai.conf /var/lib/apt/lists/*_* /var/tmp/base.tar.xz
exit

Then create the CD/USB ISO image using this command

fai-cd -MJd '' -g ~/grub.cfg-diskless ~/fai-diskless.iso

Adding -H to fai-cd will add some directories onto the CD, that are normally excluded. Using FAI 5.3.6, this can only be used if you reduce this value in fai-cd, which leads to a bigger disk image. Otherwise there will be a no space on device error.

<     count=$(($size/900))
---
>     count=$(($size/800))


Here's the grub.cfg.diskless:

## grub2 configuration
set default="FAI diskless client"
set timeout=3
set resolution=1024x768

if loadfont /boot/grub/ascii.pf2 ; then
   insmod png
   set gfxmode=640x480
   insmod gfxterm
   insmod vbe
   terminal_output gfxterm
fi

# make sure we can access partitions
insmod part_msdos
insmod part_gpt

if [ ${iso_path} ] ; then
    set loopback="findiso=${iso_path}"
fi

menuentry "FAI diskless client" --unrestricted {
    set gfxpayload=$resolution
    linux   /boot/vmlinuz rd.live.image root=live:CDLABEL=FAI_CD
    initrd  /boot/initrd.img
}


This disk space for creating new files is limited by the amount of free space in the disk image (created inside fai-cd in subroutine calculate_required_size). You will have about 200MB of free disk space. This is NO persistent storage.


You can download an ISO image, for and example of this Live CD http://fai-project.org/fai-cd/debian9-live-xfce.iso