SCO OpenServer5: No user licenses were found on this machine

(english translation below)

Auf uralter Hardware lief ein SCO-Unix OpenServer5, das ich am Anfang des Jahres in eine VirtualBox virtualisiert habe. Dazu habe ich das System mit den alten, vorhandenen Installations-CDs von Grund auf neu aufgesetzt, die Lizenz-Schlüssel eingegeben und die Lizenzen registriert, und zum Abschluss die Bewegungsdaten vom alten System herüberkopiert. Im März wurde getestet, zum Monatswechsel wurde von alter Hardware auf virtualisiertes System gewechselt. So weit so gut.

Bis heute, als aufgrund eines Stromausfalls (der durch die USV sauber abgefangen wurde und einen geregelten Shutdown durchführte) ein Reboot anstand. Beim Booten gab es diese weniger lustige Fehlermeldung:

No user licenses were found on this machine. Please boot
single user and correct this situation. Licensed software
will not operate until user licenses are installed.

The License Policy Manager Daemon (sco_pmd) was unable to start.
This is usually due to a read-only root filesystem, lack of
user licenses or a damaged program image file (/etc/sco_pmd).
If this is not the case, please contact your SCO service provider.

Der komplette TCP/IP-Stack wurde nicht geladen, remote kam man gar nicht auf das SCO-Unix. Eigentlich lief so recht gar nichts. Wie auch ohne gültige Lizenzen.

Die im Web zu findenden Hilfestellungen, dass wohl die Uhr(en) nicht synchron laufen, waren nicht hilfreich. Natürlich liefen die Uhren korrekt und synchron außerhalb und innerhalb der Virtualisierung.

Spannend wurden die Hilfestellungen bezüglich brand -L. In meinem Fall ergab sich, dass die Lizenzen am 03.08.2015 um 01:59:59 Uhr abgelaufen waren. Die alte Hardware angeworfen, dort nachgeschaut, dort würden die Lizenzen erst 2038 ablaufen. In der virtualisierten Maschine im License Manager innerhalb scoadmin die Lizenzdaten entfernt, neu eingegeben, mit brand -L nachgeschaut, wieder Ablaufdatum 03.08.2015.

Die Lösung nach stundenlanger Suche: Der License Manager scheint einen Bug zu haben, wenn man die Lizenzdaten im Jahre 2015 eingibt. Zumindest bei mir war folgende Vorgehensweise von entspannendem Erfolg gekrönt:

  • SCO-Unix mit shutdown -y -g0 herunterfahren, sofern gestartet
  • Systemdatum des Hosts auf März 2000 zurücksetzen (etwaige NTP-Aktualisierungen vorher unterbinden)
  • Virtualisiertes SCO-Unix in VirtualBox starten
  • root-Passwort für den Single-User-Mode eingeben
  • scoadmin starten und im License Mangager alte Lizenzen entfernen, neu eingeben und registrieren, scoadmin beenden
  • brand -L sollte nun andere Gültigkeitsdaten ausgeben
  • mit shutdown -y -g0 herunterfahren
  • Systemdatum des Hosts auf das aktuelle Datum zurücksetzen (etwaige NTP-Aktualisierungen wieder aktivieren)
  • SCO-Unix neu starten, die Fehlermeldung beim Booten sollte verschwunden sein

English Translation

We had an SCO OpenServer5 installation on rather old hardware that I virtualized between March and April this year. I’ve used VirtualBox, installed SCO Unix OpenServer5 from scratch, entered the license data, registered the software, transfered our applications and user data. The installation was tested in March, the system went productive in April. Everything was fine.

Until today when a black out forced the virtualization host to shut down. After the reboot the following error message appeared:

No user licenses were found on this machine. Please boot
single user and correct this situation. Licensed software
will not operate until user licenses are installed.

The License Policy Manager Daemon (sco_pmd) was unable to start.
This is usually due to a read-only root filesystem, lack of
user licenses or a damaged program image file (/etc/sco_pmd).
If this is not the case, please contact your SCO service provider.

The complete TCP/IP stack wasn’t loaded, no chance to do any administrative jobs remotely. In other words nearly nothing worked. Well, without any valid licenses: how could it.

The pages I found with Google and Bing weren’t really helpful. The clocks were running correctly and synchronously, the „corrections“ with date and setclk didn’t change anything.

The hint to check the product license expiration with brand -L was the key to success. On my virtual machine the expiration date was August 3rd 2015, the expiration date on the old hardware based installation was 2038.

After having done a lot of trial and error for a few hours I noticed a bug in SCO’s License Manager when entering the license data in 2015. The following steps worked for me and made the error message disappear:

  • stop SCO Unix with shutdown -y -g0
  • set virtualizations host’s system date to March 2000
  • start virtual SCO machine in VirtualBox
  • enter root password for single user mode
  • start scoadmin starten, go to the License Manage, remove expired licenses, re-enter license date, register products, exit scoadmin
  • brand -L should list different expiration dates now
  • stop virtual SCO machine with shutdown -y -g0
  • reset virtualizations host’s system date to current date
  • start virtual SCO machine, the error message should have gone