Search |
University of Florida | Department of Physics
--> Overview

--> Common Questions

--> Adobe Acrobat

--> Cisco

--> SGI Scanner

--> Packet Video Conf

--> Small Video Conf

--> New Users

--> Lic. Software

--> Public Domain

--> X-term & CDE

--> AS400

--> Digital Unix

--> Solaris

 * RedHat Linux(Alpha)

--> Silicon Graphics

--> Next

--> Misc Procedures

--> Windows 95, NT

--> Dialup

--> Linux

Setting up Redhat 6.1 from scratch

  1. Grab the iso distribution from somewhere. Ga. Tech, North Carolina and sometimes local cise or circa has these.
  2. The Intel compaq servers boot from the cdrom by default. Don't need to make the floppies. If you do need to make a floppy get the rawrite and boot.img for CD based boot or network boot and use the DOS window to create floppies.
  3. Boot it up and select language, keyboard and mouse type and then the install presents several options. Server option is not recommended for dual boot configurations as it overwrites any dos partitions you may have setup before. We select custom and make our own file systems with a large swap space using the GUI tool.
  4. Allocate at least /, /usr, /var and swap partitions at least. Usually we have a tmp file system per machine as well on a seperate disk.

Setting up Redhat 5.1 from scratch

  1. If the machine is already in SRM console do the firmware upgrade using bootp just like any other digital unix boxes. ewa0_protocols bootp and boot ewa0 and update. If you have to switch to the AlphaBios Console, you need to get the correct zip file from data.microway.com under pub lx164 names and unzip them. There are two floppies. One switchs from AlphaBios to Older SRM after which we need to do the bootp to upgrade. The other switches from SRM to AlphaBios after which you can upgrade using the a floppy. For some reason bootp doesn't work under AlphaBios console. Before any attempts to do bootp make sure the CISCO switch port that this is connected to is fixed at full duplex 100 Mbps. The alpha consoles either can not or will not do autonegotiate at that prompt level.
  2. Copy the latest redhat alpha distribution from sunsite.unc.edu. You need to use get alpha.tar.gz which combines the directories into one file and keeps the protections and the links intact. This seems necessary to do the nfs based installaion later on. Unpack this into /cleo/tmp1/chandra/redhat directory. It is a good idea to look in the Updates directory also at the same time and get the packages that are available and unpack them over the ones that are stock distribution. This will help in not having to patches after the install.
  3. Get three empty floppies. The first floppy needs to have the MILO boot disk that works with the SRM console. This is in the form milo.dd at ftp://ftp.digital.com/pub/DEC/Linux-Alpha/Miniloader/ and write it to the floppy disk using rawrite.exe (on a DOS PC) or dd if=milo.dd of=/dev/fd0 bs=1K on a linux box. The rawrite is available under dosutils directory of the redhat distribution. The second floppy needs to be ext2 formatted on a linux box. To do this,
    
    fdformat /dev/fd0H1440
    mount /dev/fd0 /mnt
    /sbin/mk2efs /mnt
    
    From the kernel subdirectory of the redhat distribution
    
    cp lx164.gz /mnt/vmlinux.gz
    umount /mnt
    
    1:12345:respawn.....
    2:12345:respawn:/sbin/mingetty ttyS0
    
    You can comment out the other 2,3,4,5,6 mingetty entries as we don't have any terminals directly attached to these machines. You have to kill and restart init which is usally the PID 1 or do a reboot. You should now see a login prompt on the console. At the MILO prompt you need add the
    boot sda2:vmlinux.gz root=/dev/sda2 load_ramdisk=1 console=/dev/tty0 or console=serial
    and it seems to help. We have not tried without the console=/dev/tty0 but we think it should work.
  4. We patched up the 2.0.34 kernel with the serial console patch and rebuit the aboot version of the vmlinux.bootp. It seems to be able to get to aboot and get to the scsi bus but can not initialize any drives. We need to look for patches to 2.0.34 on the alphas to support the Qlogic bus correctly. It appears such stuff exists on the DEC site where the kernels we got from work on the controllers. All the sources for kernels, aboot and the downloads chandra did are non in /usr/src directory of helix14. Please put all the things you are getting over there so that we can one repository.

