Oracle Database 19c is certified on RHEL 9 starting with RU 19.19 and later. But while installing Oracle 19.28, encountered the misleading INS-30060 – Check for group existence failed error.
TL;DR: The error suggested a group existence problem, but the real culprit was how /tmp was mounted.
Symptomps
During installation on RHEL 9.6
- Running without RU returned INS-30060 – Check for group existence failed immediately.
- Running the installer with RU caused the process to hang.
$ cat /etc/system-release
Red Hat Enterprise Linux release 9.6 (Plow)
## With RU
$ ./runInstaller -silent -ignorePrereqFailure -responseFile /u01/stage/db_install.rsp -printtime -waitForCompletion -applyRU /u01/stage/37960098
## Without RU
$ ./runInstaller -silent -ignorePrereqFailure -responseFile /u01/stage/db_install.rsp -printtime -waitForCompletion
[FATAL] [INS-30060] Check for group existence failed.
CAUSE: Unexpected error occurred while trying to check for group existence.
ACTION: Refer to the logs or contact Oracle Support Services. Note for advanced users: Launch the installer by passing the following flag '-ignoreInternalDriverError'.
Investigating further
Digging deeper into the log files installActions*.log, the error message continues to indicate Internal error while validating the group.
However, system groups and directory ownership were configured correctly. So what was really happening?
INFO: [Sep 12, 2025 8:50:50 PM] failed to check the groups on the local node.
Refer associated stacktrace #oracle.install.library.util.MachineInfo:6431
SEVERE: [Sep 12, 2025 8:50:50 PM] [FATAL] [INS-30060] Check for group existence failed.
CAUSE: Unexpected error occurred while trying to check for group existence.
ACTION: Refer to the logs or contact Oracle Support Services. Note for advanced users: Launch the installer by passing the following flag '-ignoreInternalDriverError'..
Refer associated stacktrace #oracle.install.commons.util.exception.AbstractErrorAdvisor:6437
INFO: [Sep 12, 2025 8:50:50 PM] Advice is ABORT
SEVERE: [Sep 12, 2025 8:50:50 PM] Unconditional Exit
INFO: [Sep 12, 2025 8:50:50 PM] Adding ExitStatus FAILURE to the exit status set
INFO: [Sep 12, 2025 8:50:50 PM] Finding the most appropriate exit status for the current application
INFO: [Sep 12, 2025 8:50:50 PM] The inventory does not exist, but the location of the inventory is known: /u01/app/oraInventory
## Checking the permissions and ownership
$ ls -l /u01/app/oraInventory
$ chown oracle:oinstall $ORACLE_HOME
Actual Cause
Oracle’s installer threw INS-30060 because /tmp was mounted with noexec flag. With this setting, OUI, CVU, and opatch could not execute helper scripts staged in /tmp. This caused abrupt exits, misleading prerequisite errors, and RU hangs.
Although Oracle’s Note 3075616.1 does not explicitly list this as a known issue, the behavior directly ties back to the noexec setting on /tmp
$ cat /etc/fstab
tmpfs /tmp tmpfs nosuid,nodev,noexec 0 0
Solution
Remount /tmp after removing remove the nosuid, nodev,noexec flags
$ mount -o remount,exec,suid,dev /tmp
$ cat /etc/fstab
tmpfs /tmp tmpfs defaults 0 0
$ mount | grep /tmp
tmpfs on /tmp type tmpfs (rw,relatime,seclabel,inode64)
After this the installation went just fine .
$ ./runInstaller -silent -ignorePrereqFailure -waitforcompletion -printtime -responseFile /u01/stage/db_install.rsp -applyRU /u01/stage/37960098
Preparing the home to patch...
Applying the patch /u01/stage/37960098...
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2025-09-13_03-42-30PM/installerPatchActions_2025-09-13_03-42-30PM.log
[WARNING] [INS-32047] The location (/u01/app/oraInventory) specified for the central inventory is not empty.
ACTION: It is recommended to provide an empty location for the inventory.
[WARNING] [INS-13014] Target environment does not meet some optional requirements.
CAUSE: Some of the optional prerequisites are not met. See logs for details. installActions2025-09-13_03-50-39PM.log
ACTION: Identify the list of failed prerequisite checks from the log: installActions2025-09-13_03-50-39PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
/u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_2025-09-13_03-50-39PM.rsp
You can find the log of this install session at:
/tmp/InstallActions2025-09-13_03-50-39PM/installActions2025-09-13_03-50-39PM.log
As a root user, execute the following script(s):
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes:
[host1]
Execute /u01/app/oracle/product/19.0.0/dbhome_1/root.sh on the following nodes:
[host1]
Successfully Setup Software with warning(s).
Moved the install session logs to:
/u01/app/oraInventory/logs/InstallActions2025-09-13_03-50-39PM
Alternatively, incase you can’t change /tmp permissions then you can always choose an alternate locaiton for TEMP. This is a common workaround in environments enforcing CIS hardening on /tmp.
# Create a dedicated temp dir with exec perms
mkdir -p /u01/app/oracle/tmp
# Export variables ot point to new TEM
oexport TMPDIR=/u01/app/oracle/tmp
export TMP=/u01/app/oracle/tmp
export TEMP=/u01/app/oracle/tmp
export _JAVA_OPTIONS="-Djava.io.tmpdir=/u01/app/oracle/tmp"
Oracle’s installer/patch tools need to create and execute helper scripts in /tmp. With /tmp mounted noexec (and often nosuid,nodev), Java/OUI/opatch can fail in odd ways—everything from “RU hangs” to [FATAL] [INS-30060] Check for group existence failed. As soon as /tmp was remounted with executable permissions, the RU applied and the install completed.
Discover more from oratrails-aish
Subscribe to get the latest posts sent to your email.