Creating and Using a Legacy IBM OS/2 Virtual Machine in VirtualBox

As detailed in another post, I was using VirtualBox to run virtual machines (VMs) in Windows 10 Pro x64 1903. I had long held some idle curiosity about what it would be like to see my old OS/2 installation from the 1990s. It was also possible that, on rare occasions, I would appreciate OS/2’s potential backward compatibility with DOS programs from the 1980s.

Eventually I realized that I might be able to resurrect OS/2 in a VM. This post describes the steps I took to achieve that, and the results I obtained. Note: commands are in italics. Where the commands require a DOS-like command line, a convenient way of opening an elevated command window (i.e., having full administrator privileges) was Win-R > cmd > Ctrl-Shift-Enter. (“Win” was short for the Windows key, near the bottom left corner of a typical Windows-compatible keyboard.)

Contents

Finding OS/2
Installing OS/2 in the VM
Tweaking OS/2
OS/2 Software
Retry
Installing Guest Additions
Installing Adobe Acrobat Reader
Conclusion
.

Finding OS/2

A search revealed that a number of sites seemed to be offering OS/2 for download. Apparently IBM wasn’t especially uptight about preventing people from sharing its old operating system (OS). There appeared to be some consensus that the last official version was OS/2 Warp 4.52, which according to Wikipedia was released in 2001, though Serenity Systems reportedly still has major customers around the world using it under the eComStation label. (See also ArcaOS.)

At this point, OS/2 downloads and installation instructions seemed to be available in various forms, including ISOs and zip/rar files holding the contents of the original floppy disks or CDs. WinWorld seemed to indicate that the last good available desktop build was OS/2 4.52.14.086_W4 and, bless their hearts, WinWorld offered that build in the form of a 7z file of about 600MB which, when unzipped, produced separate “boot” and “client” ISOs, along with a text file telling me to take my questions to WinWorld’s abandonware forums, which were apparently thriving at the time (i.e., April 2011), but have sadly become abandonware themselves, the site now being owned by some Chinese lottery company. And yet WinWorldPC.com itself still chugs along.

Note that, in addition to the ISOs just described, there were other installation instructions pertaining to other downloads. For example, a how-to in a Virtualbox.org post (ghr, 2014) used an earlier version of OS2 (i.e., 4.1.22) and provided alternate setup instructions that would not necessarily apply to other versions of OS/2. This was unfortunately not a situation where there were many sophisticated troubleshooting tools to help the user figure out where the problem might be. It was more like, choose a good version, plunge in, and hope it works. The route I took did work for setting up the basic OS/2 VM.

Installing OS/2 in the VM

According to Socket3, OS/2 installation would begin with the boot CD (or, in my case, ISO), and would then proceed to the client CD. (For some purposes, the OS/2 setup guide provided by Blonde Guy might be superior to the ones I used. It did not seem superior for my purposes. See also IBM OS/2 Installation Guide for all Hewlett-Packard NetServers.)

Following Socket3’s instructions, I ran VirtualBox > Ctrl-N (to create a new VM) > use VirtualBox’s Guided Mode > choose the target folder where the VM should be stored. Note that VirtualBox would add the name of the VM (in this case, I chose to call it simply OS2) to the Machine Folder specified. So if I designated a machine folder named D:\OS2, the path to my OS2 VM would be D:\OS2\OS2\OS2.vdi, and the snapshots would be stored in D:\OS2\OS2\Snapshots.

In other settings at that point, I used Type = IBM OS/2, Version = OS/2 Warp 4.5 > give it at least 256MB RAM > accept the default 2GB hard disk drive (HDD) > Create > go with the default VDI type > Fixed size > Create. Note that OS2Museum (Necasek, 2010), discussing various problems with OS/2 installation in a VM, recommended against an HDD larger than 2GB. Later, I would decide that I probably should have gone with more like 500MB or 1GB, because I really didn’t need such a large and rarely used VM taking up space on my drive. But for storage purposes, since the 2GB VM was mostly empty space, I found that a compressed ZIP file containing its files was only 119MB.

In the event of frustrating error messages produced by VirtualBox, as noted in a previous post, possibly the easiest solution was to uninstall and reinstall VirtualBox and start over.

Now that I had an empty VM, I could configure it. I went into VirtualBox Manager (VBM) > select the OS2 VM > Settings. There, drawing on suggestions from Socket3 and BigBeat and on my own surmises, I changed the defaults as follows:

  • General. Advanced tab: enable bidirectional Shared Clipboard and Drag ‘n’ Drop.
  • System. Processor tab: Enable PAE/NX. Acceleration tab: there was an “Invalid settings detected” notice at the bottom of the window, telling me in effect that I had not enabled hardware virtualization in the host system’s BIOS. Virtualization was apparently essential, so I had to pause this process long enough to reboot the computer, hit F2 during bootup, and figure out how to enable hardware virtualization.
  • Display. I increased the default 9MB to 32MB.
  • Storage. Mount the downloaded boot and client ISOs: for each, right-click on Controller: IDE > Add Optical Drive > Choose disk > Add > navigate to and select the OS/2 boot ISO > Open > Choose.
  • Network. Adapter 1 tab: enabled, so as to change to Bridged Adapter (i.e., not NAT) as recommended. But having set that, I disabled it because I wasn’t planning to install antivirus or take it online — not unless it could take me back in time to the Internet circa 1996. Then OK to close Settings.

