=head1 NAME

B<genimage> - Generates a stateless image to be used for a diskless install.

=head1 SYNOPSIS

B<genimage> [B<-i> I<nodebootif>] [B<-n> I<nodenetdrivers>] B<-o> I<OS> B<-p> I<profile> [B<-l> I<rootlimit>] [B<-r> I<additional_nics>] [B<-k> I<kernel_version>] [B<--permission> I<permission>]

B<genimage> [B<-i> I<nodebootif>] [B<-n> I<nodenetdrivers>] [B<-o> I<OS>] [B<-l> I<rootlimit>] [B<-r> I<additional_nics>] [B<-k> I<kernel_version>] imagename

B<genimage> [B<-h> | B<--help> | B<-v> | B<--version>]


=head1 DESCRIPTION

Generates a stateless image that can be used to boot xCAT nodes in a diskless mode.  
If I<imagename> is not specified, the default packages included
(and excluded) in the image are specified by /opt/xcat/share/xcat/netboot/<OS>/<profile>.<OS>.<arch>.pkglist and
/opt/xcat/share/xcat/netboot/<OS>/<profile>.exlist. 
Additional packages that are not from the os distro can be specified in a <profile><OS>.<arch>.otherpkgs.pkglist file.
Customized package list files can be specified under /install/custom/netboot/<OS> directory. The generated image will be put in /install/netboot/<OS>/<arch>/<profile>.

If I<imagename> is specified, the package list files are specified in the I<osimage> table and I<linuximage> table. 
If B<genimage> runs on the Management node, both the I<osimage> table and I<linuximage> table will be updated following the B<genimage> options. And, if there is no I<imagename> called <OS>-<arch>-netboot-<profile> or <OS>-<arch>-statelite-<profile>, the B<genimage> command will create them into I<linuximage> and I<osimage> tables.

The B<genimage> command must be run on a system that is the same architecture as the nodes it will be
used on.  If the management node is not the same architecture, copy the contents of
/opt/xcat/share/xcat/netboot/<OS> to a system that is the proper architecture, and mount /install from
the management node to that system. 

The B<genimage> command will run geninitrd automatically.  (You can run geninitrd yourself at a later time, if
you want to rebuild the initrd.)  After your image is created, you can chroot to the
image, install any additional software you would like, or make modifications to files, and then run
B<packimage> to prepare the image for deployment.

The B<genimage> and B<geninitrd> commands will generate two initial ramdisks for B<statelite> and B<stateless>, one is B<initrd-statelite.gz>, the other one is B<initrd-stateless.gz>.

=head1 Parameters

I<imagename> specifies the name of a os image definition to be used. The specification for the image is storted in the I<osimage> table and I<linuximage> table.


=head1 OPTIONS

=over 12

=item B<-o> I<OS>

The operating system for the image:  fedora8, rhel5, sles10, etc.  The OS packages must be in
/install/<OS>/<arch> (use L<copycds(8)|copycds.8>).

=item B<-p> I<profile>

The profile (e.g. compute, service) to use to create the image.  This determines what package lists are
used from /opt/xcat/share/xcat/netboot/<OS> to create the image with.  When deploying nodes with this image,
the nodes' nodetype.profile attribute must be set to this same value.

=item B<-i> I<nodebootif>

The network interface the diskless node will boot over (e.g. eth0).

=item B<--permission> I<permission>

The mount permission of B</.statelite> directory for B<statelite> mode, which is only used for B<statelite> mode, and the default permission is 755.

=item B<-n> I<nodenetdrivers>

This argument is now optional, and allows you to specify the driver
modules needed for the network interface(s) on your stateless nodes.  If
you do not specify this option, the default is to include all recent IBM
xSeries network drivers.  

If specified, I<nodenetdrivers> should be a comma separated list of
network drivers to be used by the stateless nodes (Ie.: -n tg3,e1000).
Note that the drivers will be loaded in the order that you list them,
which may prove important in some cases.

=item B<-l> I<rootlimit>

The maximum size allowed for the root file system in the image.  Specify in bytes, or can append k, m, or g.

=item B<-r> I<additional_nics>

Other network interfaces (e.g. eth1) in the image that should be configured via DHCP.

=item B<-k> I<kernel_version>

Use this flag if you want to use a specific version of the kernel in the image.  Defaults to the first kernel found
in the install image.

=item B<-v|--version>

Display version.

=item B<-h|--help>

Display usage message.

=back


=head1 RETURN VALUE

0 The command completed successfully.

1 An error has occurred.


=head1 EXAMPLES

=over 3

=item 1.

For example, to generate a fedora8 image for a compute node architecture
x86_64 and place it in the
/install/netboot/fedora8/x86_64/compute/rootimg directory:

 cd /opt/xcat/share/xcat/netboot/fedora/
 genimage -i eth0 -o fedora8 -p compute

This would use the profile information from the /opt/xcat/share/xcat/netboot/fedora/compute* files.

=back


=head1 FILES

/opt/xcat/share/xcat/netboot/<OS>/genimage


=head1 SEE ALSO

L<geninitrd(1)|geninitrd.1>, L<packimage(1)|packimage.1>
