> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ocient.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Checking System Configuration Before Bootstrapping

export const Ocient = "Ocient®";

The `precheck` command helps capture critical node health states and metrics before bootstrapping your {Ocient} installation.

You can run the command as shown in this example. The flags included after the `precheck` command are optional. See [Optional Flags for Command Execution](#optional-flags-for-command-execution) for descriptions.

```shell Shell theme={null}
$ sudo precheck --print-level verbose --node-type metadata --logfile-location /home/admin
```

The command invokes a script from the command line on operating systems supported by Ocient. The script sends output to standard output (STDOUT) and standard error (STDERR). To specify the file option, use this flag: `--logfile-location <directory>` where `<directory>` is the directory where the `precheck` command creates the log file. Critically, this script captures information about huge page configuration.

## Optional Flags for Command Execution

Use the `precheck` command to run the script that checks the system configuration. You can execute the command using the optional flags shown in this table.

| **Flag Name**           | **Values**                                   | **Default**                             | **Description**                                                                                                                                                                                    | **Example**                                                                                                                                                                                |
| ----------------------- | -------------------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| --logfile-location      | Non-empty string                             | `/var/opt/ocient/log`                   | Name of the directory that contains the log file created from the execution of the script.                                                                                                         | `--logfile-location /user/query/logs` generates a log file in the `/user/query/logs` directory. If this directory does not exist, the command issues a warning.                            |
| --print-level           | verbose or silent                            | verbose                                 | Denotes the level of detail in the output. See the “Outputs” section.                                                                                                                              | `--print-level verbose` provides a detailed report with information about the checks that Ocient performs. --print\_level silent provides the overall status from the check of the system. |
| --node-type             | metadata, lts, streamloader, sql, or unknown | unknown                                 | Denotes the current node type. If you do not specify this setting, the script tries to infer node type based on metrics it collects.                                                               | `--node-type lts` runs checks with values and constraints that pertain to an `lts` node.                                                                                                   |
| --timeout               | Any integer                                  | 3                                       | Denotes the default timeout (in seconds) to run any command-line command in the script. In most cases, the default is enough, so you do not need to specify this setting.                          | `--timeout 4` runs checks with a timeout of 4 seconds for each command.                                                                                                                    |
| --nvme-driver-util-path | Non-empty string                             | /opt/ocient/scripts/nvme-driver-util.sh | Path to `nvme-driver-util` script that the precheck script uses. The default value is the location of the script on most installations, so in most cases, you do not need to specify this setting. | `--nvme-driver-util-path /opt/ocient/test_dir/nvme-driver-util.sh` uses `/opt/ocient/test_dir/nvme-driver-util.sh` as the path to the utility script.                                      |
| --json                  | Not applicable                               | False                                   | If you specify the `--json` flag, the command prints output in JSON format to STDOUT. If you do not specify this flag, the command prints human-readable output to STDOUT.                         | `--json` prints output in JSON format to STDOUT.                                                                                                                                           |

## Command Output

The command has two types of output, silent or verbose, which you can specify by using the `--print-level` flag at the command line.

**Silent**

The `silent` value for the `--print-level` flag only produces a status code. The code is 0 for success, 1 for error, and 2 for warning.

**Verbose**

The `verbose` value for the `--print-level` flag prints either human-readable output by default or output in JSON format (if you specify the `--json` flag). The output contains all status details.

This example shows human-readable output.

```Text Text theme={null}
Warnings:
- isolcpus not configured - recommended for performance.
- No eligible NVMe payload drives found for node.
- bootstrap.conf file does not exist. Create a file at /var/opt/ocient/bootstrap.conf with the correct bootstrapping settings. If this is the initial node in the system set "initialSystem: true" in the bootstrap.conf file. If this is not the initial node, use the "adminHost" setting to specify the address of the initial node. To add custom settings, follow the instructions in Bootstrapping and Ocient System in the User Documentation.
- SELinux is enabled. This might prevent Ocient from functioning properly. Please disable or set to permissive mode.

Memory - OK
======
ramconfig - SUCCESS: RAM configuration is adequate.

Firmware and Hardware - ERROR
====================
nonbootdrives - WARNING: No eligible NVMe payload drives found for node
...
```

This example shows output in JSON format.

```json JSON theme={null}
{"status": 1,
  "components": {
    "enforce_status": {
      "status": 2,
      "message": "WARNING: SELinux is enabled. This might prevent Ocient from functioning properly. Please disable or set to permissive mode"
    }
    "bootstrap": {
      "status": 2,
      "message": "WARNING: bootstrap.conf file does not exist. Create a file at /var/opt/ocient/bootstrap.conf with the correct bootstrapping settings. If this is the initial node in the system set "initialSystem: true" in the bootstrap.conf file. If this is not the initial node, use the "adminHost" setting to specify the address of the initial node. To add custom settings, follow the instructions in Bootstrapping and Ocient System in the User Documentation."
    }
    ...
  }
}
```

## Related Links

[Ocient System Bootstrapping](/ocient-system-bootstrapping)

[Ocient Application Configuration](/ocient-application-configuration)
