Recently I ran into a problem attempting to virtualize a NetWare 6 server which had a 'perfect storm' of storage issues. The server was configured with a combination of legacy and NSS volumes, and these had been extended multiple times across two disk arrays. This server had originally been installed as NetWare 4.x and had been upgraded many times over the years through NetWare 5x up to NetWare 6 where it was abandoned and left to die. FrankenServers left to die often have a way of suddenly hosting something important which was the case with this system, and as it was sitting on very old hardware it was necessary to P2V it.
I have previously had great success in virtualizing NetWare servers using Ghost, however this server was a different monster and every attempt over the course of several weekends was a failure. The result of my long battle with this machine was triumph however, so I invite you to read on for the whole story.
Imaging this server using Ghost at the 'disk' or 'partition' level and either to a Ghost server or to USB-attached storage, the resulting system had both a corrupted partition table and Master Boot Record. Having a fair bit of experience with these things I attempted to use Linux fdisk from a Debian LiveCD to repair the problem. This required manually forcing the correct partition types (in this case '06 DOS 16-bit FAT', '65 Novell Netware', and '69 Novell Storage Services') in the partition table, as well as rebuilding the Master Boot Record using an MS-DOS floppy boot image and the old FDISK /MBR trick. This effort was all to no avail, and was producing no small amount of heartburn. Although after performing these repairs I was able to make the server boot to DOS, and into the first stages of NetWare, the SYS volume was corrupted and unfixable using NSS tools such as nss /poolrebuild and the other repair procedures documented in the Novell Knowledgebase. NSSMU was able to see the SYS Pool and it's volume on the virtual disk, however none of the other NSS volumes in the partition table (now visible with linux fdisk, and the correct type) were visible to NSSMU.
After numerous attempts had failed using different methods with Ghost I decided to try some other partition repair and recovery tools from some WinPE utilities discs (shout out to DigiWiz and Falcon4 yo!), and also tried using Acronis True Image instead of Ghost but experienced pretty much the exact same results with all. Having had success in the past with dd, I booted the server with
a Debian LiveCD and tried imaging the server to a physical USB drive, capturing the devices and each partition to an image file, then 'pasting' them into a newly built virtual machine, also booted with a Debian LiveCD and also using dd. This method failed with the same results, although this time the DOS partition and MBR were intact and did not need repair or rebuilding. Despite that it was a long shot I decided to also try
dd+netcat to do an over the wire image directly to the virtual machine, this was extremely fast but the result was unsuprisingly the same as using dd to the USB disk. It was fun nonetheless and something to definitely keep in mind as an option for other migrations.
Good friends on Efnet #novell including KKBaSS (the owner of abeNd.org), Fingers, and the long-time veteran Genesys mentioned to me that they had experienced great success using Portlock Storage Manager to image NetWare servers. PSM was also mentioned in the comments of the aforementioned NetWare Virtualization article. It is a product that I had always intended to explore and had shamefully never gotten to even after almost 20 years of working with NetWare.
We ordered a copy of Portlock directly from their site and immediately received the license and some instructions via EMail. The license management of this product is quite irritating, and the installation instructions slightly lacking so the initial experience with Portlock was not a positive one. The silver lining however is that Portlock Storage Manger is an astonishingly powerful tool. I believe that if I had kept the virtual machines from previous imaging attempts of this FrankenServer, Portlock probably could have fixed them in short order. It features a plehtora of partition, pool, MBR, and volume repair tools as well as an array of backup/restore and imaging options. Unfortunately I had deleted the failed VMs so I had to start from scratch. Booting the source server with the Portlock Storage Manager Boot CD, I attempted a TCP/IP based imaging operation which works in client/server mode over the network. I booted the destination VM with the same CD image, but it froze during boot-up. This is a known
problem, the VM was built with OS type NetWare but Portlock is based on Win-PE so simply switch the OS type to Windows XP and boot Portlock - then switch it back to NetWare at the end of the imaging operation before booting the server for the first time. One note here, if you build the VM as a Windows XP from the start, it will choose the wrong SCSI controller by default (BusLogic) - be sure to switch it to the LSI so that it will work with NetWare.
Another interesting issue cropped up when PSM was prompting for the new partition size on the destination server. If for example it indicated that the 'minimum size' was 4,176 and I entered this value, the operation would fail with no explanation as to why. I fiddled around with it and discovered that if I incremented this number by one, it would work. Strangely if I entered 4,177 it would appear as 4,196 on the next screen, but worked anyway. Once past these idiosyncrasies however, Portlock performed like a champ! It is very fast to image over the wire and the resulting VM server works great!
Once the NetWare server has been imaged into the virtual machine, it will only boot to a ':' NetWare Console prompt and will not be able to see the SYS: volume (unless your physical server happened to use an actual LSI MPT Array controller). Chances are, however, that the physical server uses different array and network controllers than the virtual devices which VMware utilizes (LSIMPTNW and CE1000).
To resolve the virtual driver problems (for NW6+) you will need to get into DOS (using either ESC to cancel OS Boot, or DOWN once booted to the : prompt) at which point simply copy C:NWSERVERDRIVERSLSI*.* and C:NWSERVERDRIVERSSCSIHD.CDM to C:NWSERVER, then edit the C:NWSERVERSTARTUP.NCF file and remark or delete all the entries for the physical servers hardware drivers. Add the following two lines to STARTUP.NCF:
LOAD LSIMPTNW.HAM slot=2
The server should now boot and mount the SYS: volume and all other volumes in the image. The network drivers also need to be fixed, this is done by loading INETCFG from the NetWare System Console. Inspect the existing Boards, Protocols, and Bindings - record them for reference and then disable the Bindings which are linked to the network cards from your physical server.
In the Boards menu, add board(s) of the type Intel CE1000 or AMDCNE
in the Bindings menu re-create the bindings with the correct TCP/IP addresses and netmasks as well as (if applicable) IPX networks.
Typically a 'reinitialize system' is the only thing required for such changes to take effect with NetWare, however because the server could not access any network interfaces during bootup, many modules dependant upon functional networking will have failed to load, so a server reboot is required here.
Reboot the server, and if you made the correct changes it should startup and be working perfectly.
Don't forget to install VMware Tools by starting the tools install (VM -> Guest -> Install/Upgrade VMware Tools), NetWare will automount the VMWTools image.
Note that IDEATA.HAM, IDECD.CDM, and CD9660.NSS must be loaded for the auto-mounter to function.
Simply run VMWTOOLS:SETUP.NCF from the NetWare console and Tools will auto-install. This takes only a few seconds and returns no status to the System Console, however you will note that there is now a VMWare Tools console screen running on the server.
VM -> Guest -> End Tools Install to unmount this volume once the install is completed.
Storage problems with imaging NetWare servers are elimiated by Portlock Storage Manager, so if you are still supporting NetWare servers I strongly recommend looking into PSM. Even if you have no plans to virtualize or image your servers in the near future, it is a very reasonably priced product and should be considered an essential tool for NetWare management just for the repair and recovery functions alone.