TA # Date Created Date Updated   Printer Friendly Version of This TA   Print Article
  E-mail This TA   E-mail Article
125433 10/28/2003 09:47 AM 09/08/2010 09:36 AM
Changing root disk controllers without reinstalling UnixWare 7.1.x.
Keywords
changing root disk controller UnixWare 7.1.3 uw7 unixware unixware7 uware 7.0.0 7.0.1 7.1.0 7.1.1 700 701 710 711 uw7 unixware unixware7 uware 7.1.1 711 713 sco open unix openunix openunix8 ou ou8 8.0.0 7.1.2 712 adaptec 2940 29160 ultra160 7.1.x OpenUNIX8 confidential 7.1.4 714 change alter altering trouble troubleshoot troubleshooting RESMGR RESMGR= BOOT BOOTPROG BOOT= BOOTPROG= osr openserver osr6 openserver6 6.0.0 600
Release
          SCO Unixware Release 7.1.3, 7.1.4 
          SCO Open Unix 8 Release 8.0.0 (Unixware 7.1.2)  
          Unixware 7 Release 7.0.0, 7.0.1, 7.1.0, 7.1.1  
          SCO OpenServer Release 6.0.0 
           
Problem
          I wish to change my root hard disk controller without 
          having to reinstall UnixWare 7.1.x. Could I end up with a 
          non-bootable hard disk?

HARDWARE:
          Adaptec AHA-2940 Ultra/Ultra W (adsl) 
          Adaptec AHA-2940 U2W (adsb) 
          Adaptec Ultra160 (29160) (adst70)

CAUSE:
          Your system could end up non-bootable for a number of 
          reasons. Different controllers can interpret the hard 
          disk geometries differently. Changing the controllers 
          could therefore have disastrous consequences, especially 
          if you are changing root controllers manufacturers. 
          e.g. Swapping an Adaptec controller for a Mylex controller.


Solution
          As this is such a risky process, it is normally *only*
          recommended that the customer reinstall the operating system.

          In addition, this procedure has only been tested on SCO UnixWare7 and
          not SCO OpenServer6 at time of writing.

          Should the customer choose not to reinstall, and have a
          verified backup to hand, they can try the instructions below. 
           
          1.  Plug in the new Ultra160 (29160). Do not plug anything 
              up to the new card yet. 
           
          2.  Power on the server. 
           
          3.  Log in as root and install the latest adst70 driver if 
              not already installed 
           
           You can check if it is installed by running 
           /sbin/sdiconfig 

           If the driver is not installed, then insert the most 
           up-to-date HBA diskette 1 and run the following command; 

           # pkgadd -d diskette1 adst70 
           
           Reboot the system to ensure that the resmgr gets 
           updated 
           **Ensure that you can see the adst70 hba in resmgr 
           once the server reboots** 
           
          4.  Backup your kernel and resmgr files. These files are necessary 
              to recover your system should the need arise. 
           
              # cp /stand/resmgr /stand/resmgr.adsl 
              # cp /stand/unix /stand/unix.adsl 
           
          5.  Check which key your adsl hba is using in the resmgr database 
           
              # resmgr | grep adsl 
           
           Note the number of the key which is the first field
           
          6.  Remove this key from the resmgr database 
           
              # resmgr -r -k  "key" 
           
          7.  Update the resmgr database by telling it which hba to 
              boot from 
           
              # resmgr -m adst70 -i 0 -p BOOTHBA -v 0   
           
           This will set the boothba to adst70 
           
          8.  Update the kernel configuration files under /etc/conf/sdevice.d 
           
              # /etc/conf/bin/idconfupdate -f 
           
          9.  Statically link your new hba driver in the kernel 
           
              # vi /etc/conf/sdevice.d/adst70  
           
              Add a line "$static" after "$version 2" 
           
          10. Relink the kernel 
           
              # /etc/conf/bin/idbuild -FB 
           
          11. Shut down the server 
           
              # init 0 
           
          12. Power off the system 
           
          13. Connect the root disk to Ultra160, leaving the old 2940 in place 
           
          14. Power on the system 
           
          If desired, remove the 2940 at a *later* stage once you are happy
          that the server is functioning as expected. 
           
          To recover / reverse this process should the need arise; 
           
            - Switch on the server 
            - At the UnixWare splash screen press the space bar. 
              This will take you to the Boot: prompt. 
            - Type FILES=resmgr:resmgr.adsl then press ENTER
            - Type RESMGR=resmgr.adsl, then press ENTER 
            - Type BOOTPROG=unix.adsl, then press ENTER 
            - Type "b", then press ENTER to boot the server normally. 
           
          It is to be expected that the server will reboot itself 
          automatically during the first reboot. 
           
            - Log on as root 
            - cp /stand/unix /stand/unix.$$ (just in case) 
            - cp /stand/unix.adsl /stand/unix 
            - Reboot the server 
           
          Other expected issues; 
            If you mount any non-root filesystems, they will probably 
            not mount correctly after changing controller. If you look 
            at the syntax of /etc/vfstab, you'll see something similar 
            to the lines below; 
           
            ***snip*** 
            /dev/dsk/c0b0t0d1s1 /dev/rdsk/c0b0t0d1s1 /directory vxfs 1 
            YES - SYS_RANGE_MAX /dev/dsk/c1b0t0d0s1 
            /dev/rdsk/c1b0t0d0s1 /user_data vxfs 1 YES - SYS_RANGE_MAX 
            ***unsnip*** 
           
          The number after the letter "c" here - 
          /dev/dsk/c*0*b0t0d1s1 is the controller number. As the 
          controller numbering may change during this process 
          depending on your configuration, you should be aware of 
          this and modify as required to get your non-root 
          filesystems remounted successfully. 
           
          For example, in a typical 1 HBA system, they will all say 
          /dev/[r]dsk/c0bXtXsX but the new boot HBA is now c1. Simply change
          all of the c0's to c1's. If the new HBA is not c1, adjust procedure
          accordingly.

