Hello, 

I wanted to post this quick HOWTO outlining the steps I took to get
SystemImager working with AMD64. This document assumes the user has a
good working knowledge of SystemImager, but gives more details of PXE
setup and x86_64 builds. I was able to use the code from SVN:trunk and
I was forced to use LILO as the boot loader on the golden clients. I
was never able to make grub work properly, even after hacking the
/etc/mtab.

Contact me if you would like a copy of my kernel (w/ SATA, SCSI, e1000
support), initrd.img, and boel_binaries.tar.gz.

Disclaimer: This HOWTO is my high level notes and is not a full
installation guide.
It was written to document the install process of our AMD64 cluster. 

Thx, hope someone finds it useful.  

----

SystemImager AMD64 PXE Boot Environment
[EMAIL PROTECTED]
Updated: 07-19-2005

1. - Introduction

Following this guide the user should be able replicate and reproduce a
working AMD x86_64 PXE boot environment using SystemImager.  At the
time of writing stable versions of SystemImager did not support the
x86_64/ia64 environment so we are forced to use the most current
versions of the development code located in the SystemImager subversion
repository.

SystemImager SVN access is available at the following URL:
http://svn.sisuite.org/

Making SystemImager happy and getting things working properly can be a
challenge, I suggest using the stable release, v3.4.1 for the Server
and Golden Clients. For this installation plan on using the Current
Stable Release v3.4.1 for the server and clients. To build a working
x86_64 PXE environment use a snapshot of the SystemImager SVN trunk
from July, 18th 2005.

Stable v3.4.1:
http://www.systemimager.org/download/

SVN Trunk v3.5.3:
http://IP-REMOVED/files/systemimager/systemimager_svn_trunk_07182005.tgz

Additionally, at this time we must use LILO as the boot loader on the
Golden Clients. GRUB support is broken and no workaround or patches
available. RHEL 4 doesn't include the LILO rpms in the CD distribution,
so you can use up2date or download the LILO package from the web.

LILO-21.4.4-26: (32bit x86_64)
http://IP-REMOVED/files/systemimager/lilo-21.4.4-26.1.i386.rpm

1.1 - SystemImager Server Setup (Image Server)

    1.1.1 - Server Requirements
       Server OS: RedHat RHEL 4.0 WS (i386)
       SystemImager: v3.4.1 Stable
       Syslinux: syslinux-2.11-1
       DHCP: dhcp-3.0.1-12_EL
       TFTP: tftp-server-0.39-1

Verify the installation of the stable 3.4.1 version of SystemImager,
using the following command:

# rpm -qa | grep -E "systemimager|systemconfigurator"
systemimager-client-3.4.1-1
systemimager-common-3.4.1-1
systemimager-server-3.4.1-1
systemconfigurator-2.2.2-1
systemimager-i386boot-standard-3.4.1-1

Verify the DHCP, TFTP, and Syslinux configuration:
# chkconfig tftp on
# chkconfig dhcpd on
# service tftp start
# service dhcpd start
# rpm -qa | grep syslinux
syslinux-2.11-1

    1.1.1.1 - SystemImager Configuration

    For ease of explanation, this section assumes you already have a
    working golden client image on the image server. At least one
    golden client image is needed to illustrate how the configuration
    files and directories are setup.

# ls -l /var/lib/systemimager/scripts/
total 32
-rw-r--r--  1 root root   567 Jul 18 22:03 hosts
drwxr-xr-x  2 root root  4096 Jul 14 17:41 post-install
drwxr-xr-x  2 root root  4096 Jul 18 18:08 pre-install
-rw-r--r--  1 root root 12170 Jul 18 23:35 x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y01.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y02.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y03.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y04.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y05.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y06.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y07.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y08.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y09.sh -> x86_64_node.master
lrwxrwxrwx  1 root root    18 Jul 18 22:03 y10.sh -> x86_64_node.master

    Located in /var/lib/systemimager/scripts/ are the master build
    scripts for each golden client image, the above example shows
    that ten nodes are configured using the same master build script
    for each node. The .master build script configures the golden
    client disks, image, boot loader, and network information.
    This .master script is generated by SystemImager when a golden
    client image is pulled to the image server.

