NFS image creation
This article explains how to initialize a new NFS image.
Contents
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