public static String checkAvailable(String path) {
        if (!DirectIOLib.binit) {
            return "O_DIRECT not supported";
        }
        if (!DirectIOUtils.allocatorAvailable()) {
            return "java.nio.DirectByteBuffer.<init>(long, int) not available." +
                " Add --add-opens=java.base/java.nio=ALL-UNNAMED and -Dio.netty.tryReflectionSetAccessible=true to JVM options may fix this.";
        }
        if (!isBlockDevice(path)) {
            String reason = tryOpenFileWithDirectIO(String.format(CHECK_DIRECT_IO_AVAILABLE_FORMAT, path));
            if (null != reason) {
                return "O_DIRECT not supported by the file system, path: " + path + ", reason: " + reason;
            }
        }
        return null;
    }
Check whether the {@link WALBlockDeviceChannel} is available for the given path.

@return null if available, otherwise the reason why it's not available
s3stream/src/main/java/com/automq/stream/s3/wal/util/WALBlockDeviceChannel.java