# ls -l /usr/share/systemimager/boot/x86_64/standard/
total 8140
-rw-r--r--   1 root root 5054650 Jul 18 15:36 boel_binaries.tar.gz
-rw-r--r--   1 root root   23978 Jul 18 15:36 config
-rw-r--r--   1 root root 1316474 Jul 18 15:36 initrd.img
drwxr-xr-x  15 root root    4096 Jul 18 15:36 initrd_template
-rw-r--r--   1 root root 1900823 Jul 18 15:36 kernel

    Located in /usr/share/systemimager/boot/x86_64/standard/ are the
    boot kernel, initrd.img and boel_binaries. This directory is
    critical to the SystemImager PXE autoinstall environment because
    it contains the AMD64 kernel, SystemImager initrd.img and the
    boel_binaries.tar.gz file, these files are loaded over rsync once
    the autoinstall client has successfully PXE booted. The
    boel_binaries.tar.gz is the embedded Linux OS needed to finish the
    autoinstall client build. You must build the x86_64/standard/
    directory, kernel, initrd.img and boel_binaries.tar.gz on a AMD64
    x86 machine, you cannot boot a 32bit kernel and install a 64bit OS.
    Please see section 1.3 for details on building this boot
    environment.

    1.1.1.2 - DHCP Configuration

    Below is the /etc/dhcpd.conf on the image server, this DHCP will
    give out IPs only if there is a matching MAC address in the host
    group.

# general options
authoritative;
ddns-update-style none;

option option-140 code 140 = text;
option option-141 code 141 = unsigned integer 32;
option option-142 code 142 = string;
option option-143 code 143 = string;
option option-144 code 144 = string;

option option-140 "192.168.100.26";
#option option-142 "http://IP-REMOVED/systemimager/boot/";;
#option option-143 "9000";
option option-144 "n";

next-server 192.168.100.26;
#option log-servers 1.2.3.4;
#option option-141 514;
default-lease-time -1;

filename "pxelinux.bin";   # i386
#filename "elilo.efi";   # ia64

subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.150 192.168.100.159;
  option domain-name "YOURDOMAIN";
  option domain-name-servers NAMESERVER1, NAMESERVER2;
  option routers 192.168.100.1;
  deny unknown-clients;

    group {
      option option-140 "192.168.100.26";
      next-server 192.168.100.26;
      filename "pxelinux.bin";

      host csraid {
            hardware ethernet 00:00:93:9d:41:00;
            fixed-address 192.168.100.30; }

      host y01 {
            hardware ethernet 00:11:25:00:17:0a;
            fixed-address 192.168.100.150; }

      host y02 {
            hardware ethernet 00:11:00:00:0e:5a;
            fixed-address 192.168.100.151; }
      }
 }


Make sure DHCP is started and configured to start on boot.

    1.1.1.3 - TFTP Configuration

    The TFTP server uses Syslinux as the first stage PXE boot loader.
    Below is the structure of the /tftpboot directory on the image
    server. The kernel and initrd.img are copied from the AMD64 build
    machine into the /tftpboot/ and
    /usr/share/systemimager/boot/x86_64/standard/ directories on the
    image server. Anytime you make modifications to the kernel
    (add modules, drivers, etc) you must rebuild the kernel, initrd.img
    and boel_binaries on the AMD64 build server and copy the new
    binaries back over to the image/boot server.

# ls -l /tftpboot/
total 3184
-rw-r--r--  1 root root 1316474 Jul 18 15:37 initrd.img
-rw-r--r--  1 root root 1900823 Jul 18 15:37 kernel
-rwxr-xr-x  1 root root     475 Jul 15 23:38 message.txt
-rw-r--r--  1 root root   12968 Jul 14 21:25 pxelinux.bin
drwxr-xr-x  2 root root    4096 Jul 15 14:48 pxelinux.cfg

Follow the steps outlined below to build your /tftpboot/ directory on
the image server

