OUI启动卡在“正在初始化”界面主因是/tmp空间不足、Java版本不匹配或DISPLAY配置错误。需检查df -h /tmp、java -version及echo $DISPLAY,三者可排查八成问题。
Oracle OUI 启动卡在“正在初始化”界面
这是典型环境准备不足导致的假死,不是安装包损坏。oui(oracle universal installer)本质是 java 应用,启动时会解压临时资源、加载 jvm、扫描系统参数——任一环节卡住都会表现为无响应。
常见错误现象:Starting Oracle Universal Installer... 之后光标静止超过 2 分钟;进程列表里有 java 进程但 CPU 占用接近 0;strace -p 跟踪显示卡在 openat(AT_FDCWD, "/tmp/OraInstall...", ...)。
- 检查
/tmp所在文件系统剩余空间:OUI 解压临时 JAR 和 native 库需至少 1.5GB,df -h /tmp必须确认 - 确认
/tmp未挂载为noexec或nosuid:OUI 需要在该目录下执行临时二进制,mount | grep "$(df /tmp | tail -1 | awk '{print $1}')查看选项 - 临时切换 OUI 工作目录:启动前设
export TMPDIR=/path/to/large/writable/dir(确保该路径可执行、有写权限),再运行./runInstaller
Java 版本不匹配导致 OUI 无法进入主界面
OUI 对 JDK 版本极其敏感。19c 及以后版本强制要求 JDK 8u191+ 或 JDK 11(具体看补丁号),但 Oracle 安装介质自带 JRE,它只在找不到系统 JDK 时才启用——而这个“查找逻辑”容易误判。
使用场景:你系统装了 JDK 17,OUI 却报错退出或闪退;或者手动指定 -jreLoc 后仍卡在加载 splash 屏。
- 不要依赖系统 PATH 中的
java:OUI 会读取$ORACLE_HOME/jdk/bin/java(若存在)或/usr/java/latest/bin/java,优先级高于 PATH - 验证实际被调用的 Java:
strace -e trace=execve ./runInstaller 2>&1 | grep java,看最后执行的是哪个路径 - 强制指定已知可用的 JDK:
./runInstaller -jreLoc /opt/java/jdk1.8.0_202/jre(注意路径必须指向jre/目录,不是jdk/) - 避免 JDK 11+ 的 TLS 协议问题:OUI 内置的 HTTP 客户端可能因 TLSv1.3 默认启用而连不上 Oracle 更新服务器,加参数
-J-Dhttps.protocols=TLSv1.2
DISPLAY 环境变量与 X11 转发配置失效
即使你在本地桌面运行 OUI,也可能因 DISPLAY 设置错误或 X11 权限缺失而卡在初始化阶段——此时日志里通常没有明显报错,但 ps aux | grep X 会发现 Xorg 进程异常或缺失。
立即学习“Java免费学习笔记(深入)”;
常见错误现象:Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment;或直接黑屏后退出。
- 确认
DISPLAY值正确:echo $DISPLAY应为:0(本地)或localhost:10.0(SSH 转发),不能是空或unix:0 - 检查 X11 转发是否启用:SSH 登录时用
ssh -X user@host,且服务端/etc/ssh/sshd_config中X11Forwarding yes已生效 - 授权当前用户访问 X server:
xhost +si:localuser:$USER(临时方案,生产环境慎用) - 如纯命令行环境,可用静默模式绕过 GUI:
./runInstaller -silent -responseFile /path/to/rsp,但需提前准备好响应文件
OUI 日志中反复出现 ORA-27123: unable to attach to shared memory segment
这不是 OUI 自身的问题,而是它在启动过程中尝试调用 Oracle 已安装实例的 sqlplus 或检查 ORACLE_HOME 时触发的权限失败。尤其当目标机器上残留旧实例、或 /dev/shm 权限异常时高频出现。
性能影响:每次失败会重试 3 次,每次间隔数秒,累积延迟可达 30 秒以上,表现为“卡顿”。
- 临时清空环境干扰:
unset ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH再启动 OUI - 检查
/dev/shm挂载参数:mount | grep shm,应含size=4G且非noexec - 若必须保留旧实例,改用非默认端口启动 OUI:
./runInstaller -executeSysPrereqs -ignorePrereq -waitForCompletion跳过系统预检中的内存段校验
临时目录空间和 Java 环境这两块最容易被当成“小问题”跳过,结果花半天查网络或权限。真正卡住的时候,先看 /tmp 剩多少、java -version 是谁家的、$DISPLAY 指向哪——三个命令就能筛掉八成情况。










