直接用-ignorePrereq可跳过所有前置检查,但须以管理员身份在CMD/PowerShell中运行setup.exe -ignorePrereq,且路径不能含中文、空格或特殊字符,否则参数不生效。
oracle 安装程序在启动时默认会校验操作系统版本、内存、磁盘空间等,ins-13001 就是校验失败的通用错误。如果你确认环境实际可用(比如 win10/win11/server 2012r2 装 oracle 11g 或 12c),最省事的方式不是改 xml,而是命令行强制跳过。
进入解压后的 database 目录,以管理员身份运行:
setup.exe -ignorePrereq
这个参数会让安装器完全跳过 cvu_prereq.xml 里定义的所有操作系统和硬件检查,包括 supportedOSCheck。注意:它不跳过 JDK 版本、用户权限等运行时依赖,只绕过“是否被官方认证”的硬性限制。
-ignorePrereq 是 Oracle 11g R2 及以后版本支持的稳定参数,12c 同样适用--ignorePrereq(双横线无效)INS-08109(验证状态 unsupportedOSCheck 失败),这个参数一并解决setup.exe 图形启动有时候你只想关掉操作系统检查,但保留内存、磁盘等其他检查——这时可以用 JVM 参数方式单独关闭 supportedOSCheck:
setup.exe -J"-Doracle.install.db.validate.supportedOSCheck=false"
这个写法本质是向安装器内嵌的 Java 进程传参,-J 后面的内容会被原样塞进 JVM 启动选项。它比 -ignorePrereq 更克制,但要求你准确知道要关哪个检查项名。
supportedOSCheck 不可写成 supportOSCheck 或 osCheck
-J"-Doracle.install.db.validate.supportedOSCheck=false" -J"-Doracle.install.db.validate.memoryCheck=false"
-ignorePrereq
不是参数失效,而是你没在正确的上下文里执行它。常见卡点:
setup.exe,它会另起一个进程,忽略你命令行输的参数INS-32035)C:我的软件databasesetup.exe,会导致 JVM 参数解析失败setup.exe,但系统是 64 位,且未安装 32 位 VC++ 运行库(此时先报 DLL 缺失,根本到不了参数解析阶段)验证是否真正触发:启动后观察日志。安装器会在临时目录生成 oraInstall<timestamp>.out,里面如果出现 Prerequisite checks disabled by user request,说明参数已生效。
INS-13001 经常和 INS-35180(内存检查失败)、INS-08109(验证状态异常)一起出现,根源未必是系统版本。很多“改完 XML 还不行”的案例,其实是下面两个隐藏条件没满足:
WIN10-DB,不能是 张三的电脑 或 PC_测试
D:oracle11gdatabase 这样的路径setup.exe
这些不是“可选优化”,而是 Oracle 安装器底层解析逻辑的真实限制。即使你用 -ignorePrereq 强行跳过 INS-13001,后续步骤仍可能因主机名或路径非法而中断。