NOTES:
          These instructions have also been tested changing from an 
          Adaptec 2940U2W (adsb) to an Adaptec 2940 Ultra/UltraW (adsl).

TROUBLESHOOTING:

          The above article describes an ordered processs of steps but consider
          the following.  The original server has gone down and you have had
          to move the hard disk from one server to a new server which has a
          different hard disk root controller.

          Consider the following steps:

          1.  Boot the server with the original installation media as per 
              TA#125406 and gain access to the hard disk.  

              YOU WILL ALSO NEED TO ENSURE THAT /mnt/stand IS ALSO MOUNTED!

          2.  Load the new hard disk driver from the appropriate media,
              hopefully, a floppy disk.  It would not be possible to use CD
              Media as the CD will already be mounted to boot the installation
              OS CD.

              For example, you will already have prepared the "adsl" floppy
              disk on another server and can load it with:

              # pkgadd -d diskette1

          3.  Remove $static from /etc/conf/sdevice.d/adsb and ensure all the
              Y entries now say N.

          4.  Within /etc/conf/sdevice.d/adsl ensure $static is present and
              that the entries are Y enabled.

          5.  Replace the line (for example):

              6:1:adsb:adsb

              with:

              6:1:adsl:adsl

              in /etc/loadmods

           6. # resmgr -m adsl -i 0 -p BOOTHBA -v 0  

              ie. to tell the DCU which HBA to boot from.  If this is not 
              present in the "resmgr" yet then it is recommended to relink the
              kernel first.

           7. # /etc/conf/bin/idconfupdate -f

              Please note that this will re-create the /stand/resmgr with the
              resmgr determined at ISL, therefore, additional components such
              as Networking, etc would need to be bound back into the kernal
              after rebooting with the new kernel on the new HBA.

           8. # /etc/conf/bin/idbuild -FB
 
           9. # cp /stand/unix /stand/unix.sco
              # cp /etc/conf/cf.d/unix /stand/unix

           10. To check:

              # resmgr | adsl

              and:

              # strings /stand/unix | grep adsl
               
              Should return "adsl" references and be absent of "adsb".

           11. You should now be in a position to umount the disk and reboot
               your server.

TROUBLESHOOTING:

           - I've moved the HBA successfully but now I can't see the CDROM even
             though the correct HBA drivers are loaded in the resmgr.

             Try the following to make sure the kernel correctly contains the
             entries it needs:

             # cd /etc/conf/bin
      	     # ./idconfupdate -f
	     # ./idbuild -FB
             # init 0

SEE ALSO:
          man pkgadd, man sdiconfig, man boot, man resmgr
HomeHome