And it’s live now – SCO Open Server 5.0.5 running in a RHEL 6 KVM

As promised earlier, the final bits of getting an application that runs on the old hardware on to the VM is now all done.  I tried to install the app but, I really did not want to spend too much time trying to figure out all the nuances about it.  Since this is really an effort that would eventually see the app being replaced at some future date, I wanted to get it done easily.

So, over the last long weekend, I did the following:

a) Created a brand new VM running SCO Open Server 5.0.5 on the RHEL 6.2 machine. The specs of the VM are: 2GB RAM, 8GB disk, qemu (not kvm), i686, set the network card to be PC-Net and Video as VGA. This is the best settings to complete the installation of SCO in the VM.

b) Meanwhile on the old machine, I did a tar of the whole system – “tar cvf wholesystem.tar /”. This is probably not the best way to do it, but hey, I did not want to spend time just picking what I wanted and what I did not need from the old machine. The resulting “wholesystem.tar” file was about 2G in size.

c) Ftp’ed the wholesystem.tar file to the VM and did an untar of it on to the VM – “cd /; tar xvf /tmp/wholesystem.tar “. This resulted in a VM that could boot, but needed some tweaks.

d) The tweaks were:

  1. Changing the network card to reflect the VM’s settings
  2. Changing the IP#
  3. Disabling the mouse on the VM

d) SCO is msft-ish (or may be msft learned it from SCO) in that the tool that is used to do the changes “scoadmin” will, after changes are done, need the kernel be rebuilt which then necessitates the rebooting of the VM to pick up the new values

e) Edited the /etc/hosts file to reflect the new IPs and added in /etc/rc.d/8/userdef file a line to set the default route on the VM: route add default

The VM’s IP is and in the /etc/resolv.conf file, the nameserver was set to and (Google’s public DNS)


a) The old machine had two printers – an 80 column and a 132-column dot matrix printer – connected to its serial and parallel ports.  I did not want to deal with this issue for the VM and got hold of two TP Link PS110P print servers. What’s nice about these are that they are trivial to work with (they are running Linux anyway) and by plugging them to the printers (even the serial printer had a parallel port), both printers were on the network and so printing from the SCO VM was now trivial.

b) Configuring the SCO VM to print to the network printer was using the rlpconf command. The TP Link print server has an amazing array of options and I picked the LPR option and the LPT0 and LPT1 device queue on the two TP Link print server. While the scoadmin has a printer settings section, for some reason the remote printers set up by it never quite worked.  In any case, the rlpconf edits the /etc/printcap file to reflect the remote printers and that is all that is needed.  Here’s what the /etc/printcap looked after the rplconf command was run:

cat /etc/printcap
# Remote Line Printer (BSD format)
#       :lp=:rm=rhel6:rp=rhel6-pdf:sd=/usr/spool/lpd/rhel6-pdf:

the IP #s were set in the TP Link print servers and their respective print spools.

c) so, once that was done, running lpstat -o all on the VM shows the remote printer status:

#lpstat -o all
lp1 is available ! (06,05,02,000000|01|448044|443364|04,02,02|8.2,8.3)
lp1 is available ! (03,02,03,000000|01|450384|445932|04,02,01|8.2,8.3)

Networking issues:

Initially, I had set up the VMs using the default networking setting for KVM.  The standard networking in KVM assumes that the VM is going to go out to the network and not running as a server per se. But this VM was going to be accessed by other machines (not the RHEL6 host) on the office LAN, so the right thing to do is to set up the a Bridging network instead of a NATed network. RHEL 6.2 does not, by default, have bridging set up and I think that need to change. NATing is fine, but in order for the VM to be accessed from systems other than the host, there has to be additional firewall rules set up if it is to be NATed, but a one liner iptables rule: “iptables -I FORWARD -m physdev –physdev-is-bridged -j ACCEPT” if it was on a Bridge.

I think the dialog box that sets up the VM via virt-manager should add an option to ask if a you need a bridged network. The option is there, but not obvious. So following these instructions carefully – they work.

Well, that was it. The SCO Open Server 5.0.5 with the application that was needed is now running happily in a VM on a RHEL 6.2 machine and the printing is via the network to a couple of print server.

