We have purchased a product with our SAN to take a snapshot of one LUN
so we can image that to another LUN for super fast installs. Therefore,
I wanted to avoid having to set up xCat.
The problem with booting the CentOS 4 DVD was that the CDROM was not
being detected. Since the CDROM in the media tray is USB, I switched
over to another blade, and back, and the install then found the CDROM,
and the rest went perfectly.
Thanks for your help on this.
Brendon Colby
John Burk wrote:> This problem also exhibits in RHEL3-U4, so CentOS 3.4 inherited it.
>
> CentOS 3.4 is treated as rhas3 by xcat. The first time you run
'nodeset
> <host> install' for a particular OS, the
/tftpboot/xcat/rhas3/<arch>
> tree gets populated with files, including install.gz, which is a
> compressed disk image which in turn contains all the kernel modules,
> including tg3.
>
> 1.) First thing you need to do is delete (or rename) the
> /tftpboot/xcat/rhas3/<arch>/ directory.
>
> 2.) Next is to fix a minor bug in xcat's 'mkinstall' located in
> $XCATROOT/install/rhas3/ARCH/bin/. I posted the fix to the xcat user's
> list, and have included the hacked mkinstall as an attachment. Please
> note that this mkinstall is for 'x86', but it should be pretty
> straightforward to see how to make the change for x86_64 if that's your
> arch.
>
> << cut&paste'd from my post in the xcat user's list
>>
> I went the second route and dug around inside
> $XCATROOT/install/rhas3/ARCH/bin/mkinstall. Turns out that there is a
> fix already inside this script and a module already built, but that it
> only will be applied to RHEL3-U4 and not CentOS 3.4
>
> It's because of the file test at line 375 of mkinstall: the version
> string in the kernel rpm that ships on the RHEL3-U4 cd's is 2.4.21-27,
> but the CentOS-3.4 kernel version string is 2.4.21-27.0.1. This version
> mismatch is echo'd at lines 383 and 386 also.
> << eo snip >>
>
> 3.) 'cd' to the $XCATROOT/install/rhas3/ARCH/ directory. The fix
only
> gets applied if you're in this directory, as the path the to bcm5700.o
> is relative - Egan Ford probably knows why he did it this way, I'm just
> hacking on his script and wanted to muck with it as little as possible.
>
> 4.) run 'nodeset <some_CentOS3.4_host> install'. Because
there is not
> an install.gz in the /tftpboot/xcat/rhas3/<arch> directory, it will
be
> built, and because you're in the $XCATROOT/install/rhas3/ARCH/
> directory, the pre-built bcm5700.o module which lives in
> $XCATROOT/install/rhas3/ARCH/data/27.EL will get put into the install.gz
> as tg3.o.
>
> 5.) 'rreset' your blades and watch them properly install CentOS 3.4
via
> nfs...
>
> John Burk
>
> Sr. Technical Director
> Mainframe Entertainment
>
> 604.628.1019
>
>
>
>
> Niswonger Charles M Contr AFRL/MNGG wrote:
>
>> John,
>>
>> I'm running 14 older HS20's right now and have 14 of
the new
>> 8843 3.6 GHz EM64T blades coming in. Right now we're running SuSE
9.2
>> and xcat, but we've seen the same tg3 bug that you mentioned.
I'm
>> curious as to the workaround that you used for CentOS. With the
>> multi-level load needed to install the bootable image onto the blade
>> we still don't have a satisfactory workaround...
>>
>> Mike Niswonger, Systems Engineer
>> charles.niswonger at eglin.af.mil
>> Air Force Research Lab / MNGG (KHILS),
>> SYColeman Corp.
>> 101 W Eglin Blvd, Bldg. 13, Rm. 115
>> Eglin AFB, FL 32542-5427
>> (850)882-4446, x1217
>> (850)882-4451, fax
>>
>> -----Original Message-----
>> From: centos-bounces at centos.org [mailto:centos-bounces at
centos.org] On
>> Behalf Of John Burk
>> Sent: Friday, April 15, 2005 1:42 PM
>> To: CentOS mailing list
>> Subject: Re: [CentOS] IBM BladeCenter HS20 blades
>>
>> I have 60 HS20's running CentOS 3.4, but I do the install via the
xcat
>> toolset over nfs.
>>
>> Have you looked at xcat yet to manage the os on your blades? Well
>> worth the time to setup, written primarily by IBM, and free.
>>
>> http://www.xcat.org/
>>
>> BTW, what processors are in your blades? I'm running the 3.2GHz
>> Nocona's, if your are similar you'll probably need to use these
kernel
>> parameters in your grub.conf:
>>
>> acpi=noirq noexec=off noapic
>>
>> And if you do go with nfs installs via xcat, the tg3 driver in 3.4 is
>> broken. E-mail me and I'll send you the work-around. It's
already in
>> xcat but it takes a bit of finesse to apply the fix.
>>
>> John Burk
>>
>> Sr. Technical Director
>> Mainframe Entertainment
>>
>> 604.628.1019
>>
>>
>>
>>
>> Brendon Colby wrote:
>>
>> > Greetings,
>> >
>> > We have purchased an IBM BladeCenter and I am in the process of
>> > testing Linux installation on these things (boot off SAN i.e.
qla2300
>> > driver, not using internal drives). My distro of choice is Debian,
>> > however, since I'm really not interested in trying to hand
compile all
>> > the drivers, I decided to try CentOS (which I'm so far very
impressed
>> > with).
>> >
>> > On boot, as with the Debian Sarge disk, the CDROM disappears. The
>> > installation media complains that it cannot find the CD. I'm
testing
>> > using the DVD ISO of CentOS 4. Has anyone been successful in
getting
>> > CentOS 3/4 installed on a BladeCenter server? I noticed back in
11/04
>> > there were a few posts on it.
>> >
>> > Thanks.
>> >
>> > Brendon Colby
>> > _______________________________________________
>> > CentOS mailing list
>> > CentOS at centos.org
>> > http://lists.centos.org/mailman/listinfo/centos
>> >
>> >
>> _______________________________________________
>> CentOS mailing list
>> CentOS at centos.org
>> http://lists.centos.org/mailman/listinfo/centos
>>
>
> ------------------------------------------------------------------------
>
> #!/bin/ksh
> #egan at us.ibm.com
> #See $XCATROOT/README for license.
> #
>
> if [ -z "$XCATROOT" ]
> then
> if [ -r /etc/sysconfig/xcat ]
> then
> . /etc/sysconfig/xcat
> else
> if [ -r /etc/rc.config ]
> then
> . /etc/rc.config
> fi
> fi
> fi
>
> if [ -z "$XCATROOT" ]
> then
> if [ -r "$(dirname $0)/../lib/xcatroot" ]
> then
> . $(dirname $0)/../lib/xcatroot
> fi
> fi
>
> if [ -z "$XCATROOT" ]
> then
> echo "$(basename $0): env XCATROOT not defined!" >&2
> exit 1
> fi
>
> if [ ! -d "$XCATROOT" ]
> then
> echo "$(basename $0): XCATROOT $XCATROOT does not exist!"
>&2
> exit 1
> fi
>
> . $XCATROOT/lib/functions
>
> function usage {
> echo "\nUsage: ${MYNAME} [singlenode]\n"
> }
>
> needhelp $* && usage >&2 && exit 0
>
> if [ "$#" != "1" ]
> then
> usage >&2
> exit 1
> fi
>
> NODE=$1
> NODENAME=$1
>
> if ! isanode $1 2>/dev/null
> then
> echo "${MYNAME}: $1 is not a node" >&2
> exit 1
> fi
>
> if NODETYPE=$(tabdb $NODETYPETAB $NODE 3)
> then
> :
> else
> echo "${MYNAME}: $NODE nodetype image not defined in
$NODETYPETAB" >&2
> exit 1
> fi
>
> if OSVER=$(tabdb $NODETYPETAB $NODE 1)
> then
> :
> else
> echo "${MYNAME}: $NODE nodetype osver not defined in
$NODETYPETAB" >&2
> exit 1
> fi
>
> if ARCH=$(tabdb $NODETYPETAB $NODE 2)
> then
> :
> else
> echo "${MYNAME}: $NODE nodetype arch not defined in
$NODETYPETAB" >&2
> exit 1
> fi
>
> if NODERES=$(whatismyres2 $NODE)
> then
> RESNAME=$NODERES
> else
> echo "${MYNAME}: $NODE noderes not defined in $NODERESTAB"
>&2
> exit 1
> fi
>
> MYOSVER=rhas3
> MYARCH=x86
>
> if [ "$OSVER" != "$MYOSVER" -o "$ARCH" !=
"$MYARCH" ]
> then
> echo "${MYNAME}: Install directory does not match $NODE in
$NODETYPETAB"
> exit 1
> fi
>
> if INSTALLDIR=$(tabdb $SITETAB installdir 1)
> then
> :
> else
> echo "$MYNAME: installdir not defined in $SITETAB"
> exit 1
> fi
>
> DISTDIR=$OSVER/$ARCH
> CFDIR=scripts/$OSVER/$ARCH
> PXET=install.pxe
> GRUBT=install.grub
> ELILOT=elilo.conf
> KERNEL=installz
> INITRD=install.gz
>
> FILES="$INSTALLDIR/$DISTDIR/images/pxeboot/initrd.img
$INSTALLDIR/$DISTDIR/images/pxeboot/vmlinuz /usr/share/terminfo/x/xterm
$TFTPDIR/$TFTPXCATROOT $TFTPDIR"
>
> if [ -r $TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$KERNEL -a -r
$TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$INITRD ]
> then
> DOIMAGE=0
> else
> DOIMAGE=1
> fi
>
> EXIT=0
> for i in $FILES
> do
> if [ ! -r $i ]
> then
> echo "${MYNAME}: $i missing"
> EXIT=1
> fi
> if [ "$EXIT" = "1" ]
> then
> exit 1
> fi
> done
>
> if [ -r $XCATPREFIX/tftp/pxelinux.0 ]
> then
> mkdir $TFTPDIR >/dev/null 2>&1
> cp -f $XCATPREFIX/tftp/pxelinux.0 $TFTPDIR
> else
> echo "$MYNAME: $XCATPREFIX/tftp/pxelinux.0 missing"
> exit 1
> fi
>
> if [ -r $XCATPREFIX/tftp/default ]
> then
> mkdir $TFTPDIR/pxelinux.cfg >/dev/null 2>&1
> cp -f $XCATPREFIX/tftp/default $TFTPDIR/pxelinux.cfg/default
> else
> echo "$MYNAME: $XCATPREFIX/tftp/default missing"
> exit 1
> fi
>
> MASTER=$(tabdb $SITETAB master 1) \
> || echo "${MYNAME}: master not defined in $SITETAB"
> MASTER_IP=$(nametoip $MASTER)
>
> #MASTER_IPS=$(
> # IPS=""
> # for i in $(dnsnr "@$MASTER(-eth[0-9])?")
> # do
> # if IP=$(nametoip $i)
> # then
> # IPS="$IPS $IP"
> # fi
> # done
> # print $IPS
> #)
>
> MASTER_IPS=$(
> IPS=""
> for i in $(ifconfig | egrep '^eth[0-9]' | awk '{print
$1}')
> do
> IP=$(ifconfig $i | perl -pi -e 's/ +/:/g' | grep inet:addr: | awk
-F: '{print $4}')
> IPS="$IPS $IP"
> done
> print $IPS
> )
>
> if CONFIG_SERVER=$(tabdb $NODERESTAB $RESNAME $noderes_config_server)
> then
> CONFIG_IP=$(nametoip $CONFIG_SERVER)
> else
> CONFIG_IP=$MASTER_IP
> CONFIG_SERVER=$MASTER
> fi
>
> RSHC=$(tabdb $SITETAB rsh 1) \
> || echo "${MYNAME}: rsh not defined in $SITETAB"
>
> if [ "$(basename $RSHC)" = "rsh" ]
> then
> RSH="Y"
> else
> RSH="N"
> fi
>
> SERIAL=$(tabdb $NODERESTAB $RESNAME $noderes_serial) \
> || echo "${MYNAME}: serial defined in $NODERESTAB"
>
> INSTALL_NFS=$(tabdb $NODERESTAB $RESNAME $noderes_nfs_install) \
> || echo "${MYNAME}: nfs not defined in $NODERESTAB"
> INSTALL_NFS_IP=$(nametoip $INSTALL_NFS)
>
> if [ "$INSTALL_NFS_IP" = "noip" ]
> then
> echo "Invalid Install NFS for $NODENAME"
> fi
>
> INSTALL_NIC=$(tabdb $NODERESTAB $RESNAME $noderes_netdevice) \
> || echo "${MYNAME}: install_nic not defined in $NODERESTAB"
>
> INSTALL_DIR=$(tabdb $NODERESTAB $RESNAME $noderes_install_dir) \
> || echo "${MYNAME}: nfs dir not defined in $NODERESTAB"
>
> INSTALL_SRC_DIR=$INSTALL_DIR/$DISTDIR
> INSTALL_CF_DIR=$INSTALL_DIR/$CFDIR
>
> mkdir -p $INSTALL_CF_DIR
>
> FILE=$INSTALLDIR/$CFDIR/$NODETYPE-$NODERES
> INSTALL_CF_FILE=$NODETYPE-$NODERES
>
> if [ ! -r $NODETYPE.tmpl ]
> then
> if [ ! -r base/$NODETYPE.tmpl ]
> then
> echo "${MYNAME}: cannot read template $NODETYPE.tmpl"
> exit 1
> else
> TMPLDIR="base"
> fi
> else
> TMPLDIR="."
> fi
>
> export MASTER
> export MASTER_IP
> export MASTER_IPS
> export CONFIG_IP CONFIG_SERVER
> export RSH
> export OSVER
> export ARCH
> export NODE
> export NODERES
> export NODENAME
> export NODETYPE
> export INSTALL_NFS
> export INSTALL_NFS_IP
> export INSTALL_SRC_DIR
> export INSTALL_CF_DIR
> export INSTALL_CF_FILE
> export KERNEL
> export INITRD
>
> perl -pi -e 's/\\\n$//' <$TMPLDIR/$NODETYPE.tmpl | LANG=C
subvars.pl >$FILE
>
> mkdir -p $TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH
>
> if [ -r "$PXET" ]
> then
> PXEF=$TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$NODETYPE-$NODERES.pxe
> perl -pi -e 's/\\\n$//' <$PXET | LANG=C subvars.pl >$PXEF
> if [ "$SERIAL" = "0" -o "$SERIAL" =
"1" ]
> then
> :
> else
> perl -pi -e "s/^SERIAL/#SERIAL/g" $PXEF
> # perl -pi -e "s/(console[^ ]* )//" $PXEF
> perl -pi -e "s/(console[^ ]* ){2}//" $PXEF
> fi
> fi
>
> if [ -r "$GRUBT" ]
> then
> GRUBF=$TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$NODETYPE-$NODERES.grub
> perl -pi -e 's/\\\n$//' <$GRUBT | LANG=C subvars.pl >$GRUBF
> if [ "$SERIAL" = "0" -o "$SERIAL" =
"1" ]
> then
> :
> else
> perl -pi -e "s/^serial/#serial/g" $GRUBF
> perl -pi -e "s/^terminal/#terminal/g" $GRUBF
> # perl -pi -e "s/(console[^ ]* )//" $GRUBF
> perl -pi -e "s/(console[^ ]* ){2}//" $GRUBF
> fi
> fi
>
> if [ -r "$ELILOT" ]
> then
> ELILOC=$TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$NODETYPE-$NODERES.elilo
> perl -pi -e 's/\\\n$//' <$ELILOT | LANG=C subvars.pl
>$ELILOC
> if [ "$SERIAL" = "0" -o "$SERIAL" =
"1" ]
> then
> :
> else
> perl -pi -e "s/^SERIAL/#SERIAL/g" $ELILOC
> # perl -pi -e "s/console[^ ]* //" $ELILOC
> perl -pi -e "s/(console[^ ]* ){2}//" $ELILOC
> fi
> fi
>
> if [ "$DOIMAGE" = "0" ]
> then
> exit 0
> fi
>
> cp -f $INSTALLDIR/$DISTDIR/images/pxeboot/vmlinuz
$TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$KERNEL
> cp -f $INSTALLDIR/$DISTDIR/images/pxeboot/initrd.img
$TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$INITRD
>
> TMPDIR=/tmp/.mkinstall-$OSVER-$ARCH
>
> if getlock mkinstall-$OSVER-$ARCH 60
> then
> :
> else
> echo "${MYNAME} Failed to get $TMPDIR lock"
> exit 1
> fi
>
> rm -rf $TMPDIR
> mkdir -p $TMPDIR
>
> gunzip -c $TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$INITRD >$TMPDIR/initrd
2>/dev/null
> mkdir -p $TMPDIR/root
> mount -o loop $TMPDIR/initrd $TMPDIR/root
> #mkdir -p $TMPDIR/root/etc/terminfo/x
> #mkdir -p $TMPDIR/root/etc/terminfo/v
> #mkdir -p $TMPDIR/root/etc/terminfo/b
> #cp -f /usr/share/terminfo/x/xterm $TMPDIR/root/etc/terminfo/v/vt100
> #cp -f /usr/share/terminfo/x/xterm $TMPDIR/root/etc/terminfo/b/bterm
> #cp -f /usr/share/terminfo/x/xterm $TMPDIR/root/etc/terminfo/x/xterm
>
> ###
> #rm -f $TMPDIR/root/etc/terminfo/v/vt100-nav
>
> perl -pi -e 's/^.*qla2.00.*\n$//' $TMPDIR/root/modules/pcitable
>
> #MYDIR=$(pwd)
> #cd $TMPDIR
>
> #gunzip -c root/modules/modules.cgz | cpio -id 2>/dev/null
>
> #if [ -r $MYDIR/data/e100.o ]
> #then
> # rm -f 2.4.21-3.ELBOOT/eepro100.o
> # cp -f $MYDIR/data/e100.o 2.4.21-3.ELBOOT/eepro100.o
> # cat $MYDIR/data/e100.pcitable >> root/modules/pcitable
> #fi
>
> #if [ -r $MYDIR/data/bcm5700.o ]
> #then
> # cp -f $MYDIR/data/bcm5700.o 2.4.21-3.ELBOOT/bcm5700.o
> # cat $MYDIR/data/bcm5700.pcitable >> root/modules/pcitable
> # cat $MYDIR/data/bcm5700.module-info >> root/modules/module-info
> #fi
>
> #if [ -r $MYDIR/data/e1000.o ]
> #then
> # cp -f $MYDIR/data/e1000.o 2.4.21-3.ELBOOT/e1000.o
> # cat $MYDIR/data/e1000.pcitable >> root/modules/pcitable
> # cat $MYDIR/data/e1000.module-info >> root/modules/module-info
> #fi
>
> #find 2.4.21-3.ELBOOT -type f -print | cpio -o -H crc 2>/dev/null | gzip
-c -9 >root/modules/modules.cgz
>
> #cd $MYDIR
>
>
> # default kernel version that ships with RHEL3-U4
> KERNELVER=2.4.21-27
> #
> # try and detect if we're actually installing CentOS instead of RHEL
> # ( tests cut&paste'd from XCATROOT/sbin/copycds )
> #
> if [ -f $INSTALLDIR/$DISTDIR/.discinfo ]
> then
> if egrep "1104951135.38" $INSTALLDIR/$DISTDIR/.discinfo
>/dev/null 2>&1
> then
> if grep "i386" $INSTALLDIR/$DISTDIR/.discinfo >/dev/null
2>&1
> then
> # kernel version in the CentOS-3.4 distro
> KERNELVER=2.4.21-27.0.1
> fi
>
> fi
> fi
>
> #
> # fix the broken tg3 driver in RHEL3-U4/CentOS-3.4
> #
> if [ -f $INSTALLDIR/$DISTDIR/RedHat/RPMS/kernel-${KERNELVER}.EL.i686.rpm ]
> then
> MYDIR=$(pwd)
> cd $TMPDIR
> gunzip -c root/modules/modules.cgz | cpio -id 2>/dev/null
>
> if [ -r $MYDIR/data/27.EL/bcm5700.o ]
> then
> cp -f $MYDIR/data/27.EL/bcm5700.o ${KERNELVER}.ELBOOT/i386/tg3.o
> fi
>
> find ${KERNELVER}.ELBOOT -type f -print | cpio -o -H crc 2>/dev/null |
gzip -c -9 >root/modules/modules.cgz
>
> cd $MYDIR
> fi
>
> umount $TMPDIR/root
> gzip -9 -f $TMPDIR/initrd
> cp -f $TMPDIR/initrd.gz $TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH/$INITRD
>
> rm -rf $TMPDIR
>
> freelock mkinstall-$OSVER-$ARCH 0
>
> cd $TFTPDIR/$TFTPXCATROOT/$OSVER/$ARCH
>
> chown -f root.root *.gz *.pxe *.nbi *.eb
> chmod -f 444 *.gz *.pxe *.nbi *.eb
>
> exit 0
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> http://lists.centos.org/mailman/listinfo/centos