GroupWise Migration from NetWare to OES2 SP2 with Transfer ID


GroupWise 8 Data migration to OES2 Linux




Disk Settings (Cluster and Standalone)

Standalone Server GW Software Install

Standalone Server – First Copy with dbcopy

Standalone Server – Final Copy with dbcopy

Standalone Server – GW Agent Configuration for MTA/POA

Standalone Server – ConsoleOne Settings AFTER ID Transfer

Standalone Server – Final Items


This is the set of steps we did to migrate our GroupWise from NetWare to OES2 Linux, in conjunction with an ID transfer. It is not the only method to migrate GroupWise. Please note that our setup we used a DEDICATED volume of: GW to house the domain and post offices. We did not have other file services on that volume (ie, we did not mix user data with the GroupWise data). This only covers MTA/POA migrations. You may also wish to refer to Danita Zanre's migration/move guides at

Disk Settings (Cluster and Standalone)

This document may be broken into two sections: Standalone server and Cluster servers. The reason for this is that a cluster server does not require that the NSS Volume be migrated from NetWare to another Linux server. Rather, NCS migrations can simply mount the existing NSS Volume.

First, you will need to adjust some disk settings (if you have not already done so).

Edit the /etc/fstab file (you can use vi or gedit)

Find the line where it mounts the GW volume and add the word: noatime before the 0,0 like shown below:



Standalone Server GW Software Install

This assumes the OES2 Linux server is up and running and has not had an ID transfer done yet.

    1. Make sure that you do this install "off hours" or when nobody is using the OES2 server for file services. The GW 8.x install will restart ndsd (eDirectory) if using NSS and that will disrupt your NCP connections to the server. This is supposedly going to be fixed with GW 8.0.2.


    1. Copy the gw801_full_linux_en.tar.gz file to the GW volume on the OES2 server. You can map a drive if you wish. (or whatever the version of GW is that you are using. 8.0.1 HP1 has a different file name).


    1. At the OES2 server, using the GUI, open the gw801_full_linux_en.tar.gz file with File Roller and extract to the /media/nss/GW directory. (You can really put the software anywhere you want it to be).


    1. Rename the directory it creates to: gw80sp1


    1. Make sure that the GW volume is mounted with the LOOKUP NameSpace of Unix


    1. Open a terminal and type: cd /media/nss/GW/gw80sp1


    1. Then type: ./install



      Click OK



Click Install Products



Click GroupWise Agents




Click Install Agents



Click OK

Click the back button (we will configure later)


Then click the Exit button

In the same terminal window, cd into the /admin directory



You'll see 4 RPM files there. (The versions may be different if you are using 8.0.1 HP1 codebase).

We need to install two of them.

First, install the dbcopy by typing:

rpm –Uvh novell-groupwise-dbcopy-8.0.1-88138.i586.rpm



We'll install the gwcheck later.

Type: mkdir /mnt/gw1

Standalone Server – First Copy with dbcopy

Make sure to do this while you're doing the initial data transfer. You can safely do this during the day while the system is up and running

Now type:

ncpmount –S server –A IP –U userid –P password /mnt/gw1

Where server = name of source netware server

Where IP = IP of the source NetWare server

Where userid = your userid in FQDN format like:

Where password = your password


ncpmount –S nwserver-1 –A –U –P password /mnt/gw1

Now type:

cd /opt/novell/groupwise/agents/bin

Now type:

./dbcopy –m –p –f /mnt/gw1/GW/podirectory /media/nss/GW/podirectory

Where podirectory is the name of the post office directory.


./dbcopy –m –p –f /mnt/gw1/GW/po2 /media/nss/GW/po2

There's space in front of the /mnt and /media words.

Don't forget the –m –p –f switches or bad things will happen and you'll waste a lot of time.

Standalone Server – Final Copy with dbcopy

Make sure you do this while you're doing the final data copy with the MigGUI. Make sure to do this BEFORE the ID TRANSFER, but AFTER the "shutdown time" (ie, you want to do this final copy after you shutdown the groupwise agents on the final day).

On the day of the final Data Transfer:

    1. Shutdown the MTA and POA on the source NetWare server. This will prevent any changes to the data while we copy the databases over one final time


    1. At the OES2 server, BEFORE the ID Transfer, open a terminal and cd into the /opt/novell/groupwise/agents/bin directory so that you can run the dbopy a final time