Once that was done, with the VM selected in VBM, I clicked Start. After a moment, that gave me the Welcome screen. I clicked in the VM, intending to hit the Enter key. In response, VirtualBox produced a notice telling me that, if mouse and keyboard were captured by the VM (if, in other words, the guest (OS/2) OS was able to use them), I could un-capture them by using the host key, which by default (as shown in the VM’s status bar) was right-Ctrl (that is, the Ctrl key located toward the lower right corner of the standard keyboard). I clicked Capture to close that notice, and then Enter, and Enter again, to proceed. That produced a puzzling “Volumes Too Small” notice, indicating that OS/2 couldn’t find a volume of the requisite 450MB for full installation. I hit Enter three more times to continue past that.

That put me into the Logical Volume Management Tool screen in its Logical View. I hit Enter there to open the Options. “Create a new volume” was selected. I hit Enter and chose “Create a volume that can be made bootable” and then selected drive C and hit Enter, then named it PROGRAMS and hit Enter again. That put me in the Physical View. It said, “Choose a disk to be used to create the volume. It showed the 2047MB (i.e., 2GB drive). I hit Enter to close that notice and select that disk. Hitting Enter again then showed me the option to “Allocate from free space.” I hit Enter a few more times, going with the default partition name, and the default size of 2047MB, which would use the entire virtual disk. Back in the Logical View, I hit F3 and then Enter and chose “Save the changes and exit” > Enter. It told me to use Ctrl-Alt-Del to reboot, but Windows 10 intercepted that key combination. So instead, whenever OS/2 told me to use Ctrl-Alt-Del, I went to the VirtualBox menu at the top of the OS/2 VM window and selected > File > Close > Power off the machine > OK.

Then I clicked Start to restart the VM. It took me back through some of the same early steps. At the Installation Volume Selection screen, it said it was prepared to install on Volume C. The first option, “Accept the volume,” was highlighted, so I hit Enter, arrowed down to option 2 (“Perform a quick format”), and Enter again. The next screen defaulted to IBM’s High Performance File System, which it recommended, and Socket3 said HPFS was the only option if I did create a drive larger than 2GB, so I went with HPFS. As I stepped away from the desk for a moment, I saw that it was copying diskettes.

When I returned, I was back at the Welcome screen. It seemed that the process had finished, and that it was trying to reinstall again because the boot ISO was still mounted. So, as before, I used VirtualBox menu > File > Close > Power off. Then I went into VBM > Settings > Storage > right-click on Boot ISO > Remove attachment > OK. Then I started the VM again. That seemed to be the solution: now I was at what Socket3 called the GUI portion of Setup. I thought perhaps I could have removed the Client CD along with the Boot CD, but later I would find that, no, that would be premature.

I proceeded through this GUI portion. My only change on the first screen was, as advised, to click on the button to the left of Multimedia Device Support > choose Sound Blaster 16 PnP > Add > OK. I continued through the next several screens without changing defaults. When I got to the list of features, starting with Assistance Center, I saw that everything except Printer Utilities was checked. Even though I hadn’t (yet) selected a printer, I thought it couldn’t hurt to include those, so I checked that box too. Then another few Next buttons > enter just my name > Next. (Later, as detailed below, I would find that it was important to notice, when I got to the Primary Display Driver Install screen, that the driver being installed by default was the Generic VESA Unaccelerated & VGA GRADDs.) After the screen listing several services to install, Socket3 said I could and/or should make some changes on the Configuration screen:

  • File and Print Sharing Services. I changed the workstation name as desired, and also changed domain name to match the Windows WORKGROUP name, though I wasn’t sure that would make any difference in my case.
  • User ID and Password. I changed the name of the administrator account to ADMIN. I found that it would not accept a blank password.
  • TCP/IP Services. I checked DHCP Server is available on the LAN.
  • Network Adapters and Protocol Services. The Add Adapter dialog opened, probably because there were no adapters already listed. Apparently the version of OS/2 that Socket3 was installing already had TCP/IP and NetBIOS protocols. These, he said, had to be removed first, after which he would hit Add Adapter to open the Add Adapter dialog. In that dialog, I selected AMD PCNet Ethernet Family Adapter > OK. Then Add Protocol > IBM TCP/IP > OK, followed by IBM OS/2 NetBIOS > OK.

When I clicked Install and then OK, I got a screen telling me to Select the source drive and directory. It defaulted to F:\OS2IMAGE. I clicked Install. It said that was not valid. A bit of double-clicking among the other possibilities led to the finding that perhaps what we really wanted was E:\os2image. Possibly the letter change was due to my act of detaching the boot ISO. But then, oops, the mouse froze and then OS/2 crashed. I restarted the VM. I had to repeat the foregoing setup steps. This time, it worked. Installation proceeded and rebooted, and then stopped with an error message:

AMD PCNet Family Ethernet Adapter …

