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@xxxxxxxxxxxx >> 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@xxxxxxxxxx [mailto:centos-bounces@xxxxxxxxxx] On >> Behalf Of John Burk >> Sent: Friday, April 15, 2005 1:42 PM >> To: CentOS mailing list >> Subject: Re: 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@xxxxxxxxxx >> > http://lists.centos.org/mailman/listinfo/centos >> > >> > >> _______________________________________________ >> CentOS mailing list >> CentOS@xxxxxxxxxx >> http://lists.centos.org/mailman/listinfo/centos >> > > ------------------------------------------------------------------------ > > #!/bin/ksh > #egan@xxxxxxxxxx > #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@xxxxxxxxxx > http://lists.centos.org/mailman/listinfo/centos