We're going to do two passes with dbcopy. A final one for the Domain (we did not do an initial pass before), and a second one for the final pass of the PO.

Domain first:

(this also assumes that you have an ncpmount to the Source NetWare server)

./dbcopy –m –d /mnt/gw1/GW/domain /media/nss/GW/domain

For example:

./dbcopy –m –d /mnt/gw1/GW/domain1 /media/nss/GW/domain1

The copy should go very quickly as we don't have hardly anything in our domain directories.

Post Office:

./dbcopy –m –p –s /mnt/gw1/GW/po2 /media/nss/GW/po2

That's it. You should be all done with the Data Transfer.

Standalone Server – GW Agent Configuration for MTA/POA

Now that you have your data, we need to verify a few things. You can do this before the ID Transfer.

At a terminal

cd /media/nss/GW/gw80sp1

Then type:




Click OK



Click Install Products.



Click GroupWise Agents



Click Configure Agents



Click Next



Accept the terms and click Next



Click Add



Keep everything lower case. The Exception is that the volume name CAN be upper case (and it will always be upper case). Use the browse button to avoid typos.


Click OK

Do this for each agent that's on the server (in the case of TEST01, I have one domain and two PO to configure)



Click OK



Click OK



Now click Next



Make sure to have the "launch agents on system startup" checked (it is by default) and then click Exit. This actually creates the necessary startup files for Linux to start GroupWise as a daemon.

You may need to edit the startup files for the MTA for any custom switches/settings you had on NetWare. In our case, we need to edit the startup files for the MTA to increase the # of tcpinbound connections.

cd /opt/novell/groupwise/agents/share


You'll see the .mta and .poa startup files

Edit the .mta file (you can use vi or gedit)

Make sure you have the line:

--tcpinbound 80

in the file. Then save it.



cd to the:

/opt/novell/groupwise/agents/bin directory



Use the following syntax:

./gwpoa -show -home /path -noconfig

That's TWO dashes in front of show, home, and noconfig

For this example:

./gwpoa -show -home /media/nss/GW/training/testpo –noconfig



If things are okay, you should see this:



Do not load more than one agent at a time in this state (we loaded it with NO configuration).

This is ONLY to verify functionality at this point. We still have more work to do.

Exit the groupwise client and then exit the PO by clicking File -> Exit

Very that the MTA loads by using:

./gwmta -show -home /path


Where /path = the path of the domain (ie: /media/nss/GW/traindom)



File -> Exit

Standalone Server – ConsoleOne Settings AFTER ID Transfer

Now we have to use ConsoleOne to adjust everything (the paths and things)

This next part you have to do AFTER the ID Transfer.