SYS1201: The device driver C:\IBMCOM\MACS\PCNTND.OS2 specified in the DEVICE statement on line 137 of the CONFIG.SYS file was not installed. Line 137 is ignored.

Press Enter to continue…

I pressed Enter to continue. The machine sat and thought about that for a while. I had noticed, after my previous abortive efforts, that the installer did seem to be remembering some of its previous steps. So perhaps I could power down the VM, which appeared to be stalled, and try again, and maybe next time it would get over that hump. But, spoke too soon, after a while it did continue the installation. It ran for several minutes and then rebooted. But, to my dismay, once again it popped up the error message just quoted. A search produced almost nothing on that error message. I hit Enter again and, after another prodigious pause, it proceeded once more. It seemed I might want to edit the CONFIG.SYS file to remove that line: as I was about to see, it seemed to produce a delay of maybe 30-45 seconds every time the VM rebooted.

Now I got an Install Additional Options dialog. These options included Java 1.3, Java 1.1.8 Toolkit, OS/2 Toolkit, and Macromedia Flash for OS/2. Socket3 said these were totally optional. He went with only the OS/2 Toolkit. I was inclined to agree, because I had the impression that Java and Flash had potential security problems. (For purposes of running Adobe Acrobat Reader (below), I would later decide that I should have installed Java.) The attempt to install OS/2 Toolkit stalled at a dialog telling me to insert the OS/2 Warp Installation CD in the CD-ROM drive. In VBM > Settings > Storage, I was not able to restore the boot ISO, which was what I assumed they meant (the client ISO was still attached), so rather than power down and spend additional time getting back to this point, I decided to cancel out on that OS/2 Toolkit option. At this point, from my own observation and from what my sources were telling me, my OS/2 installation was finished.

Tweaking OS/2

Now there were some suggestions for improvement. The first thing was to delete that unwanted line from CONFIG.SYS. Like Windows, OS/2 had a Start button at its bottom left corner. I went to that > OS/2 System > Command Prompts > OS/2 window > e config.sys > Ctrl-F > PCNTND.OS2. That found the line. It read, in full, DEVICE=C:\IBMCOM\MACS\PCNTND.OS2. I deleted it. (Later, I would find that I should instead have put REM in front of it.) I went to File > Save As > config.sys > Save. Then I rebooted. I didn’t get the error message, but I did get a similar delay during bootup, and then OS/2 presented me with a command window that said, “The REQUESTER service is starting” and eventually ended with an error: “NET3087: The requester detected a problem with the cable connection.” After a minute or two, the window closed. In my later retry (below), I decided that perhaps that error message actually preceded my CONFIG.SYS edit. This behavior persisted in another reboot. I left it like that for the time being, because this way at least the bootup would finish without intervention. During one of these restarts, I checked VBM > Settings > Storage to remove the client and boot ISOs and to confirm that VBoxGuestAdditions.iso was now installed.

There were other possible tweaks. I didn’t work through the Elstel list of suggestions, as it appeared their installation began with an earlier version of OS/2. Likewise, many of the comments following the OS/2 Museum post seemed to pertain to troubleshooting earlier versions. Instead, sticking with Socket3, I clicked on the red toolbox icon at the right-center of the OS/2 taskbar (i.e., running along the bottom of the OS/2 screen). The tooltip for this icon was System Setup. From the resulting menu, I chose System. That opened a System Properties dialog. On the Screen tab, Socket3 said I could choose resolutions of 1280 x 1024 or 1600 x 1280. Unfortunately, I didn’t see options any higher than 1024 x 768. I suspected the reason was that I needed to go to the VirtualBox menu at the top of the screen > Devices > Insert Guest Additions CD image. This was approximately when I noticed that the Screen tab was telling me that I should “Select monitor from page 2 to enable higher resolutions or refresh rates.” I got to page 2 by clicking the + symbol in the upper right corner. Ah, yes: “No monitor is selected.” This was what Socket3 was talking about: I scrolled down and selected the monitor named LCD Panel 1600×1280. Back on page 1, that enabled me to choose 1280 x 1024 x 16777216. I chose that and rebooted the VM. It worked now, but it was too big for my desktop computer screen: I had a vertical scrollbar external to the VM window. Eventually, I found that the LCD Panel 1024×768 monitor with matching resolution was a decent fit. It started with internal scrollbars, but those went away when I scrolled them back and forth. As another possibility, now that I had installed the Guest Additions in VirtualBox, BigBeat said I could run this command in Windows from the C:\Program Files\Oracle\VirtualBox folder (substituting the actual name of the VM in place of the OS2 value shown here):

Vboxmanage setextradata "OS2" "CustomVideoMode1" "1366x768x16"

Unfortunately, that didn’t seem to work for me. That is, I didn’t see a CustomVideoMode addition to the list. Maybe I was looking in the wrong place, or maybe that command only worked for an earlier version of OS/2. The 1024 x 768 setting may have been as good as it would get. According to the VirtualBox manual, “Seamless windows and automatic guest resizing will probably never be implemented due to inherent limitations of the OS/2 graphics system.” (While that was doubtless true, later I would see that I actually didn’t have the Guest Additions installed. See the Retry section, below.)