Setting up RedHat 5.0 on an Alpha PC164LX

  1. Currently we are buying our machines from Microway so the low level setup of the firmware is currently left out. We do however have specific requirements for the Microway setup. We require the SRM console to be used on machines which will not have graphics heads (graphics card, monitor and keyboard). The ARC console does not allow booting without these things, and for compute servers there is no desire to have them.

  2. Disk partitioning is done with the tool "fdisk." Currently fdisk is limited to disks with 63 or fewer sectors per track. The 18 gig Seagate drives that we now buy have 237 sectors per track. Microway suggested that I try an old Intel fdisk trick to get around the limit of 63 sectors/track (our disks have 237 sectors / track). I did the math and came up with:
    Here are the physical parameters of our disks:
    
            512 bytes/sector
            237 sectors/track
            20 tracks/cylinder
            7501 cylinders
    
    Here is what we tell fdisk:
    
            512 bytes/sector
            63 sectors/track
            255 tracks/cylinder
            2213 cylinders
    
    Here is the console output from an fdisk session:
    
            login as root
            /sbin/fdisk /dev/sdb
    
            Command (m for help): c
            DOS Compatibility flag is not set
            
            Command (m for help): d
            Partition number (1-4): 1
    
            Command (m for help): d
            Partition number (1-4): 2
    
            Command (m for help): d
            Partition number (1-4): 3
    
            Command (m for help): d
            Partition number (1-4): 4
    
            Command (m for help): x
    
            Expert command (m for help): c
            Number of cylinders (1-[1023]-65535): 2213
            The number of cylinders for this disk is set to 2213.
            This is larger than 1024, and may cause problems with:
            1) software that runs at boot time (e.g., LILO)
            2) booting and partitioning software form other OSs
               (e.g., DOS FDISK, OS/2 FDISK)
    
            Expert command (m for help): r
    
            Command (m for help): n
            Command action
               e   extended
               p   primary partition (1-4)
            p
            Partition number (1-4): 1
            First cylinder (1-2213): 1
            Last cylinder or +size or +sizeM or +sizeK ([1]-2213): 2213
            Command (m for help): w
            The partition table has been altered!
    
            Calling ioctl() to re-read partition table.
            Syncing disks.
    
            WARNING: If you have created or modified any DOS 6.x
            partitions, please see the fdisk manual page for additional
            information.
    
    And the command to layout the disk format is:
    
            /sbin/mkfs -m 1 /dev/sdb1
    
    ("m 1" reserves 1% of the disk space for root's use)
  3. In order to allow root logins over the net, rename the file /etc/securetty file.

  4. Most of the system setup is done using a GUI tool named "control-panel." This requires X to be used. If you are not using X then cd to the /etc/sysconfig directory and edit the files by hand. A good reference for the /etc/sysconfig directory is here

  5. To get on the network you will need the file /etc/sysconfig/network and /etc/sysconfig/network-scrips/ifcfg-eth0. Here is network from a typical machine:
    
    	NETWORKING=yes
    	FORWARD_IPV4=no
    	HOSTNAME=helix01
    	DOMAINNAME=phys.ufl.edu
    	GATEWAY=128.227.89.1
    	GATEWAYDEV=eth0
    	NISDOMAIN=phys.ufl.edu
    
    And ifcfg-eth0:
    
    	DEVICE=eth0
    	IPADDR=128.227.89.226
    	NETMASK=255.255.255.0
    	NETWORK=128.227.89.0
    	BROADCAST=128.227.89.255
    	ONBOOT=yes
    	BOOTPROTO=none
    	USERCTL=no
    	ypserver  ligo
    
    
    ** Note: the NIS server must exist in the /etc/hosts file **

    To create the links from /etc/rc.d/rc? to start ypbind the tool "chkconfig" (same as on SGI Irix machines) is used. Chkconfig gets its information from the /etc/rc.d/init.d/ypbind script. The correct command to start ypbind at boot is"chkconfig --level 5 ypbind on" is used, where 5 is the runlevel to turn this on at. I also turned it on at runlevel 3 and 4 with similar commands.

    Check to see if the directory /var/yp exists. If not create it as ypbind requires it to start.

    You can now start ypbind with the command "/etc/rc.d/init.d/ypbind start" and then test it with "ypwhich."

  6. Get network time from one of our servers: Add the line "/usr/bin/rdate -s ligo" to the end of the file /etc/rc.d/rc.local

  7. Use our nameservers for DNS lookups: /etc/resolv.conf should read:
    
                    search phys.ufl.edu 
                    nameserver 128.227.64.2
                    nameserver 128.227.64.70
    

  8. Add the hostname for the local machine, the nameservers, and the NIS server to the file /etc/hosts. Ideally the name and number of the new machine should be added to the /etc/hosts file on phys.ufl.edu and then rdisted over, but this can be done later. /etc/hosts:
    
    	# /etc/hosts file for Physics Department
    	# For information contact 
    	# Last Edited 11/4/97
    	#
    	127.0.0.1       localhost loghost
    	# Campus name servers
    	128.227.128.24    name.ufl.edu
    	192.80.214.100    noc.sura.net
    	128.227.148.252   cutter.clas.ufl.edu
    	128.227.16.3      orange.qtp.ufl.edu      orange 
    	128.227.192.1     crunch.qtp.ufl.edu      crunch
    	128.227.64.7      neptune-gw.phys.ufl.edu neptune-gw
    	128.227.24.1      neptune.phys.ufl.edu    neptune
    	128.227.89.55     ligo.phys.ufl.edu       ligo
    	128.227.89.???    newmachine.phys.ufl.edu newmachine
    

  9. Edit /etc/fstab and add the NFS filesystems. Add the user disks and one or more temporary disks and the mail spool area from the mail server.
    
    /dev/sda2    /              ext2      defaults  1 1
    # /dev/fd0   /mnt/floppy    ext2      noauto    0 0
    /dev/sda1    none           ignore    0         0 0
    /dev/sdb1    /helix01/tmp1  ext2      defaults  0 0
    
    none         /proc          proc      defaults
    /dev/sda3    none           swap      sw
    /dev/sda4    /usr           ext2      defaults  1 2
    
    #/dev/scd0   /cdrom         iso9660   ro        0 0
    
    # NFS mounts:
    hee:/heeusers           /heeusers       nfs rw,bg
    hee:/hee/cleo           /hee/cleo       nfs rw,bg
    helix02:/helix02/tmp1   /helix02/tmp1   nfs rw,bg
    helix03:/helix03/tmp1   /helix03/tmp1   nfs rw,bg
    
    

  10. Create the directories and mount the filesystems using mount -a. If this a brand new machine being added to the network, we will need to add it into a netgroup in the /etc/yp/netgroup file on the NIS master server and propagate that to the entire network. It may also be necessary to explicitely export filesystems for the client to be able to mount them. This is done by issuing /etc/rc.d/init.d/nfs restart command.

  11. Make a link using ln -s /local /usr/local if the machine is going to have its own local. Populate the /usr/local filesystem from another machine of the same OS and architecture using rdist. You will need to edit /root/.rhosts file to allow root logins from the other machine through rsh without password. You can copy it from some other client. Remember to do chmod 400 /.rhosts after the file is created. You will then need to login to the other machine as root in /local/adm/system/rdist directory and use the command
    
    	rdist -n -o remove -p /usr/sbin/rdistd -f /path/to/Distfile.usr.local
    
    
    Check the output of what will be updated. If it is alright then use
    
    	rdist -o remove -p /usr/sbin/rdistd -f /path/to/Distfile.usr.local
    
    
    The Distfile.usr.local would contain:
    
    	/usr/local -> newmachine.phys.ufl.edu
    
    You could also include all of the other files that we have been modifying by hand, here is the Distfile used to keep all of the High Energy Experiments Helix cluter in sync:
    
    	# We setup helix01 to they way we like and distribute stuff from there
    	# to all the other helix machines. You need to have /.rhosts
    	# fixed up on the clients first with helix01 root allowed.
    	# Also remember to do chmod 400 ~root/.rhosts on the clients
    	#
    	#
    	HELIX  = ( helix02 helix03 helix04 helix05 helix06 helix07 helix08 helix09 helix10
    	 helix11 helix12 helix13 helix14 )
    
    	ALL = ( ${HELIX} )
    	#
    	all:    /etc/hosts.equiv -> ( ${ALL} )
    	all:    /etc/group -> ( ${ALL} )
    	all:    /etc/yp.conf -> ( ${ALL} )
    	all:    /etc/resolv.conf -> ( ${ALL} )
    	all:    /etc/shells -> ( ${ALL} )
    	#all:   /etc/securetty -> ( ${ALL} )
    	all: /etc/printcap -> ( ${ALL} )
    	#
    	# When sending out CDE areas watchout for the Xaccess file which
    	# contains the X-terminals allowed to access the server and
    	# Xconfig file which determines whether local graphics console
    	# is present (neutron, proton).
    	#
    	all: /usr/lib/X11/app-defaults -> ( ${ALL} )
    	all: /usr/lib/X11/fonts -> ( ${ALL} )
    	#
    	all:    /root/.bashrc -> ( ${ALL} )
    	all:    /root/.cshrc -> ( ${ALL} )
    	all:    /root/.login -> ( ${ALL} )
    	all:    /root/.profile -> ( ${ALL} )
    	all:    /root/.rhosts -> ( ${ALL} )
    	#
    	all: /usr/local -> ( ${ALL} )
    
    

    After this is done, remember to add the new client to the Distfile.weekly script so that /usr/local area gets updated automatically.

  12. Copy /etc/shells from some other client or add our local shells to the system shells one per line. This will let our users ftp into that machine.

Setting up amd

  1. It appears that there is a bug in the ypbind on the alphas that kills the ypbind daemon under redhat linux 5.0 stock distribution. So the following packages that are related were installed on all helix machines using rpm. The command to do this is rpm -Uvh package-name . The only special one is portmap which needs the --noscript option as it screws up the system area links on the alphas. On the intel PCs you need to download the .i386.rpm versions of am-utils and may not need all the ypbind stuff at all if you are not going to be a full NIS client.
    
    am-utils-6.0a16-1.alpha.rpm
    glibc-2.0.7-13.alpha.rpm
    glibc-debug-2.0.7-13.alpha.rpm
    glibc-devel-2.0.7-13.alpha.rpm
    glibc-profile-2.0.7-13.alpha.rpm
    nfs-server-2.2beta29-5.alpha.rpm
    portmap-4.0-8.alpha.rpm
    ypbind-3.3-3.alpha.rpm
    
  2. After the am-utils-XXX is installed, create a file /etc/amd.conf that looks like the following
    
    # Global Options for amd automounter
    [global]
    # Where the actual mounts occur.  This will mimic Digital Unix and SUN Solaris
    auto_dir                =       /tmp_mnt
    # Log messages to /var/log/messages through syslog facility
    log_file                =       syslog
    # Just enable file maps first.  
    # Saves time on lookups as it doesn't have to hunt all available maps
    map_type                =       file
    # Make the filesystems mounted statically known to amd
    restart_mounts          =       yes
    # Supposed to give a listing of available directories for ls (again mimics DU and Solaris)
    browsable_dirs          =       yes
    # Directory where we will keep the maps
    search_path             =       /etc/amdmaps
    # Extend the umount time to 30 minutes of inactivity
    dismount_interval       =       1800
    # Unmount all filesystems 
    unmount_on_exit		=	yes
    # One map per machine
    [	/maxwell	]
    map_name		=	maxwell
    [	/charm01	]
    map_name		=	charm01
    [	/charm02	]
    map_name		=	charm02
    [	/charm03	]
    map_name		=	charm03
    [	/charm04	]
    map_name		=	charm04
    [	/charm05	]
    map_name		=	charm05
    [	/charm06	]
    map_name		=	charm06
    [	/charm07	]
    map_name		=	charm07
    [	/charm08	]
    map_name		=	charm08
    [	/charm09	]
    map_name		=	charm09
    [	/charm10	]
    map_name		=	charm10
    [	/helix02	]
    map_name		=	helix02
    [	/helix03	]
    map_name		=	helix03
    [	/helix04	]
    map_name		=	helix04
    [	/helix05	]
    map_name		=	helix05
    [	/helix06	]
    map_name		=	helix06
    [	/helix07	]
    map_name		=	helix07
    [	/helix08	]
    map_name		=	helix08
    [	/helix09	]
    map_name		=	helix09
    [	/helix10	]
    map_name		=	helix10
    [	/helix11	]
    map_name		=	helix11
    [	/helix12	]
    map_name		=	helix12
    [	/helix13	]
    map_name		=	helix13
    [	/helix14	]
    map_name		=	helix14
    [	/heetape	]
    map_name		=	heetape
    
    
    The above file is almost identical on all our machines except for two lines which are missing depending on which machine you are on. For example this is a file that I copied from helix01 and so has the two lines for that machine missing. It is important to omit maps for the local file systems as otherwise amd will umount them from the regular place and mounts them in the /tmp_mnt area creating problems with exports.
  3. Then create a directory called /etc/amdmaps and create files with the mapnames mentioned above in that directory. For example the charm05 map looks like the following: These files are very similar to each other except for the hostname changes. Someday we will figure out the amdmaps macros fully to automate this to a single file.
    
    /defaults       type:=nfs;opts:=nosuid,nodev,rw,grpid
    
    *               host!=charm05;fs:=${autodir}${path};rhost:=charm05;rfs:=${path}
    
  4. You then edit /etc/sysconfigtab/amd file to look like AMDOPTS='-r -w 1800'. The 1800 here is a repitition to the parameter specified the configuration file but it appears that amd will umount in 2 minutes without this explicit startup parameter.
  5. You then edit the /etc/rc.d/init.d/amd file to look like this. This involves taking out a couple of lines that are there, and changing a couple of flags and adding a couple of lines to umount and mount filesystems when amd is stopped and restarted. The file can be copied from any of our helix machines and looks like this
    
    #!/bin/sh
    #
    # chkconfig: 345 72 28
    # description: Runs the automount daemon that mounts devices and NFS hosts \
    #	       on demand.
    # processname: amd
    # config: /etc/amd.conf
    # Modified by Chandra to eliminate the /etc/sysconfig/amd reading
    # and increase the timeouts to 30 minutes
    #
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # See how we were called.
    case "$1" in
      start)
    	echo -n "Starting amd: "
    	touch /var/lock/subsys/amd
    	daemon /usr/sbin/amd -r -w 1800 -c 1000 -F /etc/amd.conf
    	echo
    	
    	;;
      stop)
    	echo -n "Umounting all filesystems: "
    	umount -a
    	echo -n "Mounting filesystems in /etc/fstab"
    	mount -a
    	echo -n "Shutting down amd: "
    	killproc amd
    	rm -f /var/lock/subsys/amd
    	echo amd
    	;;
      status)
    	status amd
    	;;
      restart|reload)
    	killall -HUP amd
    	;;
      *)
    	echo "Usage: amd {start|stop|status|restart}"
    	exit 1
    esac
    
    exit 0
    
    
    The umount and mount were added after we discovered that the mountpoints did not go away after just stopping amd preventing it from further mounting filesystem when restarted. This behavious is not seen under Solaris or DU. Only on linux.
  6. You then make sure you machine is the allowed list of machines to mount the remote filesystems you are putting in your maps. Typically this involves editing the /etc/exports on the server machine or the /etc/yp/netgroup on neptune (our Yellow Pages master) and propagating the information to all the clients. Contact Dan or Chandra if this step is needed.