CRS-4124 Oracle High Availability Services startup failed

APPLIES TO

Operating System - Oracle Linux Server 7.9
Oracle Database - Enterprise Edition - Version 11.2.0.3.0 - 11.2.0.4.0
Oracle Grid Infrastructure - Version 11.2.0.2 - 11.2.0.4.0

SYMPTOMS

When installing the GI software and executing root.sh, an error occurs:

CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: Inappropriate ioctl for device
ohasd failed to start at /oracle/app/product/grid/crs/install/rootcrs.pl line 443.

or

ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow:
2026-05-07 12:00:13.115:
[client(5943)]CRS-2101:The OLR was formatted using version 3.
2026-05-07 12:00:16.387:
[client(5973)]CRS-1001:The OCR was formatted using version 3.

ohasd failed to start at /u01/app/11.2.0/grid/crs/install/roothas.pl line 377, <ALERTLOG> line 4.
/u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib -I/u01/app/11.2.0/grid/crs/install /u01/app/11.2.0/grid/crs/install/roothas.pl execution failed

CAUSE

It is known that OL7 expects to run processes and restart them using systemd instead of initd, but root.sh is currently unable to handle this issue.

Install of Clusterware fails while running root.sh on OL7 - ohasd fails to start (Doc ID 1959008.1).pdf |

SOLUTION

  1. Execute the script to roll back the root.sh operation
# for rac
~]# $<GRID_HOME>/crs/install/rootcrs.pl -deconfig -force -verbose

# for si
~]# $<GRID_HOME>/crs/install/roothas.pl -deconfig -force -verbose
  1. Open two windows, one dd the npohasd, and the other executes root.sh.
~]# while true; do if test -e /var/tmp/.oracle/npohasd; then echo exist; dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1; else echo noexist; sleep 1; fi; done
~]# $<GRID_HOME>/root.sh
  1. After installing GI, create the ohas.service service to enable CRS to start automatically when the server restarts
~]# cat > /etc/systemd/system/oracle-ohasd.service << EOF
# Oracle OHASD startup

[Unit]
Description=Oracle High Availability Services
After=syslog.target

[Service]
ExecStart=/etc/init.d/init.ohasd run > /dev/null 2>&1 < /dev/null
Type=simple
Restart=always

[Install]
WantedBy=multi-user.target
EOF

~]# systemctl daemon-reload
~]# systemctl enable oracle-ohasd.service --now