Fire up ConsoleOne (I'm assuming Windows workstation here, vs. on the Linux server itself) from the laptop:

Right-click the domain object of the server you migrated and select Properties



Use the browse button to select the path so that it shows lower case. Technically this part here is just used by ConsoleOne.

Do the same for the Post Office (NOT the POA):



Again, browse the path.

More importantly is on the MTA and POA objects.

Click the View in ConsoleOne to look at MTA and find the MTA for the domain you migrated and click properties for it.



For the platform select Linux

Click GroupWise -> Log Settings



Change the path to be relative and with the slashes being the other direction. For example, the above setting would be:


Do the same for the Message Logging section underneath GroupWise tab.

For the POA, make sure you select the PO first in ConsoleOne (the one that you migrated) and THEN access the POA (if you don't, you won't be able to change the platform):



Again, change to Linux.


Then under GroupWise tab, change the Log Settings:



After you change these settings, we'll load the agents once more.

From a terminal type:

cd /opt/novell/groupwise/agents/bin

then type:

./gwmta -show @traindom.mta

Make sure it launches, wait a few minute and make sure it has domains that are open. You can keep it up and running for the time being.

Functional MTA screen:




If all goes well, then you will need to rebuild the Post Office via ConsoleOne for the database to take the new changes you made in page 26.


Using ConsoleOne, right-click the Domain you migrated and select: Connect

I will use the TEST site migration as an example:



Note I have a little "connector" icon next to REG40



Now, right-click the PO object and select GroupWise Utilities -> System Maintenance




Select Rebuild Database and click Run



Normally to ensure that things are rebuilt, I will rebuild to a temp directory like: c:\temp

Then click OK



If you're doing this locally it should be quick. About 2 minutes. If not, it can take a while.

There's about 11,000 records or so. (obviously this depends upon your system. I would not recommend doing this across a WAN link as it will take forever in a large system).

When it's done:



Click OK.

Then click Close.

At this point, I map a drive to the OES2 server's GW volume.

RENAME the wphost.db file in the post office directory (again, example of TEST):



Rename it to .old

Then CUT and PASTE the one from your c:\temp directory to that directory on the OES2 server.

Once you have rebuilt the post office databases, you can now try to load them.

Open yet another Terminal and cd into the /opt/novell/groupwise/agents/bin directory and type:

./gwpoa –show @testpo.poa

Wait for it to load. If all is well it will stay loaded. Verify connectivity with a client PC.

Functional POA screen:



(Ignore the fact that it shows GroupWise 7.0.3 That's just an admin field we forgot to change).


Now exit all the agents.

Lastly, there's a bug and so I suggest ALWAYS doing this:

Open a terminal and type:

chkconfig grpwise off

chkconfig grpwise on

Lastly, unload (File -> Exit) both the MTA and POA.

Once they're unloaded type this from a terminal to verify they load once more:

rcgrpwise start

You will NOT see an agent window. To verify they are running:

rcgrpwise status



You want to see green items saying running (of if not using Putty you want to see the word: running)

Then type:

rcgrpwise stop

Edit the post office startup file (ie: po1.poa) Go to the end of the file and add a line that says simply:


That's a "dash" "dash" nodca

(this turns off the document conversion agent).

Reboot the server (you can do this when you do the final reboot to verify DHCP and iPrint and all that) and you should be able to connect to groupwise.

Biggest change will be that you CANNOT have the agents auto-start AND get a GUI screen for the agents like what is shown above. You will have to use the GroupWise HTTP interface if you wish to look at the agent status.

Standalone Server – Final Items

    • Edit the setup.cfg file in the new SDD that you created and turn off the auto-client updating


    • Adjust the SDD directory if necessary in ConsoleOne so that the POA on Linux points to the appropriate SDD directory to use.


    • Adjust NDS/eDir sync for the MTA

To adjust the NDS Synchronization, do this:

Launch ConsoleOne -> GroupWise System Operations -> eDir User Synchronization




Find the Domain that you just migrated and click Configure Agents



Now, scroll through the list to find the MTA of the domain you just migrated and click Set Up eDirectory Access.



In our case, we have two LDAP servers already defined in GroupWise.
Click the Set Preferred button so that LDAP1 is the "preferred" server. (Change this for your own environment).

Click the browse icon button for the LDAP user name. This is the userid that you want the MTA to login to eDirectory (via LDAP) to do the sync. I would suggest creating a dedicated LDAP account for this purpose for auditing and security reasons (don't choose the admin user).

It will change this into an LDAP format with commas automatically.

Then click the Set Password button (this does not actually CHANGE the password, it's just so you can enter what the password CURRENTLY is).



Click Set Password

For the LDAP Group browse button, you will choose the appropriate eDirectory LDAP GroupWise object that belongs to the LDAP server(s) you have already defined in GroupWise.

Click OK

Now click OK again.

Click OK again (it will keep taking you "up" one level).

Click OK again.


How To-Best Practice
Comment List
    Good work. After final dbcopy, to clean up and have a perfect mirror, I ran a rsync between the old and new PO's. Ours was a linux to linux migration, so lower-case was not an issue.

    First of all I'm assuming the procedure still applies on OES 11.

    But my question there a specific order to how GroupWise should be migrated? For instance domain before post offices or vice versa.

    Our GroupWise system consists of one domain with four post offices. In our HQ we host the domain and post office for the HQ one server, then our three other offices just host a post office. Since we are a small team we can't do all in one weekend, so for the purpose of scheduling I would really like to have this information.

    We only tried it once and it didn't seem to work well. Granted, this was a LONG time ago, but I vaguely recall it had some problem with the date/timestamps and either copied things it shouldn't have or didn't copy things it should have (either way, not good).

    We ended up having to use Beyond Compare to fix things and that's where we found it wasn't quite accurate.

    dbcopy seems to just be better overall for GW (plus then if there's a problem you can always work with the GW team with their own tool vs. getting finger pointing between the OES team and the GW team about whose tool messed up).

    Have you ever used the MigGUI for the GW copy portion, and just run sync?