# mkdir /tftpboot/
# cp -p /usr/share/systemimager/boot/x86_64/standard/initrd.img
/tftpboot/
# cp -p /usr/share/systemimager/book/x86_64/standard/kernel /tftpboot/
# cp -p /usr/lib/syslinux/pxelinux.0 /tftpboot/pxelinux.bin
# cp -rp /etc/systemimager/pxelinux.cfg /tftpboot/
# cp -p /etc/systemimager/pxelinux.cfg/message.txt /tftpboot/

Replace the file /tftpboot/pxelinux.cfg/default with the following:

default systemimager
 label systemimager
   kernel kernel
   append vga=extended initrd=initrd.img root=/dev/ram
 DISPLAY message.txt
 PROMPT 1
 TIMEOUT 35996

Make sure TFTP is started and configured to start on boot.

1.2 - SystemImager Client Setup (Golden Client)

    1.2.1 - Client Requirements
       Server OS: RedHat RHEL 4.0 WS (AMD64)
       SystemImager: v3.4.1 Stable
       LILO: lilo-21.4.4-26

Verify the installation of the stable 3.4.1 version of SystemImager,
using the following command:

# rpm -qa | grep -E "systemimager|systemconfigurator"
systemimager-common-3.4.1-1
systemconfigurator-2.2.2-1
systemimager-client-3.4.1-1

    1.2.1.1 - Golden Client Configuration

    Next you must install LILO as the golden client boot loader,
    currently there is a bug in GRUB during the autoinstall of the
    client. The process to convert from GRUB to LILO is simple,
    execute the following commands to install LILO and remove grub:

# rpm -ivh lilo-21.4.4-26.1.i386.rpm

# cp /etc/lilo.conf.anaconda /etc/lilo.conf

# /sbin/lilo
Added linux *
Added linux-up

    At this point you have LILO installed as the boot loader, you
    can safely remove the GRUB rpm. Issue the following command:

# rpm -e grub

    Now you can proceed normally and use si_prepareclient to compile
    the image and upload to the image server.

1.3 - x86_64 Build Environment Setup (Build Server)

    This section outlines how to pull the most current version of
    SystemImager from the subversion repository, it also walks the
    users through the steps to build a custom boot kernel, initrd.img
    and boel_binaries from the distribution. For example, if you need
    to add HBA drivers to your AMD64 boot environment you would need
    to rebuild the SystemImager binaries and copy them over to your
    boot server.

    1.3.1 - Requirements
        Server OS: RedHat RHEL 4.0 WS (AMD64)
        SystemImager: v3.5.2 from SVN trunk

    1.3.1.1 - Obtain SystemImager from SVN

    Check out the current code from the SystemImager Subversion
    repository or use the tar ball described in the beginning of this
    document.

# svn co svn://svn.sisuite.org/svn/systemimager/trunk

    1.3.1.2 - Build kernel, initrd.img, boel_binaries.tar.gz

    Once you have the source code on the build server (x86_64) follow
    the steps below to build and install the custom SystemImager boot
    environment.

~/trunk/ # ./configure

~/trunk/ # make binaries

~/trunk/ # make install_binaries

    Assuming the build was successful, the last command will install
    the newly build kernel, initrd.img and boel_binaries.tar.gz in
    /usr/share/systemimager/boot/x86_64/standard/ on the build server.
    These 3 files must be copied over to the boot server and installed
    in /usr/share/systemimager/boot/x86_64/standard/.

    The kernel and initrd.img must also be copied to the boot
    server's /tftpboot/ directory.

    1.3.1.3 - Install kernel, initrd.img, boel_binaries.tar.gz

    The last step in building the boot environment is to copy the newly
    built SystemImager boot binaries to your boot server.

[EMAIL PROTECTED] # scp -r
[EMAIL PROTECTED]:/usr/share/systemimager/boot/x86_64/standard/*
/usr/share/systemimager/boot/x86_64/standard/

[EMAIL PROTECTED] # scp -r
[EMAIL PROTECTED]:/usr/share/systemimager/boot/x86_64/standard/kernel
/tftpboot/

[EMAIL PROTECTED] # scp -r
[EMAIL PROTECTED]:/usr/share/systemimager/boot/x86_64/standard/initrd.img
/tftpboot/

PXE Boot your Clients, don't forget to plug in the MAC and restart DHCP.


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
_______________________________________________
Sisuite-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sisuite-users

Reply via email to