NFS image creation


This article explains how to initialize a new NFS image.


Requirements

NetBoot kernel

By now you should already know and have a NetBoot kernel.

!! Don't forget to backup the kernel's libraries and modules !!

>> See TFTP server manage netboot kernels


NFS image folder

You should create a folder to host the new NFS image, for instance QA:

mkdir -p /nfs/qa
chmod -R 777 /nfs/qa

This folder must be registered in NFS server configuration (/etc/exports).

>> See NFS server



Get a minimal Operating System

Go to your NFS image folder (it should be empty):

cd /nfs/qa


Thank to Deboostrap you can initialize a lot of *Nix versions!

You need to adjust the following command to the distribution you'd like to run:

## Ubuntu 14.04
debootstrap trusty /nfs/qa


!! This step is quite long... Depending on your network and CPU it can take up to 10 or 15 minutes !!


Copy kernel's libraries and modules

First thing to do is to copy your kernel's libraries and modules into your new NFS image.

cp -r /tftpboot/sources-images/trusty/lib/modules /nfs/qa/lib/
cp -r /tftpboot/sources-images/trusty/usr/src/ /nfs/qa/usr/src/


Where:

  • /tftpboot/sources-images/trusty is your TFTP kernel name
  • /nfs/qa/ is your new NFS image


Clean the default settings

DNS cleanup

When you use debootstrap the current DNS settings are set as "default".

You should clean that !!!


echo "" > /nfs/qa/etc/resolvconf/resolv.conf.d/base
echo "" > /nfs/qa/etc/resolvconf/resolv.conf.d/head
echo "" > /nfs/qa/etc/resolvconf/resolv.conf.d/original
echo "" > /nfs/qa/etc/resolvconf/resolv.conf.d/tail


You don't need to clean the "/etc/resolv.conf" file, since that one will be re-generate on runtime.

Even better! By keeping the current /etc/resolv.conf you'll be able to get Internet connection when you'll be inside the NFS image as "chroot".


Hostname cleanup

By default your client will have the same hostname as the server due to the "debootstrap" installation. :(

You MUST clean that in order to retrieve the name from your DNS.

echo "" >  /nfs/qa/etc/hostname


Regarding "hosts", you should only keep the loopback settings.

vim /nfs/qa/etc/hosts


It should look like this:

127.0.0.1	localhost
::1		localhost ip6-localhost ip6-loopback
ff02::1		ip6-allnodes
ff02::2		ip6-allrouters