OS/2 Software

For software, BigBeat recommended adding InfoZip (his link; Wikipedia; current webpage) and DSKXTRCT (his link; related webpage; Google) utilities. Socket3 mentioned several software packages. These included Lotus SmartSuite 1.7, which he said was included in the OS/2 ISO (see also Wikipedia; ISO; zip 1 or 2; 7z), consisting of a suite of Lotus products including the 1-2-3 spreadsheet.

At the moment, I was interested in just two pieces of OS/2 software. First, as I recalled, OS/2 had a chess game I had enjoyed. No doubt it was inferior to today’s offerings, but I thought it might be a bit nostalgic to see it again. I went to the OS/2 Start menu > Programs > Games and, sure enough, there was OS/2 Chess. The graphics weren’t great — maybe they would have improved if I had tweaked the machine more — but it worked. I played against the machine on its Advanced setting. I actually held out for a while, until we only had some pawns and each side had a queen and a rook. The machine was ahead: it actually had two rooks. Still, I felt this was not bad, for my first chess game in maybe 30 years. The machine took a while to choose each of its moves, especially at the start.

Otherwise, my only near-term OS/2 software need was for a version of Adobe Reader. I thought I might be able to use it to test the actual portability of some modern-day PDF files. Socket3 said Adobe Acrobat Reader 3.0 was the last version released for OS/2. Wikipedia‘s list of Reader releases didn’t mention OS/2 specifically. A search led to multiple sources (e.g., WinWorld, OldVersion, OldApps). I decided to try the Internet Archive ISO. With that downloaded, I powered down the VM and went into VBM > Settings > Storage > Controller: IDE > right-click > Add Optical Drive > Choose Disk > Add > find the Adobe ISO > Choose > OK. Then start the VM > wait for it to settle down > Start menu > OS/2 System > Drives > Drive D > ACROREAD > WIN > READER > 16BIT > SETUP.EXE. (The 32-bit version gave me an error, to the effect that it required a different version of Windows.) It looked like the installation completed, but I couldn’t find a Start menu icon to run it. I tried doing so from the command line, but running C:\Acrobat3\Read16\Acrord16.exe produced an error: “Acrobat does not run in Windows Standard mode. The application will now quit.” The reference to “standard mode” seemed to intend a contrast against real mode and 386 enhanced mode. A document that purported to be the “Read Me Notes” for Adobe Reader 3.0 (1996) said, “Acrobat Reader 3.0 does not work in standard mode; you must be running Windows 3.1 in enhanced mode.” Another such document said that, for Acrobat 3.01 (which may or may not have also applied to an Adobe Reader product of that time), “[O]ur limited experience with using Acrobat Exchange or Reader for Windows under OS/2 suggests that … system lockups … may be related to the video driver.”

Such problems suggested that I might not be able to use Acrobat Reader 3.0 as intended, to check the portability of PDFs produced in later years. Moreover, OS2Voice (2001) said that Adobe’s Acrobat PDF viewer at that point required Java 1.1.6 or later, suggesting that I may have erred in not including Java in my OS/2 installation (above). OS2Voice also said that this Adobe PDF viewer “often stopped running for no apparent reason” and had other problems as well. There may have been fixes for all the above, but my search did not lead directly to a source that would guide me through them, and I was not inclined to invest the time to work them out.

Retry

It seemed that, if I tried again, I might be able to do a better job of creating a useful OS/2 VM. This section provides, in abbreviated form, an account of what happened when I did that.

When starting over to create a new OS/2 VM, I mostly followed the instructions set forth in the preceding sections. The main changes were as follows:

  • Create the empty VM with the settings listed above, but only 1GB.
  • I didn’t bother installing the printer utilities.
  • When I got to the screen offering to install the Java, toolkit, and Flash options, I powered down the VM, went into Settings > Storage, reconnected the boot ISO, restarted the VM, and pressed F12 when the VirtualBox splash screen said so. That gave me, in effect, a choice between “continue booting” and other options, including CD-ROM — which, I assumed, meant the boot ISO. I chose option (b), “continue booting.” Wrong! That put me back at square one, running the boot ISO. I powered down and tried again. This time, after F12, I tried option 1, Primary IDE Master. That worked. We got back to the selection screen, and I selected Java and Macromedia Flash, but not the toolkits or the IBM browser.
  • I only tried the 1024 x 768 32-bit video adapter setting.

At that point, I closed the VM and took a snapshot in VBM. Then I commenced software installation. The focus was a bit different, this time around, and that led into new territory.

Installing Guest Additions

I was about to learn that, in my first OS/2 VM (above), I apparently had not succeeded in installing the VirtualBox Guest Additions. I discovered this when I tried to create a Shared Folder, so as to copy a file from the host computer into the VM. (I needed the file to install software, as described below.) The VirtualBox manual said, “Due to restrictions of OS/2 itself, this variant of the Guest Additions has a limited feature set.” But anything was better than nothing.

