=head1 NAME

B<geninitrd> - Generate an initrd (initial ramfs) which to be used for stateful install or stateless netboot.

=head1 SYNOPSIS

B<geninitrd> I<imagename> [B<--ignorekernelchk>]

B<geninitrd> [B<-h> | B<--help>]


=head1 DESCRIPTION

Generate the initrd for the osimage: B<imagename> which is an xCAT object of I<osimage> type.

B<Diskful Osimage>

=over 2

If the B<imagename> is a stateful one (The provmethod attribute for the osimage is 'install'),
this command is used to rebuild the initrd to inject the new drivers from driver rpms or
'update distro' and copy the rebuilt initrd and new kernel (If there's new kernel in 'update
distro') to the directory I</tftpboot/xcat/<imagename>>.

If the initrd has been rebuilt by geninitrd, when run nodeset, the I<--noupdateinitrd> option
should be used to skip the rebuilding of initrd to improve the performance.

Three attributes of osimage object can be used to specify the Driver RPM location and Driver names
for injecting new drivers to initrd.

B<netdrivers> - comma separated driver names that need to be injected to the initrd.
The postfix '.ko' can be ignored. The netdrivers attribute must be set to specify the new driver list.
If you want to load all the drivers from the driver rpms, using the keyword allupdate.

B<driverupdatesrc> - comma separated driver rpm packages (full path should be specified)

B<osupdatename> - comma separated 'osdistroupdate' object. Each 'osdistroupdate' object specifies a
Linux distro update. When run geninitrd, 'kernel-*.rpm' will be searched from osdistroupdate.dirpath
to get all the rpm packages and then search the drivers from the rpm packages.

Refer to the doc: Using_Linux_Driver_Update_Disk

=back

B<Stateless Osimage>

=over 2

If the B<imagename> is a stateless one (The provmethod attribute for the osimage is 'netboot'),
this command is used to generate the initrd from the rootimg which generated by 'genimage' command.
So the 'genimage' must be run once before running the geninitrd command.

Two attributes of osimage object can be used to specify the Driver RPM location and Driver names
for injecting new drivers to initrd.

B<netdrivers> - comma separated driver names that need to be injected to the initrd.
The postfix '.ko' can be ignored. The netdrivers attribute must be set to specify the new driver list.
If you want to load all the drivers from the driver rpms, using the keyword allupdate.

B<driverupdatesrc> - comma separated driver rpm packages (full path should be specified)

=back


=head1 Parameters

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

=over 12

=item B<--ignorekernelchk>

Skip the kernel version checking when injecting drivers from osimage.driverupdatesrc. That means all drivers from osimage.driverupdatesrc will be injected to initrd for the specific target kernel.

=back

=head1 RETURN VALUE

0 The command completed successfully.

1 An error has occurred.


=head1 EXAMPLES

=over 3

=item 1
To generate initrd for the osimage B<myimagename>:

  geninitrd myimagename

=back


=head1 FILES

/opt/xcat/bin/geninitrd

/opt/xcat/bin/genimage

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


=head1 SEE ALSO

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