I must, once again, take my hats off to the awesome open source developers of KVM, QEMU, BOCHS etc for the wonderful way all the technologies have some together in a Linux kernel as fully supported by Red Hat in Red Hat Enterprise Linux. There is an enormous amount of value in all of this, that even a premium subscription of this RHEL installation is a fraction of the true value derived. The mere fact that a 20th century SCO Open Server can now be made to run in perpetuity on a KVM instance is mind-boggling (even if Red Hat does not officially support this particular setup).



30 thoughts on “And it’s live now – SCO Open Server 5.0.5 running in a RHEL 6 KVM

  1. Hats off to you. I need a help from u. I am connecting to my sco openserver 5.0.7 via telnet from my rhel5.4 desktop pc. A dotmatrix printer is attached to my RHEL pc. I want get locally printed during telnet session. My server(sco) ip and my PC(RHEL) Please help me

    1. Have you set up the printer on the RHEL box? Once you do that and have it to be shared printer, on your SCO machine, run rlpconf to configure a remote printer which is what you will have on the RHEL machine. You will need to open port 515 (for LPR/LPD I think) on the RHEL machine for the SCO machine to talk to. But the looks of you question, you are not running the SCO in a VM but on a separate machine.

      1. Yes I am running SCO on a separate machine and I am hoping that your sugeestions will solve my problem. Please give me a detailed note. I am searching for this answer for a long time. Do some thing friend. Please, Please.
        Thanks in advance

  2. Are you a sysadmin type person or just a regular user? If you are just are a regular user, contact you sysadmin to set up a printer on your RHEL machine and expose it as a network shared printer and then on the SCO machine to connect to it remotely via the rlpconf command.

    1. Sir actually I am new to sco unix. I have created a printer at my Linux box named as slp0 and made it as default. Is it necessary to create the same at Sco Server or I can simply raun rlpconf command and havs to enter the details of linux box printer name ? One more I don’t want to make slp0(linux pc printer) for all purpose. Whenever I connect to SCO Server via telnet then only I wish to get print out my locally connected printer rest of the time the server printer may accept print jobs from the printer connected to server. Similarly I have two more clients running rhel and attached printers individually. Is this process works on those clients also or not ? Please guide me Sir

    2. Sir actually I am new to sco unix. I have created a printer at my Linux box named as slp0 and made it as default. Is it necessary to create the same at Sco Server or I can simply run rlpconf command and have to enter the details of linux box printer name ? One more thing I don’t want to make slp0(linux pc printer) as default for all purpose. Whenever I connect to SCO Server via telnet then only I wish to get print out from my locally connected printer and rest of the time the server printer may print from the printer connected to server only. Similarly I have two more clients running rhel and attached printers individually. Is this process works on those clients also or not ? Please guide me Sir Let me know whether I have to use lp -H to direct print jobs to the linux printer during telnet.

  3. SCO is a relatively ancient Unix OS. I am not sure if it is on sale anymore.

    But having said that, there are plenty of how-tos and help available for those who have to work with one.

    Here’s what you can do:
    a) you’ve named your shared printer on the RHEL machine slp0. I assume you have the IP# of the RHEL machine as well.
    b) on your SCO machine, run the rlpconf command.
    – answer the questions asked
    – you may provide the IP # of your RHEL machine instead of a name
    – all of the setting will show up in /etc/printcap file in the SCO machine when done

    Now run the lpstat -o all command on the SCO machine. It should show up the printer
    on the RHEL machine. Try sending something to that.

    And finally, stop saying “Sir”.

  4. We’re presently running SCO 5.0.5 under VMware Server under Fedora but would like to move it to a new server using CentOS 6.2 and KVM. Hence, I was pleased to run across your post here. I linked back to your 2012-02-27 and 2010-02-16 posts as well and was interested in seeing the references to Thoroughbred in there.

    Our own software used to be written in Thoroughbred Basic but we moved to Basis BBx back in 1994 and, in fact, we still have some very old in-house accounting software/data stored in Thoroughbred Basic in our SCO virtual machine but the only way we can run it is to set the date in our SCO machine back to something prior to 2000 but doing so causes havoc with our other applications running in there.

    Hence, just yesterday, I was wondering out loud to our sys admin guy if we should consider buying a single-user Thoroughbred licence for running in there.

    I noticed you had indicated in your 2012-02-27 post “I will follow-up with the installation of a product called “Throughbred 8.4.1″ in a subsequent post” but I couldn’t locate this (although I think you meant “Thoroughbred 8.4.1” here). I’d be interested in hearing what you had to say about this.

    1. Thanks for the comment.

      Yes, I forgot to report back on how I got the TBred stuff to run.

      I *really* did not want the hassle of installing TBred and any other issues with it so what I did was the following:

      a) On the original SCO machine, I did a NFS mount to the SCO machine an NFS export from the RHEL 6.2 (now 6.3) machine
      b) Then tar’ed the whole SCO partitions (/ and /stand) over to the nfs mount point as one file
      c) On the RHEL VM, I did the installation of the SCO and then untarred the file OVER the existing partitions of the VM.
      d) Then I had to modify the network settings and some related stuff and the VM was good to go with the previously installed tbred stuff that was in the tar file.

      A key consideration of this is that the VM running SCO is not an officially supported OS from a Red Hat support perspective but the customer was keen on keeping the base OS (RHEL) properly supported and letting the VM contain the SCO Unix that remains unsupported (not even by SCO themselves).

  5. Thanks for that feedback. Our concern isn’t that what we are doing is officially supported as much as that we can keep doing it. I don’t think, for example, that the circa-1992 versions of WordPerfect Office, SoftSolutions and Lotus 123 we are running under SCO 5.0.5 are supported by anybody either. 😉

    1. That is trivially done via rsync. The entire VM is backed up using rsync. Run a script to invoke virsh to pause the VM, rsync it and when done, unpause the VM via virsh. Keep things simple and with open source tools.

  6. While it seems this discussion is a bit dated, I have some updates for those that might also find this useful. Since this thread shows up well in the google searches for anyone doing KVM and SCO Unix VM installs, I thought my reply would help others too.

    I have successfully tested the creation of several SCO Unix 5.0.5 Virtual Machines under Fedora 17 KVM. I know of some old sites also trapped in old hardware and they need a VM way out to run these systems on modern hardware until they can someday get out from under the SCO specific software they require.

    This thread was originally helpful along with others I found but none of them gave a clear finished working config so I had to keep working at it till I found a working combination. I was reading a lot about others trying this were commonly having their VM SCO install hang around the 80% complete stage. No one seemed to ever say what solved this problem. I also had this issue over and over with great frustration. Here is my configuration and what I did to solve this. Okay, I cannot say exactly what solved the problem but I think the one thing that made the difference is setting the number of CPU’s to two for the VM.

    Rationally, I only wanted a single CPU conservative SCO OS instance and did not have or intend to do SCO SMP but when I changed the number of CPUs for the VM to two, I got full installs and all has worked well since. I will speculate that saying two allows the VM to have a full core available to the VM vs a single hyper thread???… Just a wild guess. This hyper threading of some Intel CPU’s has never been totally clear to me… Just give me full real cores not some partial core hyper gimmickry. This also seems to contribute to my observations that the init of the vm disk during the sco install was extraordinary slow (seemed like hours) and with this config shown here, the disk init and install all completed in minutes vs hours. Strange but these are my observations.

    More tips: I configed each vm machine as Disks=IDE with IO caching set to writeback and using threads. I think this made a huge difference in the speed of the disk accesses during the OS install. The CPU was set to qemu and i686 32 bit. I was using VNC for the display, not spice, but at this point, it might work either way because I do not think that SCO knows the difference. You have to select the PCNET NIC card for SCO to auto detect the NIC.

    I never got the X11 SCO Login to work. I could get SCOLogin to start but once I moved the mouse a tiny bit it seemed to hang and become useless (the console). So I figure that I do not care about X windows on the console and will seek to implement a VNC Server within the SCO OS for common admin access needs. And with this I can have a larger VNC screen session resolution also/anyway where as the console is highly limited with the base junk VGA limits. The hanging problem here seems to me to be tied to the mouse. By not configuring the mouse in the system, the console does not hang. I was trying to configure the Hi-Res PS2 style mouse fwiw. I got nowhere with the recommendation thing of trying to setup a tablet for the pointer.

    Overall, the hard part is getting the SCO installer to run to completion. Once you have a install working, you can then tinker with the CPU setting to perhaps get better results. Also, changing the disk cache settings may be useful.

    I hope that after all the hours I spent trying to get this all to work, that others likewise benefit from these findings.

    1. Thanks, Keith for posting your experience. I did initially test it on a Fedora 15 environment before deploying on a RHEL6 setup primarily because I wanted to be able to manage the base OS with support for the long term. Now we are seeing the same system running two other instances of Windows 2003 server both 32 and 64 bit instances.

  7. I found your post for loading SCO 5.06 and KVM. Very helpful!!! I have loaded SCO 6 with RHEL 6.5 and KVM. I am having an issue with the time increasing super fast on the SCO 6 box. Is anybody having this problem?

    1. Hi. I do not have SCO 6 to test so I cannot tell. Does the clock run fast in other VMs on the same system? If not, it could be something about how interrupts are being managed by SCO 6. You the drift is not too much, perhaps you can run a NTP server on your host and run the ntpdate command.

      1. Well I have not loaded another VM on this server yet. Another Linux consultant initially did the test on his own VM and add the SCO 6 just to see if it was able to be loaded. He has other VMs with Windows OS, different versions of RHEL and he is able to duplicate this on fast increase of time on the SCO 6 version he loaded as well.
        I do have 1 customer that we loaded SCO 6 on a VMware and it is keeping time just fine. This is the first Linux Virtual that we have tried.

  8. i have sco unix v 5.0.5 with database informix SE and 4gl i want detail steps to convert into vmware esxi 6

    1. Thanks for the comment. I have no experience with VMware or any other proprietary virtualization solution. KVM does everything that is needed and works wonderfully well.

  9. Thank you for your tutorials on this!!! They were instrumental in getting us this far.

    I have an old SCO OpenServer (5.0.7) UNIX server running archaic proprietary software and we are trying to virtualize it through Fedora KVM. We have successfully gotten it to boot simply by dding the hard drive from the old server to a file and then converting it to a VHD file via VirtualBox tools. But after booting and logging in we get an error saying SPB is inaccessible; check the seed screen. and then sends the user back to the login screen.

    I have lots more information about the previous setup but decided to hold it back as to not bog down with unnecessary info. Any tips, pointers, advice, etc is greatly appreciated!!! Thanks in advance.

    1. Thanks for reaching out. As I prefer to keep the virtual machine solely in the KVM system and not use anything else (why would I need that when KVM is more than sufficient), I don’t have any insights on why the VirtualBox tools are causing issues.

      I guess if you could please check if the VM runs natively on a KVM environment? That way, I might be able to help debug.

      1. Thanks for the quick response! I’m sorry I’m fairly new to this so just let me know if I’m off base… So when you say natively do you mean I should try to make a VM that boots from the raw file I got when I dd’ed the old server? If so, I have and it just comes up and says “Booting from Hard Disk…” and then gives me a blinking cursor.

        Another thing we tried was installing SCO OpenServer 5.07 onto a fresh VM with the settings you suggested and then tar the old system and put the tar file onto a USB to be untared on the fresh SCO VM install. This resulted in a successful boot but the same error as we got when trying to simply convert the raw disk file from dd to a VHD file: “SPB is inaccessible; check the seed screen.”

        As a side question: do you know what “SPB is inaccessible; check the seed screen” means or have any idea on where I can look to find more information about this? I searched everywhere I could think of and my advanced google search for Exact Word or Phrase: “SPB is inaccessible” and contains: “Unix” or “Linux” resulted in a single result, which contained nothing useful.

        Anyways, thanks again! I really appreciate your help

  10. Happy to help you understand all of this. Fedora/Red Hat Enterprise Linux all have built in support, natively, to run virtual machines. The technology is called KVM. That’s what I did for this work. The GUI too is called virt-manager and you can then manage your VMs that way.

    You say that you are tring to install SCO into a “fresh VM”. Is that VM being managed by virtualbox? If so, I can’t help you because that is not what I used. It is not that I can’t use it, I don’t need to because virt-manger is already there.

    I appreciate that you are new to this and I am happy to continue to help you out.

    1. I am using Fedora’s built in KVM virt-manager. I used virtualbox tools at one point to convert the raw disk image to a VHD to run inside of Fedora’s virt-manager. Is there a better way to convert a raw disk image to something that can run in virt-manager? I have tried just using the raw disk image but on boot it just comes up and says “Booting from Hard Disk…” and then gives me a blinking cursor.
      Thanks in advance!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s