To set up Shared Folders, I went to VBM > Settings > Shared Folders > right-click on the open space or click on the blue folder icon with the plus sign at the right margin of the dialog > Add Shared Folder. The folder to be shared was a temporary folder containing the .exe file I intended to bring in, with a short path and filename containing no spaces (in case that was an issue). The specific path was D:\TEMP\Runtime.exe. I named the Mount point to be ShareFold and clicked Make Permanent. Then, in the VirtualBox menu at the top of the OS/2 VM window, I went into Devices > Shared Folders. That showed the same folder. Unfortunately, doing so generated a notice across the top of the VM:

The VirtualBox Guest Additions do not appear to be available on this virtual machine, and shared folders cannot be used without them. To use shared folders inside the virtual machine, please install the Guest Additions ….

Oracle’s VirtualBox User Manual said the solution was to use the command line in the OS/2 VM. I wasn’t sure which command line, but I decided to start with the OS/2 Start menu > OS/2 System > Command Prompts > OS/2 Window. The command required in this case seemed to be VBoxControl sharedfolder use D:\TEMP ShareFold. But that said, “The name VBoxControl is not recognized as an internal or external command, operable program or batch file.” I got the same result when I tried running that command in a DOS window. Plainly, I was doing something wrong. But what? There didn’t seem to be any VBoxControl executable on the host computer either. Eventually I saw that the VirtualBox manual said VBoxControl was included in the Guest Additions of VirtualBox 2.2 and later. Apparently it wasn’t included in the Guest Additions for OS/2, or else hadn’t been copied over to the OS/2 VM. Or maybe I just hadn’t been in the right place.

A different version of the manual said the Guest Additions were in a \32bit\OS2 directory in the OS/2 installation ISO, and the readme.txt file in that location explained how to install the Guest Additions manually. To access that directory, in VBM > Settings > Storage I once again added the boot and client ISOs. Then, as before, I had to hit F12 while the VM was starting up and choose item 1, Primary Master IDE controller. Once the VM was up and running, I used OS/2 Start menu > OS/2 System > Drives. There, I saw newly added drives E and F. Neither had a 32bit folder. Perhaps that version of the manual was for an earlier version of OS/2, which may have shipped with both 16- and 32-bit versions. Drive E did have an OS2 folder, and it contained files named VBoxControl.exe and readme.txt. In the VirtualBox menu at the top of the OS/2 VM, I went into Devices > Optical Drives. Mousing among the several drives listed there confirmed that Boot.iso was the IDE Primary Slave and Client.iso was the IDE Secondary Slave. So apparently drive E in the OS/2 VM was the Boot.iso, not the Client.iso. That was consistent with the observation that drive E contained files expected of a bootable drive (e.g., AUTORUN.INF), whereas drive F did not.

