Transfer SCO Acucobol to Linux
I doubt I'll see too many more of these, but this week I had a
call from someone with a crashed SCO 3.2v4.2 system. This was an
old DEC MP433 system with half a dozen small SCSI drives, and a 1
GB Tandberg tape drive, which had probably been running for 15
years or more. The root hard drive had apparently died. They had a
backup of that, and emergency boot/root floppies, but no backups of
the other drives. Fortunately all application data was on the other
drives, so we had reasonable hope of recovering the system.
The customer also told me that everything was written in
Acucobol, and that he had source code too, and he had already
bought Acucobol run-time for Linux but hadn't been able to get it
working. We decided to first get the SCO system back up and then
look at the Linux.
A fresh root drive had already been installed, stolen from a DOS
box of the same vintage that had been sitting around as a
transplant source. They had the SCSI ID set wrong, but I reset it
to 0 and booted from the emergency boot floppy. It asked for the
root floppy as it should, and dumped me at a prompt. I confirmed
that the tape was working with a "cpio -itv < /dev/rStp0 | head"
and we were ready to begin.
First step was to run "fdisk -f /dev/hd0root" and create a Unix
partition, followed by a "divvy -i /dev/hd0root" to create
filesystems. Then, "mount /dev/hd0root /mnt" and we were ready to
go. I did
cpio -ickvABdu < /dev/rStp0
The files began to restore. I'd need to restore boot file before
this would be fully ready to run again, but we were on our way.
(Restoring boot files)
dd if=/etc/hdboot0 of=/dev/hd0a
dd if=/etc/hdboot1 of=/dev/hd0a bs=1k seek=1
Unfortunately the happiness was short lived. I started looking
at the Acucobol, and actually had it installed and working on the
Linux box, when the DEC machine started spewing disk write errors.
I had forgotten to run /etc/badtrk, so I started that while
continuing to work with Acucobol on Linux.
We had no current backups, but there were some older sets.
Although these were SCO cpio tapes, which would normally use the
"c" option, that didn't work. I knew that Linux has a different
idea about the c flag, but the only way I could restore was to
leave all that out:
cpio -ivdu < /dev/st0
The programs actually ran, with some screen issues - no line
draw characters, screen clears inconsistent, some positioning off.
Acucobol uses /etc/a_termcap, so the client felt certain he could
clean that up with some experimentation.
Unfortunately, the SCO box wasn't doing as well. The badtrk ran
with no problems, but another attempt to restore files crashed
again at a different point. Trying cpio with leaving off "u" let it
go farther, so it seemed plain that this was not a hard drive
problem, but it did keep crashing.
As the Linux box obviously was working, and the client wanted to
transition to that anyway, we decided to extract tapes from the SCO
boxes other drives and restore them to Linux. Enough of the root
file system had been restored to make this very easy: I checked
/mnt/etc/default/filesys to see what devices had been mounted, and
looked in /mnt/dev to get the right major/minor numbers. I then
used "mknod" to create entries in /dev on the root floppy. The
procedure would then be:
fsck -y /dev/data1
mount /dev/data1 /mnt
tar cvf /dev/rStp0 /mnt/data1
This would be repeated for each disk, and the tapes then
restored to the Linux box.
Got something to add? Send me email.
Increase ad revenue 50-250% with Ezoic
More Articles by Tony Lawrence
Find me on Google+
© 2011-03-12 Tony Lawrence