A preview of what is to come!
More details later… and apologies, I should have done this years ago.
A preview of what is to come!
More details later… and apologies, I should have done this years ago.
As much as the whole ‘uptime’ wars passed with the ever increasing need for patching, this is pretty amazing.
Over on arstechnica a Novell Netware 3.12 server by the name Intel had to be finally shut down after 16 and a half years. Apparently the bearings in the two SCSI disks had gotten so loud it sounded like a car dragging it’s muffler.
It’s still pretty impressive, and in some ways that was one thing Novell got right with Netware was that it was unstoppable. Of course their big ‘goof’ was in the application space. While there was a version of Oracle for Novell Netware, it was a major pain to deal with, and the GUI simplicity of Windows NT pretty much put an end to Netware.
But in some shops they don’t fix it until it’s broke. Even if it takes a decade and a half.
So I received an interesting tip, talking about the latest Qemu version, when it was mentioned that it isn’t the hardware that is at fault with Netware not running, but rather something in the emulated CPU.
Because, get this, Novell Netware runs in KVM.
I was taken back, all this time I thought it was something in the -M isapc definition that broke, but it’s the CPU! I even rebuilt Qemu with the TCG interpreter, and it too breaks. I even went one more crazy step, and installed with the ancient isadisk controller, and NE2000 on the ISA bus, and it works!
So for now my old copy of Netware I bought a million years ago lives in the cloud!
I managed to come across this link, which details some installation experience with Netware 3.12 on VMWare.
What is more interesting is that someone mentions that it’ll run on VirtualBOX!
So downloading their toolset and whatnot I proceed to install on VirtualBOX, and get a booting Netware 3.12 system using the ISADISK driver… I couldn’t find the IDEHAM thing but you get the idea, it actually WORKS!
I’ve got to admit I’m really surprised! So for the heck of it I try the same disk image on Qemu and get…
The usual panic/crash after mounting a disk volume. Its a damned shame, but hell at least there is something out there that can run Novell Netware!!!
Years ago Netware sold these 4.1 dev kits on the cheap, and I picked one up in College. Back then the selling point was that along with Watcom you could actually run Netware 4.1 along with OS/2, and do all the dev loading on the same machine!
What a time saver, not to mention you could simulate a LAN on the same PC as each MS-DOS VM could have it’s own virtual NIC and each VM could login independently.
Anyways, I thought I’d go ahead and give this thing a shot, since I haven’t run this in a while, so I installed OS/2 2.11 on Qemu 0.14.0, and … got this.
PNW0162: An internal error has occurred. The program cannot initialize the GDT information.
Which of course is the Global Descriptor Table, and I don’t know why it can’t play with it… Qemu limitation? OS/2?
Anyways afterwards, I get this.
And you thought Windows NT blue screen of death was impossible to read…
Ok I wanted to do this eventually but now I’ve finally done it. I have constructed something a little complex but it works surprisingly well.
Let me draw a picture so it’ll be a little easier to follow:
All of the machines in clouds are virtual…
Ok I’m going to assume you can install & configure OpenVPN on your own. I did a really simple install on Proxmox VE, just be sure to use the e1000 network adapters. All the others gave me tones of errors with any sizable traffic. Also I should point out that I’m using OpenBSD 4.3 which is the latest as of today.
server-bridge 192.168.6.33 255.255.255.224 192.168.6.50 192.168.6.62
push “route 192.168.6.0 255.255.255.0”
push “dhcp-option DNS 192.168.6.34”
keepalive 10 120
Again I just followed the example from the OpenVPN site to set this up. What makes this different though is the fact that I’m using this in a bridge mode. As you can see I have told OpenVPN that it is to use the tun0 interface as a ‘tap’ driver.
My hostname.tun0 is this:
Likewise the bridgename.bridge0 is:
And finally for this example my bridgename.em1 is:
inet 192.168.6.33 255.255.255.224 NONE
So using this setup I have a ‘private’ 192.168.6.32/27 network in which I’ve got a few virtual machines running and space for my laptop to VPN into. Now one of the virtual servers on my Proxmox server is Windows NT 4.0 Terminal Server… Yeah I know I got it cheap on ebay, and I kind of like it. Anyways I’m running Qemu on it, which is running Netware 3.12. I installed the libpcap then I had to find out what my Ethernet devices are called. I used wireshark (it was ethereal) and it’s a cool program to have around. The last version to run under Windows NT 4.0 was 0.99.4 so that’s the one I used. Once I have done this I found my device and was able to setup a string for Qemu (which was \Device\NPF_RTL80291)
Here is what I’m using:
Qemu –had netware.disk –m 16 –M isapc –L pc-bios –net nic –net pcap,devicename=”\Device\NPF_RTL80291”
This sets up an ISA computer with 16 megaybtes of ram and a single ISA nic that will utilize libpcap to send out frames on the rtl80291 that’s being emulated to my NT terminal server by proxmox.
On the ‘client’ side of things, I’m running the 64 bit version of Vista. So I’ve installed the OpenVPN that not only has 64 bit device drivers, but has a nice little GUI to connect & disconnect from the networks. Here is the OpenVPN config that is on my laptop.
remote 192.168.1.75 1194
Ok, so far so good. Now I do have Virtual PC 2007 on my laptop, and I have made sure that the “Virtual Machine Network Services” were bound to the “TAP-Win32 Adapter V9” interface.
Then you should be able to ‘bind’ to the server & login!
The ‘cool’ thing about this setup is that it will work over things like wifi, and easily allow you to add clients near & far. Oh and the best part for the wifi crowd is that it will use REAL encryption since WEP/WPA have all been shown to be useless. Oh yes, and it should allow you to host your DOOM, Quake 1, Rise of the Triad, Warcraft II, and Descent games…. Along with people playing at home! Using this you too can build your own IPX/Internet network!
I do hope this clears some of the uses & versility of Virtual servers, Qemu & Virtual Networking.
Ok I’m getting more requests on this which means I’ll finally do it.. I didn’t mean to put it off THIS long, honestly!
I have issues with Qemu 0.91 under Vista so this will all be with Qemu 0.90.
I have built a version with the libpcap compiled in, and placed a copy of the winpcap that I’m using in with this zip.
You can download the libpcap enable Qemu for Win32 right HERE.
I’m using the enclosed 1.cmd to run the thing, and I’ll go over more of it tomorrow.
Ok, I thought I’d kick this thing off, by installing the most popular NOS (network operating systems) on Qemu.
First I tried the 2.x stuff, and it just crashes on the bootup of the kernel. Which is frustrating, as it required me to shuffle floppies like there was simply no tomorrow. I also have a copy of 4.1, which I’ll do at some other time.
Let’s get to the list of our requirements:
Here is what my directory looks like before I get started.
05/31/1994 06:22a 1,474,560 dos622_1.img
05/31/1994 06:22a 1,474,560 dos622_2.img
05/31/1994 06:22a 1,474,560 dos622_3.img
05/13/2007 01:16p 1,474,560 idecd.vfd
01/26/2004 04:25p 79,321,088 netware312.iso
02/19/2007 12:02a 6,248,207 qemu-0.9.0-windows.zip
05/13/2007 10:42a 1,474,560 SYSTEM_1.IMG
03/08/2007 05:22p 102,400 unzip.exe
Ok, let’s get started! First we are going to unzip the qemu distribution. I’m using Windows 2000 for my host, so I’ve got the commandline unzip from the execellent distribution here: http://unxutils.sourceforge.net/ Ironically it’s zipped, so I’ll provide a copy of unzip at my site here: http://www.vaxenrule.com/Shared%20Documents/unzip.exe
Next cd into the qemu-0.9.0-windows directory. First we need to make two hard disk images. For whatever reason Netware doesn’t detect the MS-DOS disk partition geometry correctly and will destroy your boot hard disk. Since we are running under an emulator, virtual hardware is cheap, so adding a second disk is really no big deal. The MS=DOS hard disk is only to boot up, so it won’t be big at all. I’m going to create a 32 megabyte boot disk, and a 1 gigabyte Netware disk. You can always add more disks, or go with larger disk. Just be forwarned that my Netware didn’t like the MS-DOS disk’s partitioning. This may be a fault of ISADISK, but then it worked fine on its own disk.
qemu-img create -f qcow netware-boot.disk 32M
qemu-img create -f qcow netware-data.disk 1G
Ok now with the disks created it’s time to install MS-DOS. I’m going to assume that you have *some* experence with Qemu, and MS-DOS.
qemu -L . -hda netware-boot.disk -hdb netware-data.disk -M isapc -m 16 -net nic -net none -fda ..\dos622_1.img -boot a
With any luck you’ll be greeted with this image:
We are going to just accept the defaults (hit enter a few times) which will partition the first disk, and ready it for the MS-DOS install. After enough enters, qemu will reboot, and MS-DOS will format the first disk, and then prompt for disk two. We will want to change disks. This part of qemu can be a little scarry for the uninitated, however its quite simple. Click on the qemu window, then hit CTRL+ALT+2. This will bring you to a window like this:
I typed in “info block” to show what disk images were mounted where. Then to change floppy disk images, simply typing in “change fda ..\dos622_2.img”. Pressing CTRL+ALT+1 changes you back to the qemu display, where you can hit Enter to tell the MS-DOS installation program that you have inserted the second disk image. You will need to repeat this for the third disk.
Once MS-DOS is installed it will prompt you to remove disks and press ENTER. You can simply press enter, and qemu will notify you that your disk is not bootable. Close qemu.
Now we are going to boot qemu from the hard disk, and with the idecd.vfd disk image containing IDECD.SYS.
I’m going to start Qemu as follows:
qemu -L . -hda netware-boot.disk -hdb netware-data.disk -M isapc -m 16 -net nic -net none -fda ..\idecd.vfd
Copy the IDECD.SYS device driver from the floppy to the C:\DOS directory (copy a:\idecd.sys c:\dos). Then you will need to edit your config.sys & autoexec.bat to recognize the cdrom.
Append the following line to config.sys using edit
And append the following line to your autoexec.bat
Information on edit can be found on Wikipeida here. Although if you don’t remember MS-DOS edit, you are going to be in a world of pain when we start Netware…
Ok with the configuration files edited, we can close Qemu, and now start it again as follows:
qemu -L . -hda netware-boot.disk -hdb netware-data.disk -M isapc -m 16 -net nic -net none -cdrom ..\netware312.iso -fda ..\system_1.img
During the MS-DOS install the netware data disk may have been formatted by DOS. This is no big deal, but just keep an eye where your CD-ROM drive is drive letter wise.
To start the Netware install, we now need to type in the following:
You’ll get some warning about ethernet frame types, which we can ignore for now. Then you’ll be prompted on the install type. We are going to do a new installation, so just hit enter. The MS-DOS partition will be displayed on the primary disk. We can just leave it alone (or we’ll have to start from the beginning!), press enter to retain the current setup.
Next you’ll be prompted for a server name. I’m not going to cover moving data from an existing Netware 3.12 server, so for now I’m just going to call my server “bobo”. I’m going to accpet the preselected internal IPX number. Again if you are migrating you may wish to preserve the exting information. You will next be prompted as to the location of the DOS mode files. Press enter as the defaults should be correct.
You can press F10, to accept the default locale. Next Netware will ask what naming convention you will wish for your server. If you are going to use ‘modern’ clients on your server you will wan’t the Netware format, otherwise, select the MS-DOS format. Next press enter, as we have no special startup flags. You may allow autoexec.bat to be modified to boot netware directly. The Netware console will now boot up to something like this:
Next let’s load the disk driver. Type in:
It will prompt for the port & interrupt, just press enter to accept the defaults. With the disk in place, its time to install the Netware files so that we can then setup the networking. Type in the following:
You will be presented with the menu driven install. You will want to setup the partition on the ‘data’ disk. press enter twice, then select the second disk. You’ll need to delete any existing partition, then select create a Netware partiton. You can use the defaults (the entire disk). Pressing escape will confirm the partition creation. Press escape to get back to the root menu, now we can create some volumes. I want a 200MB SYS volume, and the rest of the disk as DATA. Of course you may have other wishes, but this is my install.
Press insert will allow you to create a new volume. Using 4k blocks, about 50,000 of them will allow for an approximate 200MB volume. Pressing escape & enter will create the volume. Next create the DATA volume with the remainder space.
You’ll need to mount the SYS volume by selecting it, and then going down to status, and selecting “Mount Volume”.
With your system volume mounted, we can now copy the rest of the files. Press escape to get back to the root menu, and then select “system options”. From here choose the fist option to copy the system & public files. Since I’m using a CD-ROM, I’m going to press F6 and change the path to:
Then perss enter. Netware will now start to copy the files. This can take a while. Once the copy is completed, press escape back to the main menu, then exit the installer. I know this seems counter intuitive, but its for a good reason.
Now we will want to load the network card. The default location & type of the network card in Qemu is a NE2000 at 0x300 on interrupt 2/9 (it’s a shared IRQ). Type in the following:
Be sure to select IRQ 2 for the Interrupt Number. Next we will want to select an IPX network number for the card. If you have an existing one, use it, otherwise make one up.
bind ipx ne2000
Then type in the nework name when prompted. I’m using DEADF00D.
Now we can re-load the install program. Go back to System Options, and create the autoexec.ncf file. At the end of this file, you may wish to add “load monitor”. Use the escape & save. Select the default for creating the startup.ncf file. With those two files in place we are now ready!
Exit the install program and then you’ll go back to the server console. Type in down, and the Netware server will shutdown. Then type in exit and you’ll get dumped back to MS-DOS. You can now close Qemu. Now you can re-start Qemu with the following command line:
qemu -L . -hda netware-boot.disk -hdb netware-data.disk -M isapc -m 16 -net nic -net none
Or even save it to a CMD file. You will now have Netware 3.12 installed on a new computer!
I don’t think I need to point out that not only is this exellent for preserving an existing copy of Netware 3.12 (Which was *VERY* expensive in the early 1990’s) But by emulating an older PC we don’t have the same worry when it comes to device drivers. Not to mention the Netware server is now portable to newer computers, by simply copying the data files. I’ll save networking this fileserver for another day.