So I went to OS/2 Start menu > OS/2 System > Command Prompts > OS/2 Window. There, I entered e: and then cd \OS2 and then dir to confirm that I was in the right place. I tried e readme.txt and saw that it did contain instructions on the Guest Additions. Those instructions, all performed within OS/2 unless otherwise stated (and reproduced in an OS2World forum discussion, were as follows:

  • Use the generic VESA GRADD driver (short for Graphics Adapter Device Driver) (GENGRADD) (discussed in OS/2 Museum). (Note that version a.097 — apparently indicating that this was alpha software — was available from eCSoft/2.) I had little success in multiple Google searches for a way to learn whether the VM was already using that driver. In OS/2 Start menu > OS/2 System > System Setup, Hardware Manager did not seem to have anything on point. A ThinkPads discussion offered the suggestion of hitting Alt-F2 when OS/2 first loaded, before its splash screen appeared. I restarted the VM and tried that. That showed lots of things loading — too fast and with too little detail to catch anything relevant. A return to CONFIG.SYS did find a few references to GENGRADD therein. It seemed to me that this was the driver selected by default during setup. To confirm that, I closed this VM, created another one, and observed its initial setup processes. This gave me the information, added above, that the default driver I had installed was the Generic VESA Unaccelerated & VGA GRADDs. This was different from the Generic VESA Unaccelerated GRADD. Between those two, it was not clear whether the Guest Additions needed one or the other, or would be happy with either.
  • Boot to the OS/2 command prompt. I had to do this because, as I learned the hard way, files I was going to rename could not be renamed while OS/2 was running. To boot to the command prompt, EDM/2 suggested running this command in OS2: setboot /IBD:C where C was the drive I wanted to boot. That didn’t work, at least not with the boot ISO attached. Fortunately, I didn’t need the boot ISO anymore, once I copied files from that ISO (as described below), and I could do that at the command prompt while OS/2 was running. Alternately, the suggestion was to hit Alt-F1 during the early part of OS/2 bootup, right after the VirtualBox splash screen, at the moment when a little white (actually, light gray) rectangle appeared in the upper left corner of a black screen, with nothing except “OS/2” next to it. That, too, would be more complicated with the boot ISO attached: I would have to start the VM; click inside the VM to get it to recognize keyboard input; hit F12 at the VirtualBox screen, to get a list of bootable drives; hit 1 to boot the Primary Master (i.e., the VM, rather than the boot ISO); and then hit Alt-F1 after that. That process did lead to the blue RECOVERY CHOICES screen, where F2 was the option to give me a command line.
  • Copy all files into C:\OS2Additions. By “all files,” I assumed this instruction was referring to the files I had seen in the boot ISO’s E:\OS2 folder. There was not presently a C:\OS2Additions folder, so I created one at the C: prompt by using cd \ and then md OS2Additions. (If characters or spacing aren’t clear here, copy and paste into Notepad for easier reading.) After a bit of mousing around in the GUI, I found that copying and pasting files in OS/2 could require a menu pick for each step. Alternately, I think the command would have been copy E:\OS2\*.* C:\OS2Additions\.
  • Replace C:\OS2\dll\gengradd.dll. First, rename C:\OS2\dll\gengradd.dll to be gengradd.dll.bak (e.g., ren C:\OS2\dll\gengradd.dll gengradd.dll.bak). Then replace it with the new gengradd.dll (i.e., the one copied over from the boot ISO) (e.g., copy C:\OS2Additions\gengradd.dll C:\OS2\dll\gengradd.dll). I noticed that, at least in this VM, the original gengradd.dll was 61 bytes, while the replacement was 226 bytes. The gengradd.dll file could not be replaced within the regular OS/2 VM, apparently because gengradd.dll was in use; I had to run the replacement command in OS/2 booted into the command prompt (above).
  • Copy C:\OS2Additions\libc06*.dll to C:\OS2\dll\. I used exactly that as the command, removing only the word “to.” Shortly after I did this, the VM crashed. Fortunately, I didn’t need the command boot anymore. I rebooted the VM into its regular mode and continued in an OS/2 command window there.
  • Edit CONFIG.SYS. The command I used was cd \ and then e config.sys. That opened CONFIG.SYS in an editor. The first instruction was to “comment out” a certain line in CONFIG.SYS. This meant that the line would not be processed as an instruction; it would be treated as a comment for human eyes (i.e., ignored when processing CONFIG.SYS). There seemed to be general agreement, in these instructions and in other forum discussions, that the way to comment out a line in CONFIG.SYS in OS/2 was to put REM in front of it. (Other ways of commenting out a line, in other kinds of files and operating systems, included putting a semicolon (;) or two colons (::) in front of it.) I found this puzzling. I was expecting that a REM statement would cause a line to be ignored without further comment. In OS/2, it seemed, a REM statement would provoke the system to say, “Oh, I see a REM statement, let me tell you that I have found a REM statement.” In other words, it paused, requiring an Enter before continuing. A bit annoying. But, not to quarrel, I used REM as instructed. The line to REM out, in this case, was DEVICE=C:\OS2\BOOT\MOUSE.SYS. So I used Ctrl-F to find it, and then I edited it to look like this: REM DEVICE=C:\OS2\BOOT\MOUSE.SYS. Then, as advised, I added these lines to the end of CONFIG.SYS, and then saved and exited the editor:
DEVICE=C:\OS2ADDITIONS\VBOXGUEST.SYS
DEVICE=C:\OS2ADDITIONS\VBOXMOUSE.SYS
IFS=C:\OS2ADDITIONS\VBOXSF.IFS
  • Edit Path. Here, the instruction was to add C:\OS2ADDITIONS to the system’s PATH. That meant that, no matter where in the system my command prompt was, or no matter which folder I was looking at, the system would know what I was referring to, if I referred to an executable file in C:\OS2Additions. So, for example, I could be on the command line in some other directory, and I would still be able to run the VBoxControl command that had failed previously (above). I wasn’t familiar with the OS/2 PATH options. Typing path /? on the command line gave me its basic information. I tried simply path. That gave me the current path. It was long. Did I have to retype all that, in order to add something to it? I highlighted it all with the mouse > right-click > Copy. Then I went to Start menu > Programs > Utilities > OS/2 System Editor. There, I used Ctrl-V to paste what I had just copied. Copying from the command line had introduced several line breaks. To get rid of those — that is, to set it so that it would all be entered as one single PATH command — I used the End key to go to the end of each line, and hit Del to delete the line break. The System Editor couldn’t display the end of the single long line, so there was a bit of flying blind at this point. I put the cursor on that long line, hit End to go to the end of that line (even though I couldn’t see it), then hit Shift-Home to select it and Ctrl-C to copy it. Back on the command line, I used right-click > Paste to enter the single long line. It ended with a semicolon. I added C:\OS2ADDITIONS; (with the semicolon) and hit Enter. Then I ran path to confirm that my my addition had been accepted.
  • Edit STARTUP.CMD. The instruction here was to add C:\OS2ADDITIONS\VBOXSERVICE.EXE to the start of C:\STARTUP.CMD. To do that, I used e C:\startup.cmd > Enter. Then File > Save > Save As > Save.

That concluded the Guest Additions instructions. I rebooted the VM. In VBM, I set up my shared folder as before. Then I went into the VM’s VirtualBox menu again > Devices > Shared Folders > Shared Folder Settings > select the VM > OK. Sadly, this produced the same error: “The VirtualBox Guest Additions do not appear to be available on this virtual machine ….” Moreover, it seemed the attempt to install the Guest Additions had broken the OS/2 mouse. I had to roll back the VM to an earlier snapshot.

At this writing, then, I was unable to install Guest Additions. Seeking insight, I posted a question. At this writing, the only answer to that question seemed to confirm that I had been using the correct set of instructions. It was not clear whether I could progress further toward successfully installing the Guest Additions.

Installing Adobe Acrobat Reader

I wanted the Guest Additions for general purposes, and also to assist with software installation. The only software I wanted to install, on this retry, was Adobe Acrobat Reader. First time around, I had the impression that Reader 3.0 was the latest I could use. But now, based on a search, given the sketchy results I had encountered with Reader 3.0 (above), I decided to try installing Adobe Reader 5.1, in the form offered by eCSoft2.

To run Reader 5.1 in OS/2, it seemed, I had to start by installing the InnoTek Runtime for OS/2 (version 1.12). That download, on my host computer, unzipped into an .exe file. But now, how could I get that .exe file from the host computer into the VM? Without the Guest Additions, it didn’t matter that I had enabled Shared Clipboard and Drag ‘n’ Drop during installation (above): I wasn’t finding a way to paste the .exe into the OS/2 desktop or elsewhere within the VM.

Another possible route was to put the .exe on a USB drive and see if the VM could recognize that drive. Unfortunately, a search led to indications that USB device drivers were scarce, at least outside of the paid versions of OS/2 (e.g., eComStation, above). Even in a 2005 discussion (see also Harvey), Blonde Guy indicated that the situation was uncertain for those who didn’t buy eComStation or an IBM annual subscription. By now, in 2019, I supposed that few USB producers were still including OS/2 drivers by default.

Another possibility was to power down the VM and then use VBM > Settings > Storage > right click in the empty space under Storage Devices (or click on the leftmost icon down below) > Add SATA Controller, to give OS/2 direct access to my HDD. I wasn’t sure OS/2 was ready for large drives, and I also wanted to keep the VM relatively separate from my computer for security reasons. But I tried it anyway. I clicked on the icon at the right end of the line showing that the VM now had Controller: SATA (tooltip: Adds Hard Disk) > Choose existing disk > Add. But the instructions at the top of the window said, “Please choose a virtual hard disk file.” It was apparently looking for a VHD, not for a physical drive. There was probably a way to construct a VHD for the purpose, but I didn’t go that route at this time.

I powered up the VM and tried using its installed Internet browser to download the .exe file directly. I hadn’t done that sooner because someone had said the browser was pretty useless for today’s Internet. But perhaps it would work if I pointed it directly at the link for the download, without requiring it to load any webpages. I would still have to figure out how to use OS/2 to unzip that download, so as to get the Innotek .exe file. But one thing at a time.

To go to that download link, I double-clicked on the Netscape Communicator icon on the VM’s desktop. It started me in the process of Creating a New Profile. I skipped entering my email address, changed my username to Ray, and clicked Finish instead of pursuing the option of setting up email. Netscape opened and gave me an error message: “Netscape is unable to locate the server home.netscape.com.” No surprise: I had forgotten to enable Internet access. I powered down the VM. Then, in VBM, I went to Settings > Network > Adapter 1 tab > Enable Network Adapter > OK. As noted above, I had already set it to Bridged, not NAT. The VirtualBox manual seemed to say that this would allow the VM to use the host computer’s Internet connection. I powered up the VM, but it was dead: I only got a blinking cursor on a black screen. Was this due to turning on the network connection, or to my attempt to use Netscape?

I powered the VM down and rolled it back to its previous snapshot again. With bridged networking enabled, it ran OK. So maybe Netscape was the problem. Could I just download the file without it? I knew it was possible to enter a command, in Windows, to download a file without using a web browser. But those commands seemed to rely on something like PowerShell, or on additional utilities like curl or wget. Unfortunately, my search did not lead directly to any such command for OS/2.

From the OS/2 Start menu, I went to Connections > Web Sites > OS/2 Related Pages > OS/2 Links. I thought maybe this would open a browser in some alternate way. But it wanted to create a new Netscape profile, as before. I clicked Cancel, hoping that would bypass the setup routine and put me directly into Netscape. It didn’t.

At this point, then, my attempt to install Adobe Acrobat Reader 5.1 in an OS/2 VM was stymied by an inability to get files related to installation into the VM. I posted a question on that. The question did not yield much guidance.

At this writing, it appeared the only available route was to put the desired files into an ISO image. To that end, the files I downloaded were the InnoTek Runtime for OS/2 (version 1.12), Acrobat Reader 3.0, and InnoTek OS/2 kits for Acrobat Reader 4.05 and for Acrobat Reader 5.1 (even though the latter was described as merely a “preview”; it would turn out to be a full Reader installation, as far as I could tell). SCOUG had some additional commentary.

I put these downloads in the same folder, gave that folder a short name with no spaces (i.e., ACROREAD), just in case that was necessary, and ran ImgBurn 2.5.8. I went into the ImgBurn menu > Mode > Ez-Mode Picker > Create image file from files/folders > click the folder icon near center top (tooltip: Browse for a folder) > select the ACROREAD folder > click the big BUILD icon (which looked just like the Create Image File icon that I had just clicked in the Ez-Mode Picker) > create the ACROREAD.ISO > select a preferred location for it > say Yes to the Confirm Volume Label dialog. When it was done (which took only a few seconds), close ImgBurn and, if desired, close the largely useless ACROREAD.MDS file.

So now I was ready to roll. I went into VBM > select the OS/2 VM > Settings > Storage > right-click on Controller: IDE > Add optical drive > Choose disk > Add > Navigate to the ACROREAD.ISO > select it > Open > select it > Choose > OK. Then start the VM > Start menu > OS/2 System > Drives > find the drive containing the ACROREAD folder (in my machine, it was in D:\Current, because that was where I had placed the ACROREAD folder) > run INNOTEK0.EXE. That ran the InnoTek Runtime. After a minute, that opened a dialog. I clicked its Next button > basically go with the flow to install it. Now the title bar of the black command window said, “Completed: INNOTEK0.EXE.” So I closed that. It turned out that I should have renamed the several Acrobat Reader downloads with short names, because that’s what OS/2 or ImgBurn had given them. I decided to start at the top, trying to install Acrobat Reader 5.1. The assigned short name turned out to be OS2KITA2.EXE. Here, again, I went with the flow of the installation, and again it completed.

Now the OS/2 Start menu had Acrobat Reader 5, and there was also an Acrobat Reader 5 icon on the desktop. I ran it. It said, “You cannot currently view Adobe PDF files from within your web browser due to a configuration problem. Would you like Acrobat to fix the configuration?” I said Yes. I found some PDFs in C:\AcrobatReader\Adobe\Acrobat 5.0\Help\ENU. But now I couldn’t get Acrobat to run. I rebooted the VM. Acrobat Reader started up as soon as the VM ran. I closed it and then reopened it. Now it was OK. I used it to open one of those PDF files. The one named Reader.pdf was 76 pages, and it looked good. Woo hoo! I had Acrobat Reader running in OS/2. Of course, it was going to be a pain if I had to use an ISO every time I wanted to use it to read a PDF. But at least Reader 5 worked.

Conclusion

At this writing, my attempt to use OS/2 as a test bed for PDF files was on hold, pending a better way of getting PDFs into the VM. I did have a pleasant experience using the built-in chess game, however, and I obtained some general impressions of OS/2. I am now able to log into the forums at OS/2 World, so maybe there will be some further discussion of this experience here and/or there.

My first general reaction was that, as often happens, my rosy recollection of OS/2 may not have matched reality. I began this little expedition thinking of OS/2 as a solid, stable operating system that was far better than the competing Windows versions of that time. This may have been true: I may have known how to make both operating systems work; I surely did encounter more crashes in Windows than in OS/2. I could still sympathize with latter-day OS/2 enthusiasts who may have shared my belief that, back then, Microsoft won through superior marketing, not superior programming.

I guess I was something of a believer in IBM: my first PC was an IBM PC, bought at Macy’s in New York City in 1983. Indeed, upon completing this installation, I felt that this OS/2 VM did reasonably well. There wasn’t terribly much to fix, to get it working on a basic level. That was saying a lot, considering that I had long since lost and/or forgotten the tools and techniques familiar to me back then, 20 years earlier. I doubted that it would have been as easy to get up and running with Windows 3.1. Windows didn’t give me stable computing until the later years of Windows XP, when I discovered that, for some reason, it ran much more stably in a VMware Workstation VM than in a native installation.

But this project was something of an eye-opener for me. For one thing, it had been a while since I had had to grapple with such a primitive level of computing. Contemporary Linux and Windows 7 and 10 installations had spoiled me. OS/2 may or may not have been better than the competition in its day, but it was hopeless by present standards. There was no chance that I would prefer it over Windows 7 or 10, or over any mainstream Linux distribution.

Even by the standards of its time, it seemed that I may not have been fully informed. I suppose it is possible that the retrospective article I read in Ars Technica (Reimer, 2013) was mistaken in some regards. But generally I could not say that IBM in the 1980s and 1990s had taken its PC opportunities seriously and developed them competently.

I did still want my OS/2 VM to work. I wasn’t sure whether I would have any more need to run ancient DOS software. If I did, it seemed that this VM might provide a relatively sophisticated way of doing so, without too much additional tinkering. Progress had been slow, so far. I still didn’t know much about using OS/2. I still wasn’t able to get files into the VM easily. But perhaps those problems would be resolved at some point.

1 thought on “Creating and Using a Legacy IBM OS/2 Virtual Machine in VirtualBox

  1. jim

    Use MagicISO to create the ISO file using whatever files you want and insert the image into VirtualBox and just read the CD in OS2. Add and remove files to your hearts content int he same image just make sure to remove and add the CD with each change. I have had some luck with drive shares using a different version of GuestAdditions but its a pain. Network shares to Windows 7 & 10 are proving to be much more of a headache and I am finding the ISO option, while clunky, serves its purpose of getting files to OS2 easily enough. I am unlikely to be needing to transfer from OS2 to windows but I imagine I can find an ISO program for OS2 out there somewhere if I really needed it… Just in case you get the OS2 bug again.

    Reply

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.