WDCKit Users Guide

Download as pdf or txt
Download as pdf or txt
You are on page 1of 167

Installation / User Guide

WDCKit_Users_Guide.pdf
Western Digital Corporation

Customer Tools Team

January 2024

Product Scope
Overview
wdckit is a command line utility to perform various operations on one or more supported devices.
Any of the wdckit commands may be executed as a one time command from the terminal or from
within the interactive session. From the interactive sessions, enter ‘h’ for help or ‘q’ to quit.
Windows: Administrative privilege is required to execute the tool. Linux: Root authority is required
to execute the tool.

Features
Command Description
Gets contents of AHCI Configuration Registers
ahci
Adjust OverProvisioning (AOP) of the device
aop
Check, clear or force a device asserts
assert
This command is used to set, disable, freeze or unlock ATA
security using User or Master password with High or Maximum
atasecurity
security for ATA devices

Send vendor unique command for debugging operations for


debug supported NVMe devices

Add a device to the list of do not operate devices


do-not-operate
This issues a secure erases, a trim of all user data or a sanitize
erase command the device

List some or all application status codes and messages


errors
Command Description
Show the End User License Agreement (EULA)
eula
Performs a format on a SCSI/ATA or NVMe device
format
Performs a file system flush on device
fsflush
Retrieves the vendor specific DUI (Device Unit Information) log
getdui from supported devices

Retrieves the vendor specific Eye Diagram (Eye Surf) log from
geteyediagram supported devices

Gets the various fields along with their values related to features
getfeature on the device

This command retrieves logs from ATA, NVMe and SCSI devices
getlog
Retrieves the vendor specific PE (Program Erase) log from
getpe supported NVMe devices

Retrieves and parses the Persistent Event Log (dh) from


getpersistentevent supported NVMe devices

Retrieves the SMART data and the SMART status with SMART
getsmart trip parameter, if any, from the device

Retrieves the vendor specific SMR data from supported WDC


getsmr devices

Displays help information about wdckit commands


help
Display Host Memory Buffer support for an NVMe device
hmb
Retrieves the Identify data of the ATA or NVMe device or Inquiry
idd data for SCSI devices

Dump logs from specified devices


logdump
Send a namespace attachment command to attach a namepace
ns-attach to a controller identifier(s)

Send a namespace management command to create a


ns-create namespace for an NVMe device

Send a namespace management command to delete a


ns-delete namespace for an NVMe device
Command Description
Send a namespace attachment command to detach a namepace
ns-detach from a controller identifier(s)

Send vendor unique command to modify namespace size for


nsze NVMe devices

Displays or sets power management APST state (PMAS) for


power NVMe devices

Exit the CLI


quit
Performs RDP (repurpose depopulation) on a SCSI or ATA
rdp device

Perform a reset for supported devices and OS drivers


reset
Show, enable or disable SAS PHY power management (partial &
sasphypower slumber)

Performs the various security related features on the device


security
Performs the various security profile related features on the ATA
securityprofile device

Runs the short or extended test on the device(s) specified by the


selftest user

Send vendor unique command to modify the resource server


serverconfig configuration on supported NVMe devices

Sets the specified feature value for NVMe devices


setfeature
Configures the settings for the host controlled thermal
sethctmtemps management feature on the NVMe device

Sets the Light and Heavy Throttling Temperature on the NVMe


setthrottlingtemp device

List the details like serial number, capacity, state, geometry


information, protection information, progress information,
show
version, statistics, etc

Puts the ATA device in standby mode


standby
Updates the device firmware with new firmware on the specified
update device

Displays version information


version
Command Description
This command is used to write a log page to the ATA device
writelog
Perform various ZNS operations and show ZNS reports
zns
Perform various Zoned ATA/Block Commands (ZAC/ZBC)
zone

Supported Products
Product Family Interface
All WDC, HGST, and SanDisk drives from 2017 and newer SATA/SAS/NVMe/NVMeoF

RAID version Supported Controllers


Vendor Family
Microsemi PMC & Adaptec SATA + SAS RAID Controllers
Broadcom MegaRAID SATA + SAS + NVMe 9xxx Controllers

The RAID version is only available in 64-bit x86 Linux, 64-bit ARM Linux, 32-bit x86 Windows
and 64-bit x86 Windows. Use the RAID version for NVMe devices connected to a Broadcom
controller.

Supported Operating Systems


wdckit only supports the kernels that are supplied with the operating systems distributed by the
Operating Systems vendors. If the user should compile any other kernel versions into the operating
systems, then the configuration shall not be considered officially supported by wdckit. Some devices
may not be fully supported in older OS’s.

32-bit 64-bit
Operating System Version 64-bit ARM
x86 x86
Red Hat Enterprise Linux 6.7, 6.8, 6.9\7.1, 7.2, 7.3,
X X
(RHEL) 7.4, 8.0
Ubuntu 16.04, 18.04, 20.04 X X
CentOS 7, 8 X X
SUSE Linux Enterprise
15 X
Server
Windows Windows 8, 8.1, 10, 11 X X
Windows Server 2016, 2019, 2022 X
FreeBSD 11, 12 X
Supported Drivers
Prerequisite Description
Drivers provided by vendors of Host Bus Adapters and
HBA and RAID controller Drivers
RAID controllers.

Installation
Overview
This section addresses issues regarding the compatibility, system requirements, installation and
configuration of wdckit.

Installation Packages
wdckit installers are available for a variety of platforms. It is the responsibility of the user to be
knowledgeable of the specific platform on which wdckit will be installed. An authorized
representative will e-mail the desired version of wdckit to the user. The packages must be unpacked
in a default directory or a temporary directory.

Installation Package Description


wdckit-<version>.<arch>.rpm For RHEL-based Linux platforms
For RHEL-based Linux platforms (RAID
wdckit-raid-<version>.<arch>.rpm
SAS/SATA)
wdckit_<version>_<arch>.deb For Debian-based Linux platforms
For Debian-based Linux platforms (RAID
wdckit-raid_<version>_<arch>.deb
SAS/SATA)
Standalone instance for Linux/FreeBSD
wdckit-<version>-<arch>.tar.gz
platforms
Standalone instance for Linux platforms
wdckit-raid-<version>-<arch>.tar.gz
(RAID SAS/SATA)
wdckit-<version>.<arch>.exe Installer for Windows platforms
Installer for Windows platforms (RAID
wdckit-raid-<version>.<arch>.exe
SAS/SATA)
Standalone instance for Windows
wdckit-<version>.<arch>.zip
platforms
Standalone instance for Windows
wdckit-raid-<version>.<arch>.zip
platforms (RAID SAS/SATA)

User Privileges
Prerequisite Description
Linux Distributions root authority is required
Prerequisite Description
FreeBSD Distributions root authority is required
Windows Distributions Administrator authority is required

Linux or FreeBSD TAR Installation


To install the TAR package(s):

1. Create a temporary installation folder or directory.

2. Please review installation packages above to determine whether to use the non-RAID or
RAID version of wdckit.

3. Download the wdckit TAR file to the temporary installation folder or directory.

4. Open a terminal window and change directories to the temporary installation folder or
directory.

5. Use the tar command to install the tarball, e.g.,

tar -zxvf <wdckit TAR file name>

• Use of wdckit after this installation will be from this directory with

./wdckit

Upgrade Procedure

To upgrade wdckit:

1. Logon to the system with root privileges.

2. Delete the directory with the old wdckit install

3. Create a directory for installation and download the most recent wdckit release (TAR).

4. Please review installation packages above to determine whether to use the non-RAID or
RAID version of wdckit.

5. Open a terminal in the installation directory.

6. Use the tar command to install the new wdckit tarball, e.g.,

tar -zxvf <wdckit TAR file name>

Uninstall Procedure

To uninstall wdckit:

1. Logon to the system with root privileges.


2. Delete the temporary installation folder contents.

rm -rf <wdckit folder>

Linux RPM Installation or Upgrade


To install or upgrade the RPM package(s):

1. Create a temporary installation folder or directory.

2. Please review installation packages above to determine whether to use the non-RAID or
RAID version of wdckit.

3. Extract the wdckit installable (RPM) file to the temporary installation folder or directory.

4. Open a terminal window and change directories to the temporary installation folder or
directory.

5. Use the rpm command to install the RPM file, e.g.,

sudo rpm -Uvh <wdckit RPM file name>

Uninstall Procedure

To uninstall wdckit:

1. Open a terminal window or console.

2. Non-raid version (note, no .rpm):

sudo rpm -e wdckit-<version>.<arch>

Raid version (note, no .rpm):

sudo rpm -e wdckit-raid-<version>.<arch>

Linux DEB Installation or Upgrade


To install or upgrade the DEB package(s):

1. Create a temporary installation folder or directory.

2. Please review installation packages above to determine whether to use the non-RAID or
RAID version of wdckit.

3. Download the wdckit installable (DEB) file to the temporary installation folder or directory.

4. Open a terminal window and change directories to the temporary installation folder or
directory.
5. Use the dpkg command to install the DEB file, e.g.,

sudo dpkg -i <wdckit DEB file name>

Uninstall Procedure

To uninstall wdckit:

1. Logon to the system with root privileges.

2. Open a terminal window or console.

3. Non-raid version, run

sudo dpkg -r wdckit

Raid version, run:

sudo dpkg -r wdckit-raid

Windows Installation
Please review installation packages above to determine whether to use the non-RAID or RAID
version of wdckit.

Double click on the installation executable file.

1. Click “Yes” on allow User Control Access if prompted.


2. The wdckit Setup wizard will launch, click “Next”
3. Click on “I agree” to the License Agreement
4. Choose an install location or accept the default path, click “Next”
5. Choose any Start Menu or short cut folder options, click “Install”
6. Click “Finish” when complete

To Launch wdckit – Open a command prompt terminal with administrator privileges (Run as
administrator). Change directory to the wdckit install directory specified on step 4 above. Execute
wdckit by typing the following command:

.\wdckit

Uninstall Procedure

To uninstall wdckit:

1. Navigate to the install directory under Program Files


2. Double click on the Uninstall wizard in the wdckit folder
3. Click “Yes” on allow User Control Access if prompted
4. Click “Uninstall” on the wdckit Uninstall wizard
End User License Agreement Acceptance
The Windows installer will display an End User License Agreement (EULA). For all other
packages, when wdckit is run for the first time, it will prompt the user to accept the EULA.

In Windows (when installed via the zip package), the EULA will begin to fill the screen and the
bottom will show:

– More (%) –

This table is a summary of several options to scroll through the EULA.

In Linux/FreeBSD, the screen will show

Read the end user license agreement. [enter]:

After pressing ENTER, the EULA will begin to fill the screen and the bottom will show:

–More–[Press space to continue, ‘q’ to quit.]

Please use the following keys to scroll through the EULA:

Key Action
SPACEBAR Press the SPACEBAR to display the next screen.
ENTER Press ENTER to display the file one line at a time.
q Press Q to finish reading.
= Shows the line number.
p <n> Press P to display the next n lines.
s <n> Press S to skip the next n lines.
? Press ? to show the commands that are available at the more prompt.

After reading the EULA, it will confirm acceptance of the EULA. If you do not, wdckit will quit.
After the EULA has been accepted, it will be saved until the the application is removed.

Also, an environment variable may be set to accept the EULA.

Linux/FreeBSD: export WDC_LICENSE_ACCEPTED=1

Windows: set WDC_LICENSE_ACCEPTED=1

Once wdckit has run with the environment variable confirmation, wdckit will remember the EULA
has been accepted and will continue to run without asking for the EULA acceptance until the
application is updated or removed.
Command Line Interface
Overview
To use wdckit on any PC or server, you can run it using the standalone Command Line Interface.
This section explains the usage and capabilities of the CLI and provides basic and advanced device
diagnostic functions.

Command Execution
The syntax for command execution is consistent across the various platforms. In this section, the
commands are presented in the platform neutral form of wdckit. The user should have a practical
knowledge of navigating the command line interface for the specific system platform.

Command Syntax
The commands and options use the same syntax across the platforms. The spaces or delimiters are
taken literally, while the brackets are ignored: wdckit <command> <flags>

Command ahci
Description Gets contents of AHCI Configuration Registers.
Restriction
(s)
This task is only valid in Linux.
This task is only valid for SATA targets.
This task is only valid for WDC targets.
Usage
ahci [<devList> …|--model <model number> …|--serial <serial number> …]
[--trace|--trace-with-scan|--no-trace] [-R <filename>] [--no-win-disk] [--no-
win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-
wdckit
amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-
nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag
<flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
OPTIONAL
<devList> (accepted multiple times)
Device name(s) to execute ahci command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
Command ahci
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
Command ahci
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit ahci

-Gets contents of AHCI Configuration Registers.


wdckit ahci -R ahci.txt

-Redirects the contents of AHCI Configuration Registers to ahci.txt.

Command aop
Adjust OverProvisioning (AOP) of the device. NOTE: Per the ATA
Description
specification, a power cycle shall be required between each AOP change.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task is only valid for SATA targets.
This task is only valid for ATA devices that support 48-bit LBAs.
Usage
aop <<devList> …|--model <model number> …|--serial <serial number> …
> <-g|-s <new max lba>|-r> [--trace|--trace-with-scan|--no-trace] [-f] [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
wdckit csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--
no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-
ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute aop command.
–OR–
Command aop
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-g, --get
Gets the actual user addressable max LBA.
–OR–
-s <new max lba>, --set <new max lba>
Sets the user addressable max LBA to a new supported.
–OR–
-r, --reset
Resets the user addressable max LBA to actual value.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-f, --force
Force the overprovisioning without asking for user confirmation. Valid for
only the set or reset option.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
Command aop
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit aop disk0 disk1 disk2 -g -R aop.txt

-Gets the actual user addressable max LBA for disk0, disk1 and disk2 and
redirects the output to file aop.txt

wdckit aop /dev/sda /dev/sdb /dev/sdc -g -R aop.txt

-Gets the actual user addressable max LBA for /dev/sda, /dev/sdb and /
dev/sdc and redirects the output to file aop.txt
Command aop
wdckit aop disk0 -s 117220823 -f

-Sets the user addressable max LBA value for disk0 to 117220823 (with
force) i.e. without prompting for confirmation.

wdckit aop /dev/sda -s 117220823 -f

-Sets the user addressable max LBA value for /dev/sda to 117220823 (with
force) i.e. without prompting for confirmation.
wdckit aop all -r

-Resets the user addressable max LBA to their actual or original value for
all drives.

Command assert
Description Check, clear or force a device asserts.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for WD or HGST targets.
Usage
assert <<devList> …|--model <model number> …|--serial <serial number>
…> <-g|-c> [--trace|--trace-with-scan|--no-trace] [-f] [-m] [--nsid <value>] [-
R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-
wdckit win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi]
[--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--
no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute assert command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-g, --get
Check for device asserts.
–OR–
-c, --clear
Clear device assert.
OPTIONAL
Command assert
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-f, --force
Send a clear device assert command even if an assert is not present.
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
Command assert
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit assert disk0 -g

-This will check for device asserts on ‘disk0’.

wdckit assert /dev/nvme0 -g

-This will check for device asserts on ‘/dev/nvme0’.


wdckit assert disk0 -c

-This will clear device asserts on ‘disk0’ if and only if an assert is present.

wdckit assert /dev/nvme0 -c

-This will clear device asserts on ‘/dev/nvme0’ if and only if an assert is


present.
wdckit assert disk0 -c -f

-This will clear device asserts on ‘disk0’ even if an assert is not present.

wdckit assert /dev/nvme0 -c -f

-This will clear device asserts on ‘/dev/nvme0’ even if an assert is not


present.
Command atasecurity
This command is used to set, disable, freeze or unlock ATA security using
User or Master password with High or Maximum security for ATA devices.
Description NOTE: Many modern BIOSes will issue an ATA security freeze lock which
blocks all subsequent ATA security commands until the next power cycle.
Use ‘idd’ to confirm. The security frozen is reported at word 128, bit 3.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for SATA targets.
This task is only valid for WDC targets.
Usage
atasecurity <<devList> …|--model <model number> …|--serial <serial
number> …> <-s|-d|-f|-U> [-u|-m] [-H|-M] [--trace|--trace-with-scan|--no-
trace] [-P <password>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--
wdckit no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-
win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-
cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-
level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute atasecurity command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-s, --set
This option is used to enable ATA security by setting the User password or
Master password.
–OR–
-d, --disable
This option is used to disable ATA security by using the User or Master
password.
–OR–
-f, --freeze
This option is used to freeze all changes to ATA security options on the
drive.
–OR–
-U, --unlock
This option is used to unlock a security locked drive on which ATA security
is enabled.
OPTIONAL
Command atasecurity
-u, --userpassword
This option is used if User Password is provided in the --password option
to set, disable or unlock ATA security.
–OR–
-m, --masterpassword
This option is used if Master Password is provided in the --password option
to set, disable or unlock ATA security.
-H, --high
This option is used to set Security Mode to High when setting the User
password.
–OR–
-M, --maximum
This option is used to set Security Mode to Maximum when setting the
User password.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-P <password>, --password <password>
This option is used for providing the password string.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
Command atasecurity
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit atasecurity disk0 -m -s -P password

-Set Master password.

wdckit atasecurity /dev/sda -m -s -P password

-Set Master password.


wdckit atasecurity disk0 -u -H -s -P password

-Set User password with High Security Mode.

wdckit atasecurity /dev/sda -u -H -s -P password

-Set User password with High Security Mode.


Command atasecurity
wdckit atasecurity disk0 -u -d -P password

-Disable security using User password.

wdckit atasecurity /dev/sda -u -d -P password

-Disable security using User password.


wdckit atasecurity disk0 -m -d -P password

-Disable security using Master password.

wdckit atasecurity /dev/sda -m -d -P password

-Disable security using Master password.

Command debug
Send vendor unique command for debugging operations for supported
Description
NVMe devices.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for SanDisk targets.
Usage
debug <<devList> …|--model <model number> …|--serial <serial number>
…> <-k <value>|-p <file>> [--trace|--trace-with-scan|--no-trace] -f <value> [-
R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-
wdckit win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi]
[--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--
no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute debug command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-k <value>, --key <value>
Private key code required for FW to accept this command.
–OR–
-p <file>, --payload <file>
Private file containing 4-byte aligned data (maximum of 512 bytes).
Command debug
-f <value>, --flag <value>
Value for the general flag.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
Command debug
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit debug disk0 -f 10 -k <code>

-Send the VU debug command 10 to the device ‘disk0’.

wdckit debug /dev/nvme0 -f 10 -k <code>

-Send the VU debug command 10 to the device ‘/dev/nvme0’.


wdckit debug disk0 -f FFFFh -k <code>

-Send the VU debug command FFFFh to the device ‘disk0’.

wdckit debug /dev/nvme0 -f FFFFh -k <code>

-Send the VU debug command FFFFh to the device ‘/dev/nvme0’.

Command do-not-operate
Description Add a device to the list of do not operate devices.
Usage
do-not-operate <-s <serial number> …|-d|-c> [--trace|--trace-with-scan|--
no-trace] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-
scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-
wdckit
linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-
nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|
error|info|debug|cmd-debug>] [-h]
REQUIRED
Command do-not-operate
-s <serial number>, --serial <serial number> (accepted multiple times)
Add this device to the Do Not Operate list.
–OR–
-d, --display
Print a list of all devices from the Do Not Operate list.
–OR–
-c, --clear
Clear all devices from the Do Not Operate list.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
Command do-not-operate
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit do-not-operate -s “TEST ABC123”

-Add serial number ‘TEST ABC123’ to the do not operate devices list.
wdckit do-not-operate -d

-Print the list of do not operated devices.


wdckit do-not-operate -c

-Clear the list of do not operated devices.

Command erase
This issues a secure erases, a trim of all user data or a sanitize command
the device. Since this is a destructive operation, by default, this tool
Description prompts for user confirmation before execution of this operation. To force
the operation, use -f (–force). Note: For Windows with the NVMe inbox
driver, erase via Sanitize must be run from Windows PE.
Restriction
(s)
This task is only valid for an actual target.
This task is not allowed on a boot device.
Command erase
This task is only valid for non-RAID devices.
This task is only valid for WDC targets.
Usage
erase <<devList> …|--model <model number> …|--serial <serial number>
…> [-n|-e|-t|-B|-o <pattern>|-F <filename>|-c|-x|--table|-p|-s] [--progress-
bar|--simple-progress|--no-progress] [--trace|--trace-with-scan|--no-trace] [-
b] [-l <1|2|3|4>] [-C <1-31>] [-i] [--nsid <value>] [-f] [--no-sanitize-status] [-R
wdckit <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--
no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-
ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute erase command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-n, --normal
Performs a normal Security Erase operation on the device list. Supported
on only ATA devices.
–OR–
-e, --enhanced
Performs an enhanced Security Erase operation on the device list.
Supported on only ATA devices.
–OR–
-t, --trim
Performs a trim operation from LBA 0 to the Maximum User Addressable
LBA on the device list.
–OR–
-B, --blockerase
Performs a Sanitize Block Erase operation on the device list.
–OR–
-o <pattern>, --overwrite <pattern>
Performs a Sanitize Overwrite operation on the device list. The pattern is
this 32-bit value. To specify length of pattern in bytes, use -l|--length.
–OR–
-F <filename>, --file <filename>
Performs a Sanitize Overwrite operation on the device list. The pattern
source is from this file.
–OR–
-c, --crypto
Performs a Sanitize Crypto Scramble operation on the device list.
Command erase
–OR–
-x, --exit-failure-mode
Performs a Sanitize Exit Failure Mode operation on the device list (NVMe &
SCSI only) or clear sanitize errors (ATA only).
–OR–
--table
Erase the device partition table.
–OR–
-p, --progress
Query the progress of an erase operation.
–OR–
-s, --show-support
Show the erase methods that are supported on the device. No erase shall
be performed.
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
–OR–
--no-progress
No progress display.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-b, --blocked
For a Sanitize operation, waits for the operation to complete.
-l <1|2|3|4>, --length <1|2|3|4>
Specify the length of the pattern (1-4) in bytes. This argument is only valid
for -o|--overwrite. Default value is 4.
-C <1-31>, --overwrite-count <1-31>
Specify the number of Sanitize Overwrite passes to be perform. This
argument is only valid with -o|--overwrite or -F|--file. Default value is 1.
-i, --invert
Specify that the pattern shall be inverted after every pass. This argument is
only valid with -o|--overwrite or -F|--file.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
Command erase
-f, --force
Force the erase operation without asking for user confirmation.
--no-sanitize-status
Do not check ATA sanitize status, which on some systems, may not operate
correctly.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
Command erase
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit erase disk0 -o 0xAABB

-Initiates overwrite sanitize operation with pattern AABB on device ‘disk0’.

wdckit erase /dev/sda -o 0xAABB

-Initiates overwrite sanitize operation with pattern AABB on device ‘/dev/


sda’.
wdckit erase disk0 -B -f

-Forcefully initiates blockerase sanitize operation on device ‘disk0’.

wdckit erase /dev/sda -B -f

-Forcefully initiates blockerase sanitize operation on device ‘/dev/sda’.


wdckit erase disk0 disk1 --crypto --blocked

-Initiates cryptoscramble sanitize operation on devices ‘disk0’ and ‘disk1’.


CLI will be blocked until erase completes.

wdckit erase /dev/sda /dev/sdb --crypto --blocked

-Initiates cryptoscramble sanitize operation on devices ‘/dev/sda’ and ‘/dev/


sdb’. CLI will be blocked until erase completes.
wdckit erase all --enhanced --nobanner --force

-Forcefully initiates enhanced secure erase operation on all the supported


devices and banner will be suppressed.
wdckit erase disk0 disk1 -p

-Shows the progress of erase operation on devices ‘disk0’ and ‘disk1’ once,
if any.

wdckit erase /dev/sda /dev/sdb -p

-Shows the progress of erase operation on devices ‘/dev/sda’ and ‘/dev/


sdb’ once, if any.
Command errors
Description List some or all application status codes and messages.
Usage
errors [<error-code> …] [-n|-s|-c|-r <error,exit> …] [--trace|--trace-with-
scan|--no-trace] [-e <exit code>] [-S] [-R <filename>] [--no-win-disk] [--no-
win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-
wdckit
amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-
nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag
bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
OPTIONAL
<error-code> (accepted multiple times)
Show message for this error code.
-n, --nvme
Show an NVMe status command type/status command code. This error-
code is a 12-bit value, where SCT = bits 11:8 and SC = bits 7:0.
–OR–
-s, --status-field
Show value as NVMe status field (SF). This error-code is expected to be a
16-bit value.
–OR–
-c, --clear
Clear all exit codes overrides (IE reset to default).
–OR–
-r <error,exit>, --replace <error,exit> (accepted multiple times)
Replace the exit code for the given error code.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-e <exit code>, --exit-code <exit code>
Filter error codes to only this exit code.
-S, --sort-exit-code
Show all application errors, and sort then by the exit code value.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
Command errors
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Command errors
Example(s)
wdckit errors

-List all error codes, exit codes and messages.


wdckit errors -S

-List all error codes, exit codes and messages sorted by exit code.
wdckit errors

-List all error codes, exit codes and messages.


wdckit errors --exit-code 1

-List all error codes that return an exit code of 1.


wdckit errors -1 -999

-List error codes -1 and -999 and the exit codes and messages.
wdckit errors -12

-List error code -12 and the exit code and message.
wdckit errors -n

-List all known NVMe error codes.


wdckit errors 0x00B -n

-List NVMe error 00Bh.


wdckit errors 0xC212 -s

-List NVMe status field C212h.


wdckit errors --redirect status.txt

-List all error codes, messages and exit codes and the output is stored in
status.txt.

Command eula
Description Show the End User License Agreement (EULA).
Usage
wdckit eula [-a|-3] [-h]
OPTIONAL
-a, --exhibit-a
Show EULA Exhibit A
–OR–
-3, --third-party
Show third party notices.
-h, --help
Display help and exit.
Example(s)
Command eula
wdckit eula

-Show the End User License Agreement (EULA).


wdckit eula -a

-Show EULA exhibit A.


wdckit eula -3

-Show Third party notices.

Command format
Performs a format on a SCSI/ATA or NVMe device. Notes: NVMe format is
Description supported in only Linux or Windows PE with the inbox driver. ATA format is
only supported on L-H and L-W products.
Restriction
(s)
This task is only valid for an actual target.
This task is not allowed on a boot device.
This task is only valid for WDC targets.
This task is only valid in Windows PE with NVMe devices when connected
via the inbox or Intel RST driver.
This task requires the device to be ready.
Usage
format <<devList> …|--model <model number> …|--serial <serial number>
…> <-l <lba format>|-b <bytes>> [--progress-bar|--simple-progress] [--
trace|--trace-with-scan|--no-trace] [-s <0-7>] [--nsid <value>] [-n <number of
blocks>] [--merge] [--fastformat] [-c] [-p <protection type>] [--danger-zone]
wdckit [--timeout-seconds <seconds>] [--no-sanitize-status] [-R <filename>] [--no-
win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste]
[--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-
linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-
flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute format command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-l <lba format>, --lbaformat <lba format>
Specify the LBA format number for an NVMe device. Not applicable for
SCSI/ATA devices.
–OR–
Command format
-b <bytes>, --blocksize <bytes>
Specify the block size, in bytes. Valid values for ATA devices: 512, 4096.
Valid values for SCSI devices: 512, 520, 528, 4096, 4112, 4160, 4224. Valid
values for NVMe devices are reported in identify namespace data.
OPTIONAL
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-s <0-7>, --ses <0-7>
Specify the Secure Erase Settings (SES) value for an NVMe device.
Defaults to 1 (0 = no secure erasure; 1 = user data erasure; 2 =
cryptographic erasure; 3-7 = reserved). Not applicable for SCSI/ATA
devices.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-n <number of blocks>, --numblocks <number of blocks>
Specify number of blocks to format for SCSI/ATA devices. Not applicable for
NVMe devices. Default: will format to maximum number of blocks
supported by the device.
--merge
Merge G-List and P-List for SCSI/ATA devices. Not applicable for NVMe
devices.
--fastformat
Set Fast Format for SCSI/ATA devices. Not applicable for NVMe devices.
-c, --media-compatibility-check
Perform media compatibility check for SCSI/ATA devices. Not applicable for
NVMe devices.
-p <protection type>, --protection <protection type>
Specify a type of Protection Information (0|1|2|3) for SCSI/ATA devices. The
default value is 0. Not applicable for NVMe devices.
--danger-zone
Flag tells the application that you know you are going to destroy your data
with this command and will not prompt the user.
Command format
--timeout-seconds <seconds>
Timeout value, in seconds. Allowed range is 30 seconds to 604800 (1
week). The default value is 30.
--no-sanitize-status
Do not check ATA sanitize status, which on some systems, may not operate
correctly.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
Command format
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit format disk0

-Formats the device ‘disk0’ with default LBA format 0.

wdckit format /dev/nvme0

-Formats the device ‘/dev/nvme0’ with default LBA format 0.


wdckit format disk0 -l 1

-Formats the device ‘disk0’ with LBA format 1.

wdckit format /dev/nvme0 -l 1

-Formats the device ‘/dev/nvme0’ with LBA format 1.


wdckit format disk0 -l 1 -s 2

-Formats the device ‘disk0’ with LBA format 1 and SES 2.

wdckit format /dev/nvme0 -l 1 -s 2

-Formats the device ‘/dev/nvme0’ with LBA format 1 and SES 2.


wdckit format disk0 -b 512

-Format the device ‘disk0’ with a block size of 512 bytes and maximum
capacity.

wdckit format /dev/sda -b 512

-Format the device ‘/dev/sda’ with a block size of 512 bytes and maximum
capacity.

Command fsflush
Description Performs a file system flush on device.
Restriction
(s)
Command fsflush
This task is only valid for an actual target.
This task is only valid for WDC targets.
Usage
fsflush <<devList> …|--model <model number> …|--serial <serial number>
…> [--trace|--trace-with-scan|--no-trace] [-R <filename>] [--no-win-disk] [--
no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-
wdckit
amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-
nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag
<flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute fsflush command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
Command fsflush
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit fsflush disk0

-File system flush for device ‘disk0’.

wdckit fsflush /dev/sda

-File system flush for device ‘/dev/sda’.

Command getdui
Retrieves the vendor specific DUI (Device Unit Information) log from
Description
supported devices.
Command getdui
Restriction
(s)
This task is only valid for an actual NVMe device or file target.
This task is only valid for SanDisk targets.
Usage
getdui <<devList|filename> …|--model <model number> …|--serial <serial
number> …> [--progress-bar|--simple-progress|--no-progress] [--trace|--
trace-with-scan|--no-trace] [-S] [-g <type[,max size]> …] [-e <type[,max
size]> …] [-d <1|2|3|4>] [-x <transfer size>] [-s <path>] [-R <filename>] [--
wdckit no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-
rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--
no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--
probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>]
[-h]
REQUIRED
<devList|filename> (accepted multiple times)
Device or file name(s) to execute getdui command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
–OR–
--no-progress
No progress display.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-S, --show-header
Show header - will not collect DUI log.
Command getdui
-g <type[,max size]>, --get-type <type[,max size]> (accepted multiple times)
Specify section type to extract, with an optional maximum size limit in
bytes.
-e <type[,max size]>, --exclude-type <type[,max size]> (accepted multiple
times)
Specify section type to exclude. If an optional maximum size limit, in bytes,
is specified, then this section type will be read up to the specified limit.
-d <1|2|3|4>, --data-area <1|2|3|4>
Data area to retrieve up to. Default value is 3.
-x <transfer size>, --xfer <transfer size>
Specify the maximum size, in bytes, to transfer per command. This value
must be a multiple of 512.
-s <path>, --save <path>
Saves the device output to the path specified.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
Command getdui
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit getdui all

-Retrieves from all the supported devices.


wdckit getdui disk0 disk1 -s /home

-Retrieves from device ‘disk0’ and ‘disk1’ and saves the log into /home.

wdckit getdui /dev/nvme0 /dev/nvme1 -s /home

-Retrieves from device ‘/dev/nvme0’ and ‘/dev/nvme1’ and saves the log
into /home.
wdckit getdui disk0 -g 0 -g 1 -g 2 -s /home

-Retrieves only section type 0, 1 and 2 from device ‘disk0’ and saves the
log into /home.

wdckit getdui /dev/nvme0 -g 0 -g 1 -g 2 -s /home

-Retrieves only section type 0, 1 and 2 from device ‘/dev/nvme0’ and saves
the log into /home.
Command getdui
wdckit getdui disk0 -e 12 -e 6,200h -s /home

-Retrieves every section except section type 12, and partially retrieves
section type 6 (first 512 bytes) from device ‘disk0’ and saves the log into /
home.

wdckit getdui /dev/nvme0 -e 12 -e 6,200h -s /home

-Retrieves every section except section type 12, and partially retrieves
section type 6 (first 512 bytes) from device ‘/dev/nvme0’ and saves the log
into /home.

Command geteyediagram
Retrieves the vendor specific Eye Diagram (Eye Surf) log from supported
Description
devices.
Restriction
(s)
This task is only valid for an actual NVMe device, an actual HGST device or
file target.
This task is only valid for WDC targets.
Usage
geteyediagram <<devList|filename> …|--model <model number> …|--serial
<serial number> …> [-r|-s <path>|-f <filename>] [--trace|--trace-with-scan|--
no-trace] [-m] [--nsid <value>] [--phy-id <0|1>] [--bit-depth <value>] [--
phase-low <phase value>] [--phase-high <phase value>] [--phase-step
<positive value>] [--voltage-low <voltage value>] [--voltage-high <voltage
wdckit value>] [--voltage-step <positive value>] [--snapshot] [-x <bytes>] [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-
linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad]
[--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|
cmd-debug>] [-h]
REQUIRED
<devList|filename> (accepted multiple times)
Device or file name(s) to execute geteyediagram command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-r, --raw
Dump the raw buffer.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
Command geteyediagram
–OR–
-f <filename>, --file <filename>
Saves the device output to the file specified. Can only be used with a single
device.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
--phy-id <0|1>
Specify the port number (0 or 1) on SAS drives (default = 0). Only used with
L-H devices.
--bit-depth <value>
Bit depth (default = 100000). Only used with L-H devices.
--phase-low <phase value>
Phase low value (default = 0). Only used with L-H devices.
--phase-high <phase value>
Phase high value (default = 31). Only used with L-H devices.
--phase-step <positive value>
Phase step (default = 1). Only used with L-H devices.
--voltage-low <voltage value>
Low voltage value (default = -31). Only used with L-H devices.
--voltage-high <voltage value>
High voltage value (default = 31). Only used with L-H devices.
--voltage-step <positive value>
Voltage value (default = 1). Only used with L-H devices.
--snapshot
Specify a snap shot eye diagram. This option is only used with L-H NVMe
devices.
-x <bytes>, --xfer <bytes>
Specify maximum size, in bytes, to transfer per command. This value must
be a multiple of 4096. Only applicable for NVMe devices. Default value is
4096 for NVMeoF or 64KB for PCI NVMe.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
Command geteyediagram
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Command geteyediagram
Example(s)
wdckit geteyediagram all

-Retrieves from all the supported devices.


wdckit geteyediagram disk0 disk1

-Retrieves from device ‘disk0’ and ‘disk1’.

wdckit geteyediagram /dev/nvme0 /dev/nvme1

-Retrieves from device ‘/dev/nvme0’ and ‘/dev/nvme1’.


wdckit geteyediagram eye.bin

-Parses file ‘eye.bin’.

Command getfeature
Gets the various fields along with their values related to features on the
Description
device.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task is only valid for NVMe or SATA targets.
Usage
getfeature <<devList> …|--model <model number> …|--serial <serial
number> …> <-f <feature-id>|-l|-p <alias> …> [-S <select-value>|--current|--
default|--saved|--supported-capabilities] [-r|--raw-limit <bytes>|-s <path>|--
set-feature-xml <filename>] [--trace|--trace-with-scan|--no-trace] [-v <dw11
value>] [--payload-size <bytes>] [--xml-decoder <filename>] [-m] [--nsid
wdckit
<value>] [-u <uuid index>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc]
[--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-
win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-
cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-
level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute getfeature command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-f <feature-id>, --feature <feature-id>
NVMe devices only. Feature id to be retrieved.
–OR–
Command getfeature
-l, --list
Prints the list of supported features.
–OR–
-p <alias>, --parameterlist <alias> (accepted multiple times)
ATA devices only. Name of the operational parameters whose values need
to be retrieved. Use ‘all’ to retrieve all operational parameter values.
OPTIONAL
-S <select-value>, --select <select-value>
NVMe devices only. Option for the select field. Default value is 0.
–OR–
--current
NVMe devices only. Select current feature setting.
–OR–
--default
NVMe devices only. Select default feature setting.
–OR–
--saved
NVMe devices only. Select saved feature setting.
–OR–
--supported-capabilities
NVMe devices only. Select supported capabilities feature setting.
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
–OR–
--set-feature-xml <filename>
Save NVMe set feature response buffer in an XML format suitable for
setfeatures. Only applies to feature IDs: 3h, Ch, Eh, 13h, 16h, 7Dh, 7Eh,
7Fh and 81h. <filename> will be used if and only if one target device is
specified. When multiple targets are specified, the XML filename will be
<sn>_<timestamp>_feature-<id>_<version>.xml.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
Command getfeature
-v <dw11 value>, --value <dw11 value>
NVMe devices only. Dw11 value (only some feature ids use it). Default
value is 0.
--payload-size <bytes>
NVMe devices only. Override default payload data size, in bytes (only some
feature ids use it).
--xml-decoder <filename>
Decode additional data as described by this xml file. Please refer to the
user guide appendix for the XML schema.
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-u <uuid index>, --uuid-index <uuid index>
Specify the NVMe UUID Index (0-7fh). Default value is 0. This field is only
valid for NVMe devices. It will be ignored for ATA/SCSI devices.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
Command getfeature
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit getfeature disk0 -f 2

-This will display the feature values related to feature id 2h of ‘disk0’.

wdckit getfeature /dev/nvme0 -f 2

-This will display the feature values related to feature id 2h of ‘/dev/nvme0’.


wdckit getfeature disk0 -f 2 -z

-This will display the feature values related to feature id 2h of ‘disk0’ and
suppress the banner.

wdckit getfeature /dev/nvme0 -f 2 -z

-This will display the feature values related to feature id 2h of ‘/dev/nvme0’


and suppress the banner.
wdckit getfeature disk0 disk1 -f 2

-This will display the feature values related to feature id 2h of ‘disk0’ and
‘disk1’.

wdckit getfeature /dev/nvme0 /dev/nvme1 -f 2

-This will display the feature values related to feature id 2h of ‘/dev/nvme0’


and ‘/dev/nvme1’.
Command getfeature
wdckit getfeature disk0 -l

-This option will list the Names and alias of all the supported operational
Parameters of ‘disk0’.

wdckit getfeature /dev/sda -l

-This option will list the Names and alias of all the supported operational
Parameters of ‘/dev/sda’.
wdckit getfeature all -p all

-This option will list the Name-value Pair of all the operational Parameters of
all devices.
wdckit getfeature disk0 disk1 -p apm -p dipm

-This option will list the Name-value Pair for APM and Device Initiated
Power Management parameters of ‘disk0’ and ‘disk1’.

wdckit getfeature /dev/sda /dev/sdb -p apm -p dipm

-This option will list the Name-value Pair for APM and Device Initiated
Power Management parameters of ‘/dev/sda’ and ‘/dev/sdb’.

Command getlog
This command retrieves logs from ATA, NVMe and SCSI devices. Log
events for various factors, such as error handling, status handling, statistics,
Description
accounting, and so forth. This will decode and show the log contents in
human readable text.
Restriction
(s)
This task is only valid for an actual device or file target.
This task is only valid for WDC targets.
Usage
getlog <<devList|filename> …|--model <model number> …|--serial <serial
number> …> [--smartlog|-g|-G] [--ata|--nvme|--scsi] [-r|--raw-limit <bytes>|-s
<path>] [--data-area <0|1|2|3|4>|-t <type[,max size]> …|-e <type[,max
size]]> …|--show-dui-header] [--no-progress|--progress-bar|--simple-
progress] [--trace|--trace-with-scan|--no-trace] [-l <log number>] [--lsp <log
specific number>] [--lpo <log page offset>] [-u <uuid index>] [--rae] [-f
<value>] [-p <page list>] [--ignore-directory] [-S <bytes>] [-b <blocks>] [--lsi
wdckit
<value>] [--csi <value>] [--force] [-m] [--nsid <value>] [-x <transfer size>] [--
xml-decoder <filename>] [--output <text|json|xml|csv|csv-no-header>] [--
timeout <seconds>] [--oui <oui>] [--clear-telemetry] [-R <filename>] [--no-
win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste]
[--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-
linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-
flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
Command getlog
<devList|filename> (accepted multiple times)
Device or file name(s) to execute getlog command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--smartlog
Use ATA SMART read log command to access the data.
–OR–
-g, --gpl
Use ATA GPL read log command to access the data.
–OR–
-G, --gpl-dma
Use ATA GPL read log DMA command to access the data.
--ata
Specify that the binary file was retreived from an ATA device.
–OR–
--nvme
Specify that the binary file was retreived from an NVMe device.
–OR–
--scsi
Specify that the binary file was retreived from a SCSI device.
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
--data-area <0|1|2|3|4>
Specify the highest NVMe telemetry data area to retrieve. The default value
is 3.
–OR–
-t <type[,max size]>, --get-type <type[,max size]> (accepted multiple times)
Specify NVMe telemetry section type to extract, with an optional maximum
size limit in bytes. Note, may not be supported for all NVMe devices.
–OR–
-e <type[,max size]]>, --exclude-type <type[,max size]]> (accepted multiple
times)
Specify NVMe telemetry section type to exclude. If an optional maximum
size limit, in bytes, is specified, then this section type will be read up to the
specified limit. Note, may not be supported for all NVMe devices.
–OR–
Command getlog
--show-dui-header
Show NVMe telemetry log (log 7h) header - will not collect telemetry log.
Note, may not be supported for all NVMe devices.
--no-progress
No progress display.
–OR–
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
--trace
Save trace log for command operation upon success. Note, by default, trace
logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-l <log number>, --log <log number>
Specify the NVMe log page id (LID) to be retrieved or the ATA log address to
be retreived or the SCSI page code to be retrieved. Refer to the appendix of
the user guide for a list of log numbers and names. Default value is 0.
--lsp <log specific number>
Specify the NVMe log specific field (LSP) value. Default value is 0.
--lpo <log page offset>
Specify the log page offset for an NVMe device. Ignore for non-NVMe
devices. Default value is 0.
-u <uuid index>, --uuid-index <uuid index>
Specify the NVMe UUID Index (0-7fh). Default value is 0. This field is only
valid for NVMe devices. It will be ignored for ATA/SCSI devices.
--rae
Specify the NVMe Retain Asyncrhonous Event (rae) flag. It will be ignored
for ATA/SCSI devices.
-f <value>, --features <value>
Specify the ATA General Purpose Log address FEATURE value. Used only
on some GPL addresses. Default value is 0.
-p <page list>, --pages <page list>
Pages from the ATA log address or SCSI subpage code to be retrieved. If
not specified, all the pages are displayed. The following notations are
supported for pageList: x|x..y|x..+y[,x|x..y|x..+y].
--ignore-directory
Skips the check if the log exists and tries the command.
-S <bytes>, --size <bytes>
Specify the number of bytes to read for NVMe devices.
Command getlog
-b <blocks>, --block-count <blocks>
Specify the maximum number of blocks to transfer per ATA command.
Default value is 1.
--lsi <value>
Specify the log specific identifier (0-FFFFh) for NVMe devices. Default value
is 0.
--csi <value>
Specify the command set identifier (0-FFh) for NVMe devices. Default value
is 0.
--force
Force reading an empty NVMe telemetry-controller intiated log (lid=8h).
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-x <transfer size>, --xfer <transfer size>
Specify the maximum size, in 4096 byte (4 KiB) units, to transfer per
command. This is only used for NVMe devices. Default value is 1.
--xml-decoder <filename>
Decode additional data as described by this xml file. Please refer to the user
guide appendix for the XML schema.
--output <text|json|xml|csv|csv-no-header>
Specify output format. Default value is text.
--timeout <seconds>
Timeout value, in seconds. Default value is 30.
--oui <oui>
Specify organizationally unique identifyer (oui) when parsing a file.
--clear-telemetry
Clear NVMe controller-initiated telemetry log (lid 8h) after successfully
reading the it.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
Command getlog
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only useful
with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA passthru).
Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit getlog disk0 -l 2

-Retrieves and parses NVMe SMART / Health Information log (lid 2h) from
‘disk0’ (assuming an NVMe device).

wdckit getlog /dev/nvme0 -l 2

-Retrieves and parses NVMe SMART / Health Information log (lid 2h) from ‘/
dev/nvme0’.
Command getlog
wdckit getlog disk0 -l 2 -r

-Display NVMe SMART / Health Information log (lid 2h) raw data for ‘disk0’
(assuming an NVMe device).

wdckit getlog /dev/nvme0 -l 2 -r

-Display NVMe SMART / Health Information log (lid 2h) raw data for ‘/dev/
nvme0’.
wdckit getlog disk0 -l 2 -s .

-Saves NVMe SMART / Health Information log (lid 2h) data from ‘disk0’ into
a binary file in the current directory (.) (assuming an NVMe device).

wdckit getlog /dev/nvme0 -l 2 -s .

-Saves NVMe SMART / Health Information log (lid 2h) data from ‘/dev/
nvme0’ into a binary file in the current directory (.).
wdckit getlog disk0 -l 19h --lsp 6h -s .

-Starts NVMe Eye Opening Monitor (lid 19h) measurement (best quality)
and saves data ‘disk0’ into a binary file in the current directory (.) (assuming
an NVMe device).

wdckit getlog /dev/nvme0 -l 19h --lsp 6h -s .

-Starts NVMe Eye Opening Monitor (lid 19h) measurement (best quality)
and saves data ‘/dev/nvme0’ into a binary file in the current directory (.).
wdckit getlog error.bin -l 1 --nvme

-Parses NVMe Error log (lid 1h) content of ‘error.bin’.


wdckit getlog disk0 disk1 -l 4

-Retrieves and parses ATA Device Statistics Log (log address 4h) from
‘disk0’ and ‘disk1’ (assuming an ATA device).

wdckit getlog /dev/sda /dev/sdb -l 4

-Retrieves and parses ATA Device Statistics Log (log address 4h) from ‘/dev/
sda’ and ‘/dev/sdb’.
wdckit getlog disk0 disk1 -l 4 -p 0..3

-Retrieves ATA Device Statistics Log (log address 4h) from ‘disk0’ and
‘disk1’ and parses only pages 0 to 3 (assuming an ATA device).

wdckit getlog /dev/sda /dev/sdb -l 4 -p 0..3

-Retrieves ATA Device Statistics Log (log address 4h) from ‘/dev/sda’ and ‘/
dev/sdb’ and parses only pages 0 to 3.
Command getlog
wdckit getlog all -l 4 -p 0,3..+5

-Retrieves ATA Device Statistics Log (log address 4h) of all supported ATA
devices and parses log page 0 and log pages 3 to 7 (5 consecutive pages) if
present (assuming an ATA device).

wdckit getlog all -l 4 -p 0,3..+5

-Retrieves ATA Device Statistics Log (log address 4h) of all supported ATA
devices and parses log page 0 and log pages 3 to 7 (5 consecutive pages) if
present.
wdckit getlog smartctl.txt -l A0h --save . --ata

-Convert text file smartctl.txt to a binary file in the current directory (.)
(smartctl.txt_{DDMMYYYY_HHMMSS}_file_{VERSION}.bin).
wdckit getlog disk0 -l 10h

-Retrieves and parses SCSI Self-Test Results log (page code 10h) from
‘disk0’ (assuming a SCSI device).

wdckit getlog /dev/nvme0 -l 10h

-Retrieves and parses SCSI Self-Test Results log (page code 10h) from ‘/
dev/nvme0’.
wdckit getlog disk0 -l 7 --show-dui-header

-Shows telemetry log’s DUI header from ‘disk0’ (assuming an NVMe


device).

wdckit getlog /dev/nvme0 -l 7 --show-dui-header

-Shows telemetry log’s DUI header from ‘/dev/nvme0’.


wdckit getlog disk0 -l 7 -t 2 -t 15 -s .

-Saves partial telemetry log (get section type 2 and 15) as a zip file in the
current directory (.) from ‘disk0’ (assuming an NVMe device).

wdckit getlog /dev/nvme0 -l 7 -t 2 -t 15 -s .

-Saves partial telemetry log (get section type 2 and 15) as a zip file in the
current directory (.) from ‘/dev/nvme0’.

Command getpe
Retrieves the vendor specific PE (Program Erase) log from supported
Description
NVMe devices.
Restriction
(s)
This task is only valid for an actual NVMe device or file target.
This task is only valid for devices with a unique customer firmware.
Command getpe
This task is only valid for WDC targets.
Usage
getpe <<devList|filename> …|--model <model number> …|--serial <serial
number> …> [-r|--raw-limit <bytes>|-s <path>] [--trace|--trace-with-scan|--
no-trace] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-
wdckit scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-
linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-
nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|
error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList|filename> (accepted multiple times)
Device or file name(s) to execute getpe command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
Command getpe
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit getpe all

-Retrieves from all the supported devices.


Command getpe
wdckit getpe disk0 disk1

-Retrieves from device ‘disk0’ and ‘disk1’.

wdckit getpe /dev/nvme0 /dev/nvme1

-Retrieves from device ‘/dev/nvme0’ and ‘/dev/nvme1’.


wdckit getpe pe.bin

-Retrieves from file ‘pe.bin’.

Command getpersistentevent
Retrieves and parses the Persistent Event Log (dh) from supported NVMe
Description
devices.
Restriction
(s)
This task is only valid for an actual NVMe device or file target.
This task is only valid for WDC targets.
Usage
getpersistentevent <<devList|filename> …|--model <model number> …|--
serial <serial number> …> [-r|--raw-limit <bytes>|-s <path>] [--trace|--trace-
with-scan|--no-trace] [-m] [--nsid <value>] [-R <path>] [--no-win-disk] [--no-
wdckit win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-
amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-
nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag
bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList|filename> (accepted multiple times)
Device or file name(s) to execute getpersistentevent command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
Command getpersistentevent
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-R <path>, --redirect <path>
Redirects the screen output to the path specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
Command getpersistentevent
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit getpersistentevent all

-Displays the Persistent Event Log from all the supported devices.
wdckit getpersistentevent disk0 disk1 -s c:1

-Retrieves from device ‘disk0’ and ‘disk1’ and saves the log into c:1.

wdckit getpersistentevent /dev/nvme0 /dev/nvme1 -s /home

-Retrieves from device ‘/dev/nvme0’ and ‘/dev/nvme1’ and saves the log
into root/home.
wdckit getpersistentevent data.bin

-Displays the Persistent Event Log from ‘data.bin’.

Command getsmart
Retrieves the SMART data and the SMART status with SMART trip
Description
parameter, if any, from the device.
Restriction
(s)
This task is only valid for an actual device or file target.
This task is only valid for WDC targets.
Usage
Command getsmart
getsmart <<devList|filename> …|--model <model number> …|--serial
<serial number> …> [-a|-r|--raw-limit <bytes>|-S|-s <path>] [--trace|--trace-
with-scan|--no-trace] [--output <text|json|xml|csv|csv-no-header>] [--nsid
<value>] [-f] [-n <filename>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-
wdckit
hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--
no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-
bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z]
[--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList|filename> (accepted multiple times)
Device or file name(s) to execute getsmart command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-a, --attributes
Retrieves the SMART attributes of the device.
–OR–
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-S, --status
Retrieves the SMART status of the device.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
--output <text|json|xml|csv|csv-no-header>
Specify output format. Default value is text.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
Command getsmart
-f, --fail
Retrieves the SMART failed attributes of the device.
-n <filename>, --namesub <filename>
Takes xml filename as input for name substitution of attributes.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
Command getsmart
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit getsmart all -a

-Retrieves SMART attributes of all the supported devices.


wdckit getsmart disk0 -r --redirect smart.txt

-Retrieves SMART Read Data of device ‘disk0’ and output is stored in


smart.txt in current directory.

wdckit getsmart /dev/sda -r --redirect smart.txt

-Retrieves SMART Read Data of device ‘/dev/sda’ and output is stored in


smart.txt in current directory.
wdckit getsmart disk0 disk1 -S --nobanner

-Retrieves SMART status of devices ‘disk0’ and ‘disk1’ and the banner is
suppressed.

wdckit getsmart /dev/sda /dev/sdb -S --nobanner

-Retrieves SMART status of devices ‘/dev/sda’ and ‘/dev/sdb’ and the


banner is suppressed.

Command getsmr
Description Retrieves the vendor specific SMR data from supported WDC devices.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task is only valid for SATA targets.
Usage
Command getsmr
getsmr <<devList> …|--model <model number> …|--serial <serial number>
…> [--auto-detect|--use-rra|--use-only-default] [--progress-bar|--simple-
progress|--no-progress] [--trace|--trace-with-scan|--no-trace] [-s <path>] [-a]
[--xfer <bytes>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-
wdckit
ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--
no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-
bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level
<silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute getsmr command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--auto-detect
Detect log collection method. Slower but more reliable than the default.
This is only used with L-H ATA devices and is ignored for all others device
types.
–OR–
--use-rra
Collects log via alternate method (read reserved area). This is only used
with L-H ATA devices and is ignored for all others device types.
–OR–
--use-only-default
Collects log via default method only. Normally, when the default method
fails, the alternate method will be tried. This option stops the alternate
method. This is only used with L-H ATA devices and is ignored for all others
device types.
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
–OR–
--no-progress
No progress display.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
Command getsmr
–OR–
--no-trace
Disable trace logging.
-s <path>, --save <path>
Saves the device output to the path specified.
-a, --collect-all
Collects all conditional data.
--xfer <bytes>
Specify maximum number of bytes to transfer per command for L-H
devices. Must be a multiple of 512. Default values is 64KB.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
Command getsmr
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit getsmr all

-Retrieves from all the supported devices.


wdckit getsmr disk0 disk1 -s c:1

-Retrieves from device ‘disk0’ and ‘disk1’ and saves the log into c:1.

wdckit getsmr /dev/sda /dev/sdb -s /home

-Retrieves from device ‘/dev/sda’ and ‘/dev/sdb’ and saves the log into /
home.

Command help
Description Displays help information about wdckit commands.
Usage
help [<command name>] [-n|-d|-e|-s|-r] [--cssd-sata|--cssd-nvme|--chdd|--
essd-sata|--essd-nvme|--ehdd|--ssd-sata|--ssd-nvme|--hdd|-a] [--trace|--
trace-with-scan|--no-trace] [-o <w|l|f|windows|linux|freebsd>] [-t <label>] [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
wdckit
csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--
no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-
ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
OPTIONAL
<command name>
Any wdckit command for which help information is required. Always a
particular command at once.
-n, --syntax
Displays syntax for command.
Command help
–OR–
-d, --description
Displays description for command.
–OR–
-e, --examples
Displays examples for command.
–OR–
-s, --shortdescription
Displays short description for command.
–OR–
-r, --restriction
Displays restriction(s) for command.
--cssd-sata
Filter help to include functions that support client SSD SATA devices.
–OR–
--cssd-nvme
Filter help to include functions that support client SSD NVMe devices.
–OR–
--chdd
Filter help to include functions that support client HDD devices.
–OR–
--essd-sata
Filter help to include functions that support enterprise SSD SATA devices.
–OR–
--essd-nvme
Filter help to include functions that support enterprise SSD NVMe devices.
–OR–
--ehdd
Filter help to include functions that support enterprise HDD devices.
–OR–
--ssd-sata
Filter help to include functions that support SSD SATA devices.
–OR–
--ssd-nvme
Filter help to include functions that support SSD NVMe devices.
–OR–
--hdd
Filter help to include functions that support HDD devices.
–OR–
-a, --all
Show help for every function.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
Command help
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-o <w|l|f|windows|linux|freebsd>, --operatingsystem <w|l|f|windows|linux|
freebsd>
Displays examples for specified operating system. Use ‘w’ for Windows and
‘l’ for Linux.
-t <label>, --table <label>
Save table of command line args to ‘label-flag.csv’ and ‘label-desc.csv’.
Best case usage is all commands, eg: ’wdckit help "*" -t label’
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
Command help
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit help -a

-Shows help information for all wdckit commands.


wdckit help show -d

-Shows command description only for show command.

Command hmb
Description Display Host Memory Buffer support for an NVMe device.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for WDC targets.
Usage
hmb <<devList> …|--model <model number> …|--serial <serial number>
…> [-r|--raw-limit <bytes>|-s <path>] [--trace|--trace-with-scan|--no-trace] [-
u <uuid index>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-
wdckit ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--
no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-
bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level
<silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute hmb command.
Command hmb
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-u <uuid index>, --uuid-index <uuid index>
Specify the NVMe UUID Index (0-7fh). Default value is 0. This field is only
valid for NVMe devices. It will be ignored for ATA/SCSI devices.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
Command hmb
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit hmb disk0

-Displays the HMB support from device ‘disk0’.

wdckit hmb /dev/nvme0

-Displays the HMB support from device ‘/dev/nvme0’.

Command idd
Retrieves the Identify data of the ATA or NVMe device or Inquiry data for
Description
SCSI devices.
Command idd
Restriction
(s)
This task is only valid for an actual device or file target.
Usage
idd [<devList|filename> …|--model <model number> …|--serial <serial
number> …] [-r|--raw-limit <bytes>|-s <path>] [-c|-n|-d] [--trace|--trace-with-
scan|--no-trace] [-l] [--zns] [--cns <cns value>] [--nsid <value>] [-u <uuid
index>] [--csi <csi value>] [--cntid <cntid value>] [--cnssi <cnssi value>] [-v
<page code>] [--xml-decoder <filename>] [--output <text|json|xml|csv|csv-
wdckit
no-header>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-
scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-
linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-
nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|
error|info|debug|cmd-debug>] [-h]
OPTIONAL
<devList|filename> (accepted multiple times)
Device or file name(s) to execute idd command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
-c, --controller
Displays the Identify Controller Data for an NVMe device (CNS=01h).
Displays the Identify Device Data for an ATA device. SCSI devices are not
valid.
–OR–
-n, --namespace
Displays the Identify Namespace Data of the NVMe device (CNS=00h).
ATA and SCSI devices are not valid.
–OR–
-d, --desc
Displays the Namespace Identification Descriptor list (CNS=03h).
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
Command idd
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-l, --list
Displays the controller list (CNS=13h), when used with -c|--controller or
displays the active Namespace ID list (CNS=02h) when used with -n|--
namespace of the NVMe device. ATA and SCSI devices are not valid.
--zns
Display the identify controller ZNS specific data (CNS=06h), when used
with -c|--controller or display the identify namespace ZNS specific data
(CNS=05h), when used with -n|--namespace of the NVMe device. ATA and
SCSI devices are not valid.
--cns <cns value>
NVMe controller or namespace structure. Mutually exclusive with -c|--
controller, -n|--namespace, -l|--list, --zns. Default value is 0.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-u <uuid index>, --uuid-index <uuid index>
Specify the NVMe UUID Index (0-7fh). Default value is 0. This field is only
valid for NVMe devices. It will be ignored for ATA/SCSI devices.
--csi <csi value>
NVMe Command Set Identifier value. Used for ZNS commands. Default
value is 2.
--cntid <cntid value>
NVMe Controller Identifier value. Default value is 0.
--cnssi <cnssi value>
NVMe CNS Specific Identifier value. Default value is 0.
-v <page code>, --vpd <page code>
Display inquiry vital product data for a SCSI device. NVMe and ATA devices
are not valid.
--xml-decoder <filename>
Decode additional data as described by this xml file. Please refer to the
user guide appendix for the XML schema.
--output <text|json|xml|csv|csv-no-header>
Specify output format. Default value is text.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
Command idd
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit idd all

-Retrieves Identify Data of all the supported devices.


Command idd
wdckit idd disk0 --redirect identifyData.txt

-Retrieves Identify Data of device ‘disk0’ and output is stored in


identifyData.txt in current directory.

wdckit idd /dev/sda --redirect identifyData.txt

-Retrieves Identify Data of device ‘/dev/sda’ and output is stored in


identifyData.txt in current directory.
wdckit idd disk0 disk1 --nobanner

-Retrieves Identify Data of devices ‘disk0’ and ‘disk1’ and the banner is
suppressed.

wdckit idd /dev/sda /dev/sdb --nobanner

-Retrieves Identify Data of devices ‘/dev/sda’ and ‘/dev/sdb’ and the banner
is suppressed.
wdckit idd disk0 --namespace

-Retrieves Identify Namespace Data for ‘disk0’.

wdckit idd /dev/nvme0 --namespace

-Retrieves Identify Namespace Data for ‘/dev/nvme0’.


wdckit idd disk0 --namespace --list

-Retrieves Identify Namespace List Data for ‘disk0’.

wdckit idd /dev/nvme0 --namespace --list

-Retrieves Identify Namespace List Data for ‘/dev/nvme0’.


wdckit idd disk0 --controller --list

-Retrieves Identify Controller List Data for ‘disk0’.

wdckit idd /dev/nvme0 --controller --list

-Retrieves Identify Controller List Data for ‘/dev/nvme0’.


wdckit idd disk0 --zns --nsid 2 --namespace

-Retrieves ZNS Identify Namespace Data for namespace ID 2 for ‘disk0’.

wdckit idd /dev/nvme0 --zns --nsid 2 --namespace

-Retrieves ZNS Identify Namespace Data for namespace ID 2 for ‘/dev/


nvme0’.
Command idd
wdckit idd disk0 --zns --controller

-Retrieves ZNS Identify Controller Data for ‘disk0’.

wdckit idd /dev/nvme0 --zns --controller

-Retrieves ZNS Identify Controller Data for ‘/dev/nvme0’.


wdckit idd disk0 --zns --namespace --list --csi 2

-Retrieves ZNS Identify Active Namespace List Data with CSI set to 2 for
‘disk0’.

wdckit idd /dev/nvme0 --zns --namespace --list --csi 2

-Retrieves ZNS Identify Active Namespace List Data with CSI set to 2 for ‘/
dev/nvme0’.
wdckit idd disk0 --cns 0

-Retrieves Identify Namespace Data for ‘disk0’.

wdckit idd /dev/nvme0 --cns 0

-Retrieves Identify Namespace Data for ‘/dev/nvme0’.

Command logdump
Description Dump logs from specified devices.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task requires the device to be ready.
Usage
logdump [<devList> …|--model <model number> …|--serial <serial number>
…] [--auto-detect|--use-rra|--use-only-default] [--inc-start|--inc-update|--inc-
max|--inc-min-io] [--progress-bar|--simple-progress|--no-progress] [--trace|--
trace-with-scan|--no-trace] [-s <path>] [--default] [--short] [--south-dump] [--
ati] [--p-list] [--fly-height] [--partial-context] [--metadata] [--fly-height2] [--snr-
ow] [--servo] [--erp] [--cpu] [--rw-incr] [--partial-context2] [--nand-smart] [--
excursion] [--latency] [--workload-tracking] [--workload-tracking-0] [--
wdckit
workload-tracking-1] [--workload-tracking-2] [--workload-tracking-3] [--all-
modes] [--mode <mode byte> …] [-t <bytes>] [-2] [--no-sanitize-status] [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-
linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad]
[--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|
cmd-debug>] [-h]
OPTIONAL
Command logdump
<devList> (accepted multiple times)
Device name(s) to execute logdump command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
--auto-detect
Detect log collection method. Slower but more reliable than the default. This
is only used with L-H ATA devices and is ignored for all others device types.
–OR–
--use-rra
Collects log via alternate method (read reserved area). This is only used
with L-H ATA devices and is ignored for all others device types.
–OR–
--use-only-default
Collects log via default method only. Normally, when the default method
fails, the alternate method will be tried. This option stops the alternate
method. This is only used with L-H ATA devices and is ignored for all others
device types.
--inc-start
Collects incremental starting log (mode 0x80). This in only used with L-H
devices.
–OR–
--inc-update
Collects incremental update log (mode 0x81). This in only used with L-H
devices.
–OR–
--inc-max
Collects incremental log with maximum log entries (specified in mode page
0x1C, sub-page 0xE5) (mode 0x82). This in only used with L-H devices.
–OR–
--inc-min-io
Collects incremental log minimizing host IO (mode 0x83). This in only used
with L-H devices.
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
–OR–
--no-progress
No progress display.
Command logdump
--trace
Save trace log for command operation upon success. Note, by default, trace
logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-s <path>, --save <path>
Saves the device output to the path specified.
--default
Collects default modes (normal 0x10, latest snapshot 0x11, older snapshot
0x21 and oldest snapshot 0x31). This in only used with L-H devices. If no
mode is specified, this is the default logdump collection method.
--short
A small log for data-collection purposes (mode 0x00). This in only used with
L-H devices.
--south-dump
Collects debug information for SSDs only (mode 0x03). This in only used
with L-H devices.
--ati
Collects device Adjacent Track Interference (ATI) data (mode 0x12). This in
only used with L-H devices.
--p-list
Collects device P-List data (mode 0x13). This in only used with L-H devices.
--fly-height
Collects device Fly-height data (mode 0x14). This in only used with L-H
devices.
--partial-context
Collects device partial context data (mode 0x15). This in only used with L-H
devices.
--metadata
Collects the flash stored metadata (mode 0x16). This in only used with L-H
devices.
--fly-height2
Collects device Fly-height 2 data (mode 0x17). This in only used with L-H
devices.
--snr-ow
Collects the SNR/OW data (mode 0x18). This in only used with L-H devices.
--servo
Collects the servo error log data (mode 0x19). This in only used with L-H
devices.
--erp
Collects the ERP historgram data (mode 0x1A). This in only used with L-H
devices.
Command logdump
--cpu
Collects the CPU performance data (mode 0x1B). This in only used with L-
H devices.
--rw-incr
Collects the RW incremental log data (mode 0x1C). This in only used with
L-H devices.
--partial-context2
Collects device partial context 2 data (mode 0x1D). This in only used with L-
H devices.
--nand-smart
Collects device Nand SMART data (mode 0x1E). This in only used with L-H
devices.
--excursion
Collects device excursion log data (mode 0x20). This in only used with L-H
devices.
--latency
Collects device latency monitor data (mode 0x22). This in only used with L-
H devices.
--workload-tracking
Collects the working tracking data (mode 0xA0). This in only used with L-H
devices.
--workload-tracking-0
Collects the working tracking data (mode 0xA0). This in only used with L-H
devices.
--workload-tracking-1
Collects the working tracking data (mode 0xA1). This in only used with L-H
devices.
--workload-tracking-2
Collects the working tracking data (mode 0xA2). This in only used with L-H
devices.
--workload-tracking-3
Collects the working tracking data (mode 0xA3). This in only used with L-H
devices.
--all-modes
Collects all available logs. This in only used with L-H devices.
--mode <mode byte> (accepted multiple times)
Collect this E6 mode. This in only used with L-H devices.
-t <bytes>, --transfer-size <bytes>
Specify maximum number of bytes to transfer per command. Default values
is 64KB.
-2, --two-ports
Collects 2 logs, one for each port of a SAS device.
--no-sanitize-status
Do not check ATA sanitize status, which on some systems, may not operate
correctly.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
Command logdump
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only useful
with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA passthru).
Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
Command logdump
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit logdump all

-Dump log from all supported devices.


wdckit logdump disk0

-Dump log from ‘disk0’.

wdckit logdump /dev/sda

-Dump log from ‘/dev/sda’.


wdckit logdump disk0 --all-modes

-Dump all modes from ‘disk0’.

wdckit logdump /dev/sda --all-modes

-Dump all modes from ‘/dev/sda’.

Command ns-attach
Send a namespace attachment command to attach a namepace to a
Description controller identifier(s). Note: For Windows with the inbox driver, this
command must be run from Windows PE.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for WDC targets.
This task is only valid in Windows PE with NVMe devices when connected
via the inbox driver.
Usage
ns-attach <<device name>|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] -n <value> -c <value> …
[-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-
wdckit win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi]
[--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--
no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<device name>
Device name to execute ns-attach command.
–OR–
Command ns-attach
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-n <value>, --nsid <value>
Specify the namespace ID value. Default value is 1.
-c <value>, --controller <value> (accepted multiple times)
The controller identifier to attach.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
Command ns-attach
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit ns-attach disk0 -n 1 -c 1

-Send the attach namespace command to attach namespace id 1 to


controller ID 1 for ‘disk0’.

wdckit ns-attach /dev/nvme0 -n 1 -c 1

-Send the attach namespace command to attach namespace id 1 to


controller ID 1 for ‘/dev/nvme0’.
wdckit ns-attach disk0 -n 1 -c 1 -c 2

-Send the attach namespace command to attach namespace id 1 to


controller ID 1 and 2 for ‘disk0’.

wdckit ns-attach /dev/nvme0 -n 1 -c 1 -c 2

-Send the attach namespace command to attach namespace id 1 to


controller ID 1 and 2 for ‘/dev/nvme0’.
Command ns-create
Send a namespace management command to create a namespace for an
Description NVMe device. Note: For Windows with the inbox driver, this command must
be run from Windows PE.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for WDC targets.
This task is only valid in Windows PE with NVMe devices when connected
via the inbox driver.
Usage
ns-create <<device name>|--model <model number> …|--serial <serial
number> …> <-f <0-Fh>|-b <1|2|4|8|16|32|64|128|256|512|1024|2048|4096|
8192|16384|32768>> [--trace|--trace-with-scan|--no-trace] [--csi <0-FFh>] [-
s <blocks>] [-c <blocks>] [-d <0-FFh>] [-m <0-FFh>] [-a <0-FFFFFFFFh>] [-
i <0-FFFFh>] [-e <0-FFFFh>] [-l <value>] [-t <seconds>] [-R <filename>] [--
wdckit
no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-
rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--
no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--
probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>]
[-h]
REQUIRED
<device name>
Device name to execute ns-create command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-f <0-Fh>, --flbas <0-Fh>
LBA format index, as shown by idd -n.
–OR–
-b <1|2|4|8|16|32|64|128|256|512|1024|2048|4096|8192|16384|32768>, --
block-size <1|2|4|8|16|32|64|128|256|512|1024|2048|4096|8192|16384|
32768>
LBA format in bytes (1-32768, in power of 2 increments).
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
Command ns-create
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
--csi <0-FFh>
The command set identifier. Default is 0. Use 2 for ZNS.
-s <blocks>, --nsze <blocks>
The namespace size, in logical blocks.
-c <blocks>, --ncap <blocks>
The namespace capacity, in logical blocks.
-d <0-FFh>, --dps <0-FFh>
End-to-end data protection type setting. Default value is 0.
-m <0-FFh>, --nmic <0-FFh>
Namespace Multi-path I/O and Namespace Sharing Capabilities. Default
value is 0.
-a <0-FFFFFFFFh>, --anagrpid <0-FFFFFFFFh>
ANA Group Identifier. Default value is 0.
-i <0-FFFFh>, --nvmsetid <0-FFFFh>
NVM Set Identifier. Default value is 0.
-e <0-FFFFh>, --endgid <0-FFFFh>
Endurance Group Identifier. Default value is 0.
-l <value>, --lbstm <value>
Logical Block Storage Tag Mask. Default value is 0.
-t <seconds>, --timeout <seconds>
Timeout value, in seconds. Default value is 30.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
Command ns-create
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit ns-create disk0 -s 1953525168 -c 1953525168 -b 512

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to 512 bytes for ‘disk0’.

wdckit ns-create /dev/nvme0 -s 1953525168 -c 1953525168 -b 512

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to 512 bytes for ‘/dev/
nvme0’.
Command ns-create
wdckit ns-create disk0 -s 1953525168 -c 1953525168 -f 0

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to index 0 for ‘disk0’.

wdckit ns-create /dev/nvme0 -s 1953525168 -c 1953525168 -f 0

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to index 0 for ‘/dev/
nvme0’.
wdckit ns-create disk0 -s 1953525168 -c 1953525168 -f 1

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to index 1 for ‘disk0’.

wdckit ns-create /dev/nvme0 -s 1953525168 -c 1953525168 -f 1

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to index 1 for ‘/dev/
nvme0’.
wdckit ns-create disk0 -s 1953525168 -c 1953525168 -b 4096

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to 4096 bytes for
‘disk0’.

wdckit ns-create /dev/nvme0 -s 1953525168 -c 1953525168 -b 4096

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to 4096 bytes for ‘/dev/
nvme0’.
wdckit ns-create disk0 --csi 2 -s 1953525168 -c 1953525168 -f 1

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to index 1 using
command set identify 2 (ZNS) for ‘disk0’.

wdckit ns-create /dev/nvme0 --csi 2 -s 1953525168 -c 1953525168 -f 1

-Send the create namespace command to change to namespace size &


capacity to 1953525168 blocks and set LBA format to index 1 using
command set identify 2 (ZNS) for ‘/dev/nvme0’.

Command ns-delete
Send a namespace management command to delete a namespace for an
Description NVMe device. Note: For Windows with the inbox driver, this command
must be run from Windows PE.
Restriction
(s)
This task is only valid for an actual target.
Command ns-delete
This task is only valid for NVMe targets.
This task is only valid for WDC targets.
This task is only valid in Windows PE with NVMe devices when connected
via the inbox driver.
Usage
ns-delete <<device name>|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] -n <value> [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
wdckit csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--
no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-
ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<device name>
Device name to execute ns-delete command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-n <value>, --nsid <value>
Specify the namespace ID value to delete. Use FFFFFFFFh to delete all
namespaces in the NVM subsystem. If the value of FFFFFFFFh is
specified and there are zero valid namespaces, the command completes
successfully.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
Command ns-delete
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
Command ns-delete
wdckit ns-delete disk0 -n 1

-Send the delete namespace command to delete namespace ID 1 for


‘disk0’.

wdckit ns-delete /dev/nvme0 -n 1

-Send the delete namespace command to delete namespace ID 1 for ‘/


dev/nvme0’.
wdckit ns-delete disk0 -n FFFFFFFFh

-Send the delete namespace command to delete all namespace IDs for
‘disk0’.

wdckit ns-delete /dev/nvme0 -n FFFFFFFFh

-Send the delete namespace command to delete all namespace IDs for ‘/
dev/nvme0’.

Command ns-detach
Send a namespace attachment command to detach a namepace from a
Description controller identifier(s). Note: For Windows with the inbox driver, this
command must be run from Windows PE.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for WDC targets.
This task is only valid in Windows PE with NVMe devices when connected
via the inbox driver.
Usage
ns-detach <<device name>|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] -n <value> -c <value> …
[-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-
wdckit win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi]
[--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--
no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<device name>
Device name to execute ns-detach command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
Command ns-detach
–AND–
-n <value>, --nsid <value>
Specify the namespace ID value.
-c <value>, --controller <value> (accepted multiple times)
The controller identifier to detach.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
Command ns-detach
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit ns-detach disk0 -n 1 -c 1

-Send the detach namespace command to detach namespace id 1 from


controller ID 1 for ‘disk0’.

wdckit ns-detach /dev/nvme0 -n 1 -c 1

-Send the detach namespace command to detach namespace id 1 from


controller ID 1 for ‘/dev/nvme0’.
wdckit ns-detach disk0 -n 1 -c 1 -c 2

-Send the detach namespace command to detach namespace id 1 from


controller ID 1 and 2 for ‘disk0’.

wdckit ns-detach /dev/nvme0 -n 1 -c 1 -c 2

-Send the detach namespace command to detach namespace id 1 from


controller ID 1 and 2 for ‘/dev/nvme0’.

Command nsze
Send vendor unique command to modify namespace size for NVMe
Description
devices.
Restriction
(s)
Command nsze
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for SanDisk targets.
This task is only valid for devices with a unique customer firmware.
Usage
nsze <<devList> …|--model <model number> …|--serial <serial number>
…> [--trace|--trace-with-scan|--no-trace] -o <value> [-R <filename>] [--no-
win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-
wdckit rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--
no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--
probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>]
[-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute nsze command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-o <value>, --option <value>
Value for the required option.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
Command nsze
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
Command nsze
wdckit nsze disk0 -o 1

-Send the VU command to change to namespace size option 1 for ‘disk0’.

wdckit nsze /dev/nvme0 -o 1

-Send the VU command to change to namespace size option 1 for ‘/dev/


nvme0’.

Command power
Displays or sets power management APST state (PMAS) for NVMe
Description
devices.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for devices with a unique customer firmware.
This task is only valid for WDC targets.
Usage
power <<devList> …|--model <model number> …|--serial <serial number>
…> [-s <value>|-c] [--trace|--trace-with-scan|--no-trace] [-R <filename>] [--
no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-
wdckit rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--
no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--
probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>]
[-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute power command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-s <value>, --set <value>
Enable Power Management APST State.
–OR–
-c, --clear
Disable Power Management APST State.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
Command power
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
Command power
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit power disk0

-Displays the PMAS state for the device ‘disk0’.

wdckit power /dev/nvme0

-Displays the PMAS state for the device ‘/dev/nvme0’.


wdckit power disk0 -s 1

-Enables the PMAS state for the device ‘disk0’.

wdckit power /dev/nvme0 -s 1

-Enables the PMAS state for the device ‘/dev/nvme0’.


wdckit power disk0 -c

-Disables the PMAS state for the device ‘disk0’.

wdckit power /dev/nvme0 -c

-Disables the PMAS state for the device ‘/dev/nvme0’.

Command quit
Description Exit the CLI.
Usage
wdckit quit
Example(s)

Command rdp
Performs RDP (repurpose depopulation) on a SCSI or ATA device. RDP is
Description
also known as the storage element feature set.
Restriction
(s)
Command rdp
This task is only valid for an actual ATA/SCSI device or file target.
This task is not allowed on a boot device.
This task is only valid for WDC targets.
RDP support was not detected.
Usage
rdp <<device name|filename>|--model <model number> …|--serial <serial
number> …> <-g|-r <head>|--repop-all> [--raw|--raw-limit <bytes>|-s
<path>] [--no-progress|--progress-bar|--simple-progress] [--trace|--trace-
with-scan|--no-trace] [-H <head>] [-t <type>] [-f <filter>] [-m <LBA>] [--retry-
wdckit limit <count>] [-b <bytes>] [--danger-zone] [-R <filename>] [--no-win-disk]
[--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-
win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-
wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag
<flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<device name|filename>
Device or file name toexecute rdp command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-g, --gpes
Get physical element status.
–OR–
-r <head>, --ret <head>
Remove element and truncate. Specified the element to remove.
–OR–
--repop-all
Revert all removed elements with a restore elements and rebuild
command.
OPTIONAL
--raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
--no-progress
No progress display.
–OR–
--progress-bar
Display a full screen progress bar screen.
Command rdp
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-H <head>, --head <head>
Specify the starting element field for the get physical element status
operation. Default value is 1.
-t <type>, --report-type <type>
Specify the report type field for the get physical element status operation.
Value must be from 0 to 15, inclusive. Default value is 0.
-f <filter>, --filter <filter>
Specify the filter field for the get physical element status operation. Value
must be from 0 to 3, inclusive. Default value is 0.
-m <LBA>, --max-lba <LBA>
Specify the requested maximum LBA for the remove element and truncate
operation. Defaults to 0 which allows the device to specify the maximum
LBA after successful command completion. Default value is 0.
--retry-limit <count>
Specify a retry limit. Value must be between 0 and 15. Used for only -r (--
ret) or (--repop-all). Default value is 0 (no retries).
-b <bytes>, --blocksize <bytes>
Specify the block size, in bytes when decoding a filename. Valid values for
ATA sourced binary files: 512, 4096. Valid values for SCSI sourced binary
files: 512, 520, 528, 4096, 4112, 4160, 4224.
--danger-zone
Flag tells the application that you know you are going to destroy your data
with this command and will not prompt the user.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
Command rdp
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
Command rdp
wdckit rdp disk0 -g

-Show the get physical element status (gpes) log for device ‘disk0’.

wdckit rdp /dev/sda -g

-Show the get physical element status (gpes) log for device ‘/dev/sda’.
wdckit rdp disk0 -g -f 1

-Show a filtered get physical element status (gpes) log for device ‘disk0’.
The output will show only elements that are outside the spec limit or has
been depopulated.

wdckit rdp /dev/sda -g -f 1

-Show a filtered get physical element status (gpes) log for device ‘/dev/sda’.
The output will show only elements that are outside the spec limit or has
been depopulated.
wdckit rdp disk0 -g -t 1

-Show a get physical element status (gpes) log for device ‘disk0’ with only
storage elements.

wdckit rdp /dev/sda -g -t 1

-Show a get physical element status (gpes) log for device ‘/dev/sda’ with
only storage elements.
wdckit rdp disk0 -g -s .

-Saves the get physical element status (gpes) log for device ‘disk0’ to the
current folder.

wdckit rdp /dev/sda -g -s .

-Saves the get physical element status (gpes) log for device ‘/dev/sda’ to
the current folder.
wdckit rdp disk0 -r 6

-Depopulates head 6 from ‘disk0’.

wdckit rdp /dev/sda -r 6

-Depopulates head 6 from ‘/dev/sda’.

Command reset
Perform a reset for supported devices and OS drivers. Beware - this
Description operation may be dangerous. Note, some OSes / drivers do not allow a
reset. Only supported in Linux and Windows.
Restriction
(s)
Command reset
This task is only valid for an actual target.
This task is only valid for WDC targets.
Usage
reset <<devList> …|--model <model number> …|--serial <serial number>
…> [--trace|--trace-with-scan|--no-trace] [-f] [-R <filename>] [--no-win-disk]
[--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-
wdckit
win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-
wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag
<flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute reset command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-f, --force
Force the reset operation without asking for user confirmation.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
Command reset
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit reset disk0

-Perform a reset for the device ‘disk0’ which will require user confirmation.

wdckit reset /dev/sda

-Perform a reset for the device ‘/dev/sda’ which will require user
confirmation.
Command reset
wdckit reset disk0 -f

-Perform a reset for the device ‘disk0’ without waiting for user confirmation.

wdckit reset /dev/sda -f

-Perform a reset for the device ‘/dev/sda’ without waiting for user
confirmation.

Command sasphypower
Description Show, enable or disable SAS PHY power management (partial & slumber).
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for SAS targets.
This task is only valid for WDC targets.
Usage
sasphypower <<devList> …|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] [-p <boolean>] [-s
<boolean>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-
wdckit scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-
linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-
nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|
error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute sasphypower command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-p <boolean>, --partial <boolean>
Specify partial value (0-1).
Command sasphypower
-s <boolean>, --slumber <boolean>
Specify slumber value (0-1).
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
Command sasphypower
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit sasphypower disk0

-Show SAS Phy power management for the device ‘disk0’ .

wdckit sasphypower /dev/sda

-Show SAS Phy power management for the device ‘/dev/sda’ .


wdckit sasphypower disk0 -p 1 -s 1

-Enable SAS Phy partial and slumber for the device ‘disk0’ .

wdckit sasphypower /dev/sda -p 1 -s 1

-Enable SAS Phy partial and slumber for the device ‘/dev/sda’ .
wdckit sasphypower disk0 -p 0 -s 0

-Disable SAS Phy partial and slumber for the device ‘disk0’ .

wdckit sasphypower /dev/sda -p 0 -s 0

-Disable SAS Phy partial and slumber for the device ‘/dev/sda’ .

Command security
Performs the various security related features on the device. WARNING:
Description
TCG operations may erase user data - use with caution!
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task is only valid in Linux when /sys/module/libata/parameters/
allow_tpm=1.
Usage
Command security
security <<device name>|--model <model number> …|--serial <serial
number> …> <-g|-a|-i|-s|-e|-d|-l|--unlock|-c|-v|--erase-locking|--msid-
activate|--msid-revert|-p <psid>|--stack-reset|-L <sid password>> [-A <Admin
password>|-B <BandMaster password>|-E <EraseMaster password>|-S
<SID password>] [--admin|-u <1|2>|--sid|-b <-1|0-1023> …|--erasemaster]
[--raw|--raw-limit <bytes>] [--progress-bar|--simple-progress|--no-progress]
[--trace|--trace-with-scan|--no-trace] [--skip-status] [--show-enabled-bands] [-
wdckit
U <user password>] [-o <old password>] [-n <new password>] [--range-start
<lba>] [--range-length <blocks>] [-r <true|false>] [-w <true|false>] [--lock-on-
reset <true|false>] [-t <seconds>] [-R <filename>] [--no-win-disk] [--no-win-
ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid]
[--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-
bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--
log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<device name>
Device name to execute security command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-g, --get
This option gets the security information from the device.
–OR–
-a, --activate
For TCG Enterprise devices that support BDE/TCG firmware, will activate
TCG. Not applicable for TCG Opal.
–OR–
-i, --inactivate
For TCG Enterprise devices that support BDE/TCG firmware, will de-
activate TCG.
–OR–
-s, --setadminpassword
This option sets a new admin/bandmaster/erasemaster password on device.
For TCG Opal, it must be executed with -A|--Adminpassword option. For
TCG Enterprise it must be executed with -B|--bandmasterpassword, -E|--
erasemasterpassword or -S|--sidpassword option. This option may also
activate TCG.
–OR–
-e, --enable
This option enables the new user along with its password. For TCG Opal, it
must be executed with -u|--user, -U|--Userpassword and -A|--
Adminpassword options. Not applicable for TCG Enterprise.
–OR–
Command security
-d, --disable
This option disables the given user. For TCG Opal, it must be executed with
-u|--user and -A|--Adminpassword options. Not applicable for TCG
Enterprise.
–OR–
-l, --lock
This option enables read/write locking and locks/unlocks read/write
operations on the device. It must be executed with -r|--readlock, -w|--
writelock and an appropriate password (-A|--Adminpassword, -u|--user (and
-U|--Userpassword) or -B|--bandmasterpassword (and -b|--bandmaster))
option. Bracketed option selection depends on who is issuing lock operation.
For TCG Opal, use with -A|--Adminpassword or -u|--user. For TCG
Enterprise, use with -B|--bandmasterpassword.
–OR–
--unlock
This options disables read/write locking operations on the device. It must be
executed with an appropriate password (-A|--Adminpassword, -u|--user (and
-U|--Userpassword) or -B|--bandmasterpassword (and -b|--bandmaster))
option. Bracketed option selection depends on who is issuing lock operation.
For TCG Opal, use with -A|--Adminpassword or -u|--user. For TCG
Enterprise, use with -B|--bandmasterpassword.
–OR–
-c, --changepassword
This option changes Admin/User/BandMaster/EraseMaster password on the
device. It must be executed with -o|--oldpassword, -n|--newpassword. For
TCG Opal and if issued by User1 or User2, also use -u|--user option. For
TCG Enterprise, use -B|--bandmasterpassword, -E|--erasemasterpassword
or -S|--sidpassword option.
–OR–
-v, --revert
This option reverts the entire security configuration to defaults. For TCG
Opal, it must be executed with -A|--Adminpassword option. Not applicable
for TCG Enterprise, use --erase-locking instead.
–OR–
--erase-locking
This option shall crytographically erase user data. For TCG Enterprise, it
must be executed with -B|--bandmasterpassword or -E|--
erasemasterpassword option. Not applicable for TCG Opal, use -v|--revert
instead.
–OR–
--msid-activate
This option activates security configuration using MSID.
–OR–
--msid-revert
This option reverts the entire security configuration to defaults using MSID.
–OR–
Command security
-p <psid>, --psidrevert <psid>
This option reverts the entire security configuration to defaults using PSID.
Use optional -t|--timewait to specify the maximum time to wait. The default
wait time is 30 seconds. The PSID argument is a 20 or 32 character value
printed on the label.
–OR–
--stack-reset
This option performs a TCG stack reset operation.
–OR–
-L <sid password>, --list-locking-ranges <sid password>
This option lists all locking ranges. Not applicable for TCG Opal.
OPTIONAL
-A <Admin password>, --Adminpassword <Admin password>
For TCG Opal, this option is used for taking Admin Password as input. It
should be used with either -s (--setadminpassword), -l (--lock), (--unlock), -v
(--revert), -e (--enable) or -d (--disable) options. Not applicable for TCG
Enterprise.
–OR–
-B <BandMaster password>, --bandmasterpassword <BandMaster
password>
This option is used for taking BandMaster Password as input. It should be
used with either -s (--setadminpassword), -l (--lock), (--unlock) or (--erase-
locking) options. Not applicable for TCG Opal.
–OR–
-E <EraseMaster password>, --erasemasterpassword <EraseMaster
password>
This option is used for taking EraseMaster Password as input. It should be
used with either -s (--setadminpassword), -l (--lock), (--unlock), (--erase-
locking) options. Not applicable for TCG Opal.
–OR–
-S <SID password>, --sidpassword <SID password>
This option is used for taking SID Password as input. It should be used with
either -s (--setadminpassword), -l (--lock), (--unlock), options. Not applicable
for TCG Opal.
--admin
This option will change the Admin password. It should be used with -c (--
changepassword). Not applicable for TCG Enterprise.
–OR–
-u <1|2>, --user <1|2>
For TCG Opal, this option is used for taking User number as input. It should
be used with either of -c (--changepassword), -l (--lock), -e (--enable) or -d
(--disable) options. Not applicable for TCG Enterprise.
–OR–
--sid
This option will change the SID password. It should be used with -c (--
changepassword). Not applicable for TCG Opal.
–OR–
Command security
-b <-1|0-1023>, --bandmaster <-1|0-1023> (accepted multiple times)
This option specifies the BandMaster value. It is required when -B|--
bandmasterpassword is used. A value of -1 will use all BandMaster values.
Not applicable for TCG Opal.
–OR–
--erasemaster
This option will change the EraseMaster password. It should be used with -c
(--changepassword). Not applicable for TCG Opal.
--raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
–OR–
--no-progress
No progress display.
--trace
Save trace log for command operation upon success. Note, by default, trace
logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
--skip-status
Pass the PSID regardless of the state of the device.
--show-enabled-bands
List only enabled locking ranges. Optional when -L (--list-locking-ranges) is
present. Not applicable for TCG Opal.
-U <user password>, --Userpassword <user password>
For TCG Opal, this option is used for taking User Password as input. It
should be used with either -l (--lock) or -e (--enable) options. Not applicable
for TCG Enterprise.
-o <old password>, --oldpassword <old password>
This option is used for taking the old password as input while changing the
password of Admin/User/BandMaster/EraseMaster.
-n <new password>, --newpassword <new password>
This option is used for taking new old password as input while changing the
password of Admin/User/BandMaster/EraseMaster.
Command security
--range-start <lba>
This option specifies the range start LBA. Not applicable for TCG Opal.
--range-length <blocks>
This option specifies the range length. Not applicable for TCG Opal.
-r <true|false>, --readlock <true|false>
This option is used for taking Lock/Unlock value for read operation as input.
The default value is false. It should be used with -l (--lock) option.
-w <true|false>, --writelock <true|false>
This option is used for taking Lock/Unlock value for write operation as input.
The default value is false. It should be used with -l (--lock) option.
--lock-on-reset <true|false>
This option is used for setting the lock on reset value. The default value is
false. This is used only with -l (--lock). Not applicable for TCG Opal.
-t <seconds>, --timewait <seconds>
Specify timeout in seconds (15 to 3600). The default value is 30 seconds.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
Command security
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only useful
with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA passthru).
Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit security disk1 -s -A TestPassword

-Sets the Admin Password as TestPassword for TCG Opal device ‘disk1’.

wdckit security /dev/nvme1 -s -A TestPassword

-Sets the Admin Password as TestPassword for TCG Opal device ‘/dev/
nvme1’.
wdckit security disk1 -s -S TestPassword

-Sets the Security Identifier (SID) Password as TestPassword for TCG


Enterprise device ‘disk1’.

wdckit security /dev/nvme1 -s -S TestPassword

-Sets the Security Identifier (SID) Password as TestPassword for TCG


Enterprise device ‘/dev/nvme1’.
wdckit security disk1 -s -E TestPassword

-Sets the EraseMaster Password as TestPassword for TCG Enterprise


device ‘disk1’.

wdckit security /dev/nvme1 -s -E TestPassword

-Sets the EraseMaster Password as TestPassword for TCG Enterprise


device ‘/dev/nvme1’.
Command security
wdckit security disk1 -s -B TestPassword -b -1

-Sets all BandMaster Passwords as TestPassword for TCG Enterprise


device ‘disk1’.

wdckit security /dev/nvme1 -s -B TestPassword -b -1

-Sets all BandMaster Passwords as TestPassword for TCG Enterprise


device ‘/dev/nvme1’.
wdckit security disk1 -e -A TestPassword -u 1 -U UserPassword1

-Makes Admin enable User1 on the device with User Password as


UserPassword1 for TCG Opal device ‘disk1’.

wdckit security /dev/nvme1 -e -A TestPassword -u 1 -U UserPassword1

-Makes Admin enable User1 on the device with User Password as


UserPassword1 for TCG Opal device ‘/dev/nvme1’.
wdckit security disk1 -d -A TestPassword -u 1

-Makes Admin disable User1 for TCG Opal device ‘disk1’.

wdckit security /dev/nvme1 -d -A TestPassword -u 1

-Makes Admin disable User1 for TCG Opal device ‘/dev/nvme1’.


wdckit security disk1 -l -r true -w true -A TestPassword

-Makes Admin enable Read Lock Operations and enable Write Lock
Operations (LK) for TCG Opal device ‘disk1’.

wdckit security /dev/nvme1 -l -r true -w true -A TestPassword

-Makes Admin enable Read Lock Operations and enable Write Lock
Operations (LK) for TCG Opal device ‘/dev/nvme1’.
wdckit security disk1 -l -B TestPassword -b 0 -r true -w true --lock-on-reset
true

-Makes BandMaster0 enable Read Lock Operations and enable Write Lock
Operations (LK) and enable Lock On Reset Operations for TCG Enterprise
device ‘disk1’.

wdckit security /dev/sdb -l -B TestPassword -b 0 -r true -w true --lock-on-


reset true

-Makes BandMaster0 enable Read Lock Operations and enable Write Lock
Operations (LK) and enable Lock On Reset Operations for TCG Enterprise
device ‘/dev/sdb’.
Command security
wdckit security disk1 -l -r false -w true -A TestPassword

-Makes Admin disable Read Lock Operations and enable Write Lock
Operations (RO) for TCG Opal device ‘disk1’.

wdckit security /dev/nvme1 -l -r false -w true -A TestPassword

-Makes Admin disable Read Lock Operations and enable Write Lock
Operations (RO) for TCG Opal device ‘/dev/nvme1’.
wdckit security disk1 -l -B TestPassword -b 0 -r false -w true --lock-on-reset
true

-Makes BandMaster0 disable Read Lock Operations and enable Write Lock
Operations (RO) and enable Lock On Reset Operations for TCG Enterprise
device ‘disk1’.

wdckit security /dev/sdb -l -B TestPassword -b 0 -r false -w true --lock-on-


reset true

-Makes BandMaster0 disable Read Lock Operations and enable Write Lock
Operations (RO) and enable Lock On Reset Operations for TCG Enterprise
device ‘/dev/sdb’.
wdckit security disk1 -l -r false -w false -A TestPassword

-Makes Admin disable Read Lock Operations and disable Write Lock
Operations (RW) for TCG Opal device ‘disk1’.

wdckit security /dev/nvme1 -l -r false -w false -A TestPassword

-Makes Admin disable Read Lock Operations and disable Write Lock
Operations (RW) for TCG Opal device ‘/dev/nvme1’.
wdckit security disk1 -l -B TestPassword -b 0 -r false -w false --lock-on-reset
true

-Makes BandMaster0 disable Read Lock Operations and disable Write Lock
Operations (RW) and enable Lock On Reset Operations for TCG Enterprise
device ‘disk1’.

wdckit security /dev/sdb -l -B TestPassword -b 0 -r false -w false --lock-on-


reset true

-Makes BandMaster0 disable Read Lock Operations and disable Write Lock
Operations (RW) and enable Lock On Reset Operations for TCG Enterprise
device ‘/dev/sdb’.
Command security
wdckit security disk1 -c -o TestPassword -n TestPassword2 --admin

-Changes Admin Password from TestPassword to TestPassword2 for TCG


Opal device ‘disk1’.

wdckit security /dev/nvme1 -c -o TestPassword -n TestPassword2 --admin

-Changes Admin Password from TestPassword to TestPassword2 for TCG


Opal device ‘/dev/nvme1’.
wdckit security disk1 -c -o TestPassword -n TestPassword2 -b 0

-Changes BandMaster0 Passwords from TestPassword to TestPassword2


for TCG Enterprise device ‘disk1’.

wdckit security /dev/nvme1 -c -o TestPassword -n TestPassword2 -b 0

-Changes BandMaster0 Passwords from TestPassword to TestPassword2


for TCG Enterprise device ‘/dev/nvme1’.
wdckit security disk1 -c -o TestPassword -n TestPassword2 -b -1

-Changes all BandMaster Passwords from TestPassword to TestPassword2


for TCG Enterprise device ‘disk1’.

wdckit security /dev/nvme1 -c -o TestPassword -n TestPassword2 -b -1

-Changes all BandMaster Passwords from TestPassword to TestPassword2


for TCG Enterprise device ‘/dev/nvme1’.
wdckit security disk1 -c -o TestPassword -n TestPassword2 --erasemaster

-Changes EraseMaster Password from TestPassword to TestPassword2 for


TCG Enterprise device ‘disk1’.

wdckit security /dev/nvme1 -c -o TestPassword -n TestPassword2 --


erasemaster

-Changes EraseMaster Password from TestPassword to TestPassword2 for


TCG Enterprise device ‘/dev/nvme1’.
wdckit security disk1 -c -o TestPassword -n TestPassword2 --sid

-Changes SID Password from TestPassword to TestPassword2 for TCG


Enterprise device ‘disk1’.

wdckit security /dev/nvme1 -c -o TestPassword -n TestPassword2 --sid

-Changes SID Password from TestPassword to TestPassword2 for TCG


Enterprise device ‘/dev/nvme1’.
Command security
wdckit security disk1 -p 00000000000000000000000000000000

-This will perform the PSID revert operation on the device ‘disk1’.

Note: Depending upon the current security state on the device, user data
may be erased. The PSID string should be printed on the label.

wdckit security /dev/nvme1 -p 00000000000000000000000000000000

-This will perform the PSID revert operation on the device ‘/dev/nvme1’.

Note: Depending upon the current security state on the device, user data
may be erased. The PSID string should be printed on the label.
wdckit security disk1 -a

-This will activate TCG for TCG Enterprise with SKU reduction firmware
device ‘disk1’.

wdckit security /dev/sdb -a

-This will activate TCG for TCG Enterprise with SKU reduction firmware
device ‘/dev/sdb’.
wdckit security disk1 -i

-This will inactivate TCG for TCG Enterprise with SKU reduction firmware
device ‘disk1’.

wdckit security /dev/sdb -i

-This will inactivate TCG for TCG Enterprise with SKU reduction firmware
device ‘/dev/sdb’.
wdckit security disk1 -L TestPassword

-This will list all locking ranges for TCG Enterprise device ‘disk1’.

wdckit security /dev/sdb -L TestPassword

-This will list all locking ranges for TCG Enterprise device ‘/dev/sdb’.
wdckit security disk1 -L TestPassword -b 0 -b 1 -b 2 -b 3 -b 4 -b 5 -b 1021 -b
1022 -b 1023

-This will list locking ranges for bands 0, 1, 2, 3, 4, 5, 1021, 1022 and 1023
on TCG Enterprise device ‘disk1’.

wdckit security /dev/sdb -L TestPassword -b 0 -b 1 -b 2 -b 3 -b 4 -b 5 -b 1021


-b 1022 -b 1023

-This will list locking ranges for bands 0, 1, 2, 3, 4, 5, 1021, 1022 and 1023
on TCG Enterprise device ‘/dev/sdb’.
Command securityprofile
Description Performs the various security profile related features on the ATA device.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for SATA targets.
This task is only valid for WDC targets.
This task is only valid in Linux when /sys/module/libata/parameters/
allow_tpm=1.
Usage
securityprofile <<devList> …|--model <model number> …|--serial <serial
number> …> <-g|-c|-s <security-profile>> [--trace|--trace-with-scan|--no-
trace] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi]
wdckit [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-
scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-
nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|
error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute securityprofile command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-g, --get
This option is used to get all the supported Security Profiles of the Device.
–OR–
-c, --current
This option is used to get the current Security Profile of the Device.
–OR–
-s <security-profile>, --set <security-profile>
This option is used to set the new Security profile on the device.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
Command securityprofile
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
Command securityprofile
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit securityprofile disk0 -g

-This will get all the supported security profiles on the device.

wdckit securityprofile /dev/sda -g

-This will get all the supported security profiles on the device.
wdckit securityprofile disk0 -c

-This will get the current security profile on the device.

wdckit securityprofile /dev/sda -c

-This will get the current security profile on the device.


wdckit securityprofile disk0 -s 2

-This will set the security profile of the device to profile S2.

wdckit securityprofile /dev/sda -s 2

-This will set the security profile of the device to profile S2.

Command selftest
Runs the short or extended test on the device(s) specified by the user.
Description Note, Windows 20H1 and later may impose a self test time restriction of 10
minutes between self tests to the same NVMe device.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task requires the device to be ready.
Usage
selftest <<devList> …|--model <model number> …|--serial <serial number>
…> <-s|-e|-a|-p> [--progress-bar|--simple-progress|--no-progress] [--trace|--
trace-with-scan|--no-trace] [--nsid <value>] [-b] [-r] [-m] [--no-sanitize-
status] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi]
wdckit
[--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-
nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-
mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-
debug>] [-h]
Command selftest
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute selftest command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-s, --short
This option initiates the short Self Test on the device.
–OR–
-e, --extended
This option initiates the extended Self Test on the device.
–OR–
-a, --abort
This option aborts the running Self Test on the device.
–OR–
-p, --progress
Query the self test progress.
OPTIONAL
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
–OR–
--no-progress
No progress display.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-b, --blocked
Perform the self test operation as a blocking operation.
Command selftest
-r, --result
Shows result of the last Extended test execution from ATA log. Valid only
with -e option. No result is available for non-ATA devices.
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
--no-sanitize-status
Do not check ATA sanitize status, which on some systems, may not
operate correctly.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
Command selftest
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit selftest all --short

-Initiates short test operation on all the supported devices.


wdckit selftest disk0 --extended --blocked

-Initiates extended test operation on ‘disk0’ and CLI will be blocked until
selftest completes or fails.

wdckit selftest /dev/sda --extended --blocked

-Initiates extended test operation on ‘/dev/sda’ and CLI will be blocked until
selftest completes or fails.
wdckit selftest disk0 disk1 -p

-Shows the progress of self test operation on ‘disk0’ and ‘disk1’ once, if
any.

wdckit selftest /dev/sda /dev/sdb -p

-Shows the progress of self test operation on ‘/dev/sda’ and ‘/dev/sdb’


once, if any.

Command serverconfig
Send vendor unique command to modify the resource server configuration
Description
on supported NVMe devices.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for SanDisk targets.
This task is only valid for devices with a unique customer firmware.
Usage
Command serverconfig
serverconfig <<devList> …|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] -p <1|2> [-s <value>] [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
wdckit csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--
no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-
ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute serverconfig command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-p <1|2>, --power <1|2>
Power type configuration.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-s <value>, --set <value>
Set to a new configuration value (0-100).
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
Command serverconfig
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit serverconfig disk0 -p 1

-Send the VU command to read the current power configuration for type 1
for ‘disk0’.

wdckit serverconfig /dev/nvme0 -p 1

-Send the VU command to read the current power configuration for type 1
for ‘/dev/nvme0’.
Command serverconfig
wdckit serverconfig disk0 -p 1 -s 50

-Send the VU command to set the power configuration of type 2 to value


50 for ‘disk0’.

wdckit serverconfig /dev/nvme0 -p 1 -s 50

-Send the VU command to set the power configuration of type 2 to value


50 for ‘/dev/nvme0’.

Command setfeature
Sets the specified feature value for NVMe devices. Sets the given input
Description
operational Parameters with input Values for ATA devices.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task is only valid for NVMe or SATA targets.
Usage
setfeature <<devList> …|--model <model number> …|--serial <serial
number> …> [-f <feature-id>|-l] [-b <buffer-file>|--xml-encoder <filename>]
[--trace|--trace-with-scan|--no-trace] [-v <dw11 value>] [-d <data-length>] [-s]
[--nsid <value>] [-u <uuid index>] [-m] [--dipm <enable|disable>] [--apm
<value|disable>] [--hwc <enable|disable>] [--aptst <enable|disable>] [--
stimeout <value|default>] [--apst <value|default>] [--sscshift <value|default>]
[--esspectrum <enable|disable|default>] [--ssrange <0|1|2|3|default>] [--
wdckit gen1pemphasis <value|default>] [--gen2pemphasis <value|default>] [--
gen3pemphasis <value|default>] [--gen1amplitude <value|default>] [--
gen2amplitude <value|default>] [--gen3amplitude <value|default>] [--
spspeed <0|1|2|default>] [--devslp <enable|disable>] [-R <filename>] [--no-
win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste]
[--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-
linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-
flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute setfeature command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
-f <feature-id>, --feature <feature-id>
Feature id to be modified. This is for NVMe devices only.
–OR–
Command setfeature
-l, --list
Prints the list of supported features.
-b <buffer-file>, --bufferfile <buffer-file>
File name of file containing the data that will be transferred. This is for
NVMe devices only.
–OR–
--xml-encoder <filename>
Encode payload data as described by this xml file. Please refer to the user
guide appendix for the XML schema.
--trace
Save trace log for command operation upon success. Note, by default, trace
logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-v <dw11 value>, --value <dw11 value>
Dw11 value (only some feature ids use it). This is for NVMe devices only.
Default value is 0.
-d <data-length>, --data-len <data-length>
Data transfer length, amount of data in the buffer file. This is for NVMe
devices only.
-s, --save
Save settings permanently. This is for NVMe devices only.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-u <uuid index>, --uuid-index <uuid index>
Specify the NVMe UUID Index (0-7fh). Default value is 0. This field is only
valid for NVMe devices. It will be ignored for ATA/SCSI devices.
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
--dipm <enable|disable>
Device Initiated Power Management. This is for ATA devices only.
--apm <value|disable>
Advanced Power Management. This is for ATA devices only.
--hwc <enable|disable>
Host Write Cache. This is for ATA devices only.
--aptst <enable|disable>
Auto Partial To Slumber Transition. This is for ATA devices only.
--stimeout <value|default>
Slumber Timeout. This is for ATA devices only.
--apst <value|default>
Auto Partial Slumber Timeout. This is for ATA devices only.
Command setfeature
--sscshift <value|default>
Spread Spectrum Clock Shift. This is for ATA devices only.
--esspectrum <enable|disable|default>
Enable Spread Spectrum. This is for ATA devices only.
--ssrange <0|1|2|3|default>
Spread Spectrum Range. This is for ATA devices only.
--gen1pemphasis <value|default>
Gen1 Pre Emphasis. This is for ATA devices only.
--gen2pemphasis <value|default>
Gen2 Pre Emphasis. This is for ATA devices only.
--gen3pemphasis <value|default>
Gen3 Pre Emphasis. This is for ATA devices only.
--gen1amplitude <value|default>
Gen1 Amplitude. This is for ATA devices only.
--gen2amplitude <value|default>
Gen3 Amplitude. This is for ATA devices only.
--gen3amplitude <value|default>
Gen3 Amplitude. This is for ATA devices only.
--spspeed <0|1|2|default>
SATA PHY Speed. This is for ATA devices only.
--devslp <enable|disable>
Device Sleep. This is for ATA devices only.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
Command setfeature
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only useful
with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA passthru).
Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit setfeature disk0 -f 6 -v 1

-Sets the feature with id 6 to 1 on ‘disk0’.

wdckit setfeature /dev/nvme0 -f 6 -v 1

-Sets the feature with id 6 to 1 on ‘/dev/nvme0’.


wdckit setfeature disk0 -f 6 -v 1 -z

-Sets the feature with id 6 to 1 on ‘disk0’ and suppresses the banner.

wdckit setfeature /dev/nvme0 -f 6 -v 1 -z

-Sets the feature with id 6 to 1 on ‘/dev/nvme0’ and suppresses the banner.


Command setfeature
wdckit setfeature disk0 disk1 -f 6 -v 1

-Sets the feature with id 6 to 1 on ‘disk0’ and ‘disk1’.

wdckit setfeature /dev/nvme0 /dev/nvme1 -f 6 -v 1

-Sets the feature with id 6 to 1 on ‘/dev/nvme0’ and ‘/dev/nvme1’.


wdckit setfeature disk0 -f Ch -v 1 -b data.bin -d 256

-Sets the feature with id 0Ch to 1 and passes 256 bytes of data from the file
data.bin on device ‘disk0’.

wdckit setfeature /dev/nvme0 -f Ch -v 1 -b data.bin -d 256

-Sets the feature with id 0Ch to 1 and passes 256 bytes of data from the file
data.bin on device ‘/dev/nvme0’.
wdckit setfeature disk0 --dipm enable

-This option will enable Device Initiated Power Management parameter of


‘disk0’.

wdckit setfeature /dev/sda --dipm enable

-This option will enable Device Initiated Power Management parameter of ‘/


dev/sda’.
wdckit setfeature all --hwc disable

-Disables the Write Cache Parameter of all devices.


wdckit setfeature disk0 disk1 --apm 32 --hwc enable

-Enables the Advanced Power Management and sets the current APM level
as 32 and enables the Write Cache of ‘disk0’ and ‘disk1’.

wdckit setfeature /dev/sda /dev/sdb --apm 32 --hwc enable

-Enables the Advanced Power Management and sets the current APM level
as 32 and enables the Write Cache of ‘/dev/sda’ and ‘/dev/sdb’.

Command sethctmtemps
Configures the settings for the host controlled thermal management feature
Description
on the NVMe device.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for WDC targets.
This task is only valid for NVMe targets.
Usage
Command sethctmtemps
sethctmtemps <<devList> …|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] [-1 <temperature>] [-2
<temperature>] [-d] [-s] [--nsid <value>] [-m] [-R <filename>] [--no-win-disk]
wdckit [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-
win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-
wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag
<flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute sethctmtemps command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-1 <temperature>, --tmt1 <temperature>
Specify the thermal management temperature 1 (Celcuis or Kelvin
acceptable). Use 0 to disable TMT1.
-2 <temperature>, --tmt2 <temperature>
Specify the thermal management temperature 2 (Celcuis or Kelvin
acceptable). Use 0 to disable TMT2.
-d, --disable
Disable both thermal management temperatures.
-s, --save
Save settings permanently.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-m, --mirror
Uses the NVMe mirror command instead of the NVMe standard command.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
Command sethctmtemps
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Command sethctmtemps
Example(s)
wdckit sethctmtemps disk0 -1 310 -2 315

-Sets Thermal Management Temperature 1 to 310 degrees Kelvin and


Thermal Management Temperature 2 to 315 degrees Kelvin on the drive
‘disk0’.

wdckit sethctmtemps /dev/nvme0 -1 310 -2 315

-Sets Thermal Management Temperature 1 to 310 degrees Kelvin and


Thermal Management Temperature 2 to 315 degrees Kelvin on the drive ‘/
dev/nvme0’.
wdckit sethctmtemps disk0 -1 310 -2 315 -s

-Sets Thermal Management Temperature 1 to 310 degrees Kelvin and


Thermal Management Temperature 2 to 315 degrees Kelvin on the drive
‘disk0’ and saves the setting.

wdckit sethctmtemps /dev/nvme0 -1 310 -2 315 -s

-Sets Thermal Management Temperature 1 to 310 degrees Kelvin and


Thermal Management Temperature 2 to 315 degrees Kelvin on the drive ‘/
dev/nvme0’ and saves the setting.
wdckit sethctmtemps disk0 -d -s

-Disables HCTM on device ‘disk0’ and saves the setting.

wdckit sethctmtemps /dev/nvme0 -d -s

-Disables HCTM on device ‘/dev/nvme0’ and saves the setting.

Command setthrottlingtemp
Description Sets the Light and Heavy Throttling Temperature on the NVMe device.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for SanDisk targets.
This task is only valid for NVMe targets.
Usage
setthrottlingtemp <<devList> …|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] [-l <temperature>] [-H
<temperature>] [-R <filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-
wdckit ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--
no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-
bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level
<silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
Command setthrottlingtemp
<devList> (accepted multiple times)
Device name(s) to execute setthrottlingtemp command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-l <temperature>, --light <temperature>
Specify the light throttling temperature value.
-H <temperature>, --heavy <temperature>
Specify the heavy throttling temperature value.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
Command setthrottlingtemp
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit setthrottlingtemp disk0 -l 80 -H 84

-Sets the light throttling temperature to 80 degrees and the heavy throttling
temperature to 84 degrees on the drive ‘disk0’.

wdckit setthrottlingtemp /dev/nvme0 -l 80 -H 84

-Sets the light throttling temperature to 80 degrees and the heavy throttling
temperature to 84 degrees on the drive ‘/dev/nvme0’.
wdckit setthrottlingtemp disk0 -l 80

-Sets the light throttling temperature to 80 degrees on the drive ‘disk0’.

wdckit setthrottlingtemp /dev/nvme0 -l 80

-Sets the light throttling temperature to 80 degrees on the drive ‘/dev/


nvme0’.
Command show
List the details like serial number, capacity, state, geometry information,
Description protection information, progress information, version, statistics, etc. of the
devices.
Restriction
(s)
This task is only valid for an actual target.
Usage
show [<devList> …|--model <model number> …|--serial <serial number> …
] [-a|-g|-s|-d|-f|-t] [-p|-l] [--trace|--trace-with-scan|--no-trace] [--output <text|
json|xml|csv|csv-no-header>] [--show-duplicates] [--block-device] [--
customer-id] [-L] [--capacity-no-decimal] [--no-sanitize-status] [--no-usb] [--
wdckit no-multiple-ns] [--rdp-status] [-R <filename>] [--no-win-disk] [--no-win-ctrl-
hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-win-amd-raid] [--
no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-wd-nvme] [--no-
bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--
log-level <silent|error|info|debug|cmd-debug>] [-h]
OPTIONAL
<devList> (accepted multiple times)
Device name(s) to execute show command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
-a, --asset
Show only asset information, such as drive name, serial number, revision
level, etc.
–OR–
-g, --geometry
Show only device geometry information, such as capacity, etc.
–OR–
-s, --state
Show device state information with an appropriate description of reason(s)
why the device is in that state.
–OR–
-d, --dco
Shows DCO Identify Data details.
–OR–
-f, --features
Shows the list of features supported by device.
–OR–
-t, --standards
Shows the details of standards followed by device.
Command show
-p, --physical
Show only physical devices (no logical devices).
–OR–
-l, --logical
Show only logical devices (no physical devices).
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
--output <text|json|xml|csv|csv-no-header>
Specify output format. Default value is text.
--show-duplicates
Show duplicate device paths.
--block-device
Show only block devices (no SES devices).
--customer-id
Show the customer ID and HGST internal firmware.
-L, --locked
Show reason devices are locked.
--capacity-no-decimal
Show capacity without decimal point.
--no-sanitize-status
Do not check ATA sanitize status, which on some systems, may not operate
correctly.
--no-usb
Do not show USB devices.
--no-multiple-ns
Do not show NVMe drives with multiple namespaces (Linux/FreeBSD).
--rdp-status
Check ATA RDP (repurposing depopulation) state, which on some systems,
may not operate correctly.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
Command show
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit show all

-Shows device details of all the supported devices in tabular form.


Command show
wdckit show disk0 disk1

-Shows device details of devices ‘disk0’ and ‘disk1’ in tabular form.

wdckit show /dev/sda /dev/sdb

-Shows device details of devices ‘/dev/sda’ and ‘/dev/sdb’ in tabular form.


wdckit show all -a -R my.txt

-Redirects asset information of all the supported devices to file my.txt.


wdckit show disk0 --geometry --redirect show.txt

-Redirects geometry information of device ‘disk0’ to file show.txt.

wdckit show /dev/sda --geometry --redirect show.txt

-Redirects geometry information of device ‘/dev/sda’ to file show.txt.


wdckit show disk0 disk1 -a -z

-Shows asset information of devices ‘disk0’ and ‘disk1’ without banner.

wdckit show /dev/sda /dev/sdb -a -z

-Shows asset information of devices ‘/dev/sda’ and ‘/dev/sdb’ without


banner.
wdckit show disk0 --nobanner --geometry

-Shows Geometry information of device ‘disk0’ without banner.

wdckit show /dev/sda --nobanner --geometry

-Shows Geometry information of device ‘/dev/sda’ without banner.

Command standby
Description Puts the ATA device in standby mode.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for SATA targets.
This task is only valid for WDC targets.
Usage
standby <<devList> …|--model <model number> …|--serial <serial
number> …> [--trace|--trace-with-scan|--no-trace] [-R <filename>] [--no-
win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-
wdckit rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--
no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--
probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>]
[-h]
Command standby
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute standby command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
OPTIONAL
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued
while scanning for devices.
–OR–
--no-trace
Disable trace logging.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
Command standby
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit standby disk0

-Puts ‘disk0’ in standby mode.

wdckit standby /dev/sda

-Puts ‘/dev/sda’ in standby mode.


wdckit standby disk0 -R standby.txt

-Puts ‘disk0’ in standby mode and redirects the output to standby.txt.

wdckit standby /dev/sda -R standby.txt

-Puts ‘/dev/sda’ in standby mode and redirects the output to standby.txt.

Command update
Description Updates the device firmware with new firmware on the specified device.
Restriction
(s)
This task is only valid for an actual target.
Command update
This task is only valid for WDC targets.
Usage
update [<devList> …|--model <model number> …|--serial <serial number>
…] <-f <firmware>|-a|-g|--xml <xml filename>|--reset> [--progress-bar|--
simple-progress|--no-progress] [--trace|--trace-with-scan|--no-trace] [-x
<transfer size>] [-d] [-s <slot value>] [-c <ca value>] [-b <0|1>] [-v] [-r
<seconds>] [--pause-apst] [--fast] [--no-sanitize-status] [-R <filename>] [--
wdckit
no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-
rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--
no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--
probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>]
[-h]
REQUIRED
-f <firmware>, --firmware <firmware>
The filename of the firmware binary.
–OR–
-a, --activate
Perform a firmware commit (aka activate) action. For an NVMe device, this
option requires --slot. Activation is usually preceeded by a --firmware
command.
–OR–
-g, --getfwinfo
Get FW slot information from log id 3h.
–OR–
--xml <xml filename>
The filename of an XML file with firmware update directives. Please refer to
the end of the user guide for the XML schema.
–OR–
--reset
Perform a controller reset (NVMe only). This may not be supported with all
Windows NVMe drivers. Not supported in FreeBSD.
OPTIONAL
<devList> (accepted multiple times)
Device name(s) to execute update command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
--progress-bar
Display a full screen progress bar screen.
–OR–
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
–OR–
Command update
--no-progress
No progress display.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-x <transfer size>, --xfer <transfer size>
Specify the maximum size, in bytes, to transfer the firmware image. The
firmware image will be sent to the device via multilple commands when the
image is larger than this value. Use -1 to specify a large transfer size
determined programatically. This can only be used with -f|--firmware or --
xml. Default value is 4096.
-d, --defer
Download and save the firmware image to the device and update it only
after a system power cycle (non NVMe devices) or activate action.
-s <slot value>, --slot <slot value>
Specify the firmware slot that shall be used for the activate action for an
NVMe device. This can only be used with -a|--activate. Default value is 1.
-c <ca value>, --commit-action <ca value>
NVMe activate commit action value (0-7). This can only be used with -a|--
activate. Note: this option is not accepted by the Windows inbox driver.
Default value is 1.
-b <0|1>, --bpid <0|1>
Specify the boot partition ID. This can only be used with -a|--activate. Note:
this option is not accepted by the Windows inbox driver. Default value is 0.
-v, --validate
Validate the firmware image with the specified device(s). If used with --xml it
will check if any device(s) needs an update.
-r <seconds>, --rescan-control <seconds>
Set the delay in seconds between firmware update and the device re-scan.
Zero is no delay and negative numbers skip the re-scan. Default value is 1.
--pause-apst
Save and disable Autonomous Power State Transition (APST) before
update and restore afterwards.
--fast
Skip non-essential commands to speed up performance.
--no-sanitize-status
Do not check ATA sanitize status, which on some systems, may not operate
correctly.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
Command update
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
Command update
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit update disk0 -f X210400.FLUF

-Updates the firmware of device ‘disk0’ with the given firmware image.

wdckit update /dev/sda -f X210400.FLUF

-Updates the firmware of device ‘/dev/sda’ with the given firmware image.
wdckit update all -f X210400.FLUF -v -R update.txt

-Validates the firmware of all supported devices with given firmware image
and output is stored to file update.txt in current directory.
wdckit update disk0 disk1 -f X210400.FLUF --validate

-Validates the given firmware image with devices ‘disk0’ and ‘disk1.

wdckit update /dev/sda /dev/sdb -f X210400.FLUF --validate

-Validates the given firmware image with devices’/dev/sda’ and ’/dev/sdb.


wdckit update all -f X210400.FLUF

-Update the firmware of all supported devices with given firmware image.
wdckit update --model “TEST ABC123” -f X210400.FLUF

-Update the firmware of all devices with a model string ‘TEST ABC123’ with
the given firmware image.
wdckit update --model “TEST ABC123” -a -s 1 -c 1

-Commits the firmware in slot 1 on all devices with a model string ‘TEST
ABC123’.
wdckit update --model “TEST ABC123” --reset

-Performs a controller reset all devices with a model string ‘TEST ABC123’.
If a prior commit was ready to activate, this should perform the activation.
Not supported on all controllers. Not supported in FreeBSD.
wdckit update disk0 -f X210400.FLUF --log-level silent --no-progress -r -1 -x
-1 --fast

-Updates the firmware of device ‘disk0’ in the shortest amount of time.

wdckit update /dev/sda -f X210400.FLUF --log-level silent --no-progress -r


-1 -x -1 --fast

-Updates the firmware of device ‘/dev/sda’ in the shortest amount of time.


Command version
Description Displays version information.
Usage
wdckit version
Example(s)

Command writelog
Description This command is used to write a log page to the ATA device.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for SATA targets.
This task is only valid for WDC targets.
Usage
writelog <<devList> …|--model <model number> …|--serial <serial
number> …> [-s|-g|-G] <-d <dataFile>|--xml-encoder <filename>> [--
trace|--trace-with-scan|--no-trace] -l <value> [-f <value>] [-b <blocks>] [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
wdckit
csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--
no-linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-
ad] [--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|
debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute writelog command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
-d <dataFile>, --data <dataFile>
The binary filename to send to the device.
–OR–
--xml-encoder <filename>
Encode payload data as described by this xml file. Please refer to the user
guide appendix for the XML schema.
-l <value>, --logaddress <value>
The log address to access.
OPTIONAL
-s, --smart
Use SMART write log command to access the data.
–OR–
Command writelog
-g, --gpl
Use GPL write log command to access the data.
–OR–
-G, --gpl-dma
Use GPL write log DMA command to access the data.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-f <value>, --features <value>
Value for the FEATURES field. Default value is 0.
-b <blocks>, --block-count <blocks>
Specify the maximum number of blocks to transfer per command. Default
value is 1.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with
the Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
Command writelog
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit writelog disk0 -l 81h -d hostlog81h.bin --gpl-dma

-Write log address 81h (129 decimal) with data from the file hostlog81h.bin
using the GPL DMA interface.

wdckit writelog /dev/sda -l 81h -d hostlog81h.bin --gpl-dma

-Write log address 81h (129 decimal) with data from the file hostlog81h.bin
using the GPL DMA interface.
wdckit writelog disk0 -l 82h -d hostlog82h.bin --gpl

-Write log address 82h (130 decimal) with data from the file hostlog82h.bin
using the GPL PIO interface.

wdckit writelog /dev/sda -l 82h -d hostlog82h.bin --gpl

-Write log address 82h (130 decimal) with data from the file hostlog82h.bin
using the GPL PIO interface.
Command writelog
wdckit writelog disk0 -l 83h -d hostlog83h.bin --smart

-Write log address 83h (131 decimal) with data from the file hostlog83h.bin
using the SMART interface.

wdckit writelog /dev/sda -l 83h -d hostlog83h.bin --smart

-Write log address 83h (131 decimal) with data from the file hostlog83h.bin
using the SMART interface.
wdckit writelog disk0 -l 84h --xml-encoder log84h.xml --gpl

-Write log address 84h (132 decimal) with data from the file log84h.xml
using the GPL PIO interface.

wdckit writelog /dev/sda -l 84h --xml-encoder log84h.xml --gpl

-Write log address 84h (132 decimal) with data from the file log84h.xml
using the GPL PIO interface.

Command zns
Description Perform various ZNS operations and show ZNS reports.
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for NVMe targets.
This task is only valid for WDC targets.
Usage
zns [<devList> …|--model <model number> …|--serial <serial number> …]
<--open|--close|--finish|--reset|--offline|--set-zone-desc <filename>|--report
<max-value>|--extended-report <max-value>> [-r|--raw-limit <bytes>|--save
<path>] [--start-lba <lba>|--all-zones] [--trace|--trace-with-scan|--no-trace] [--
data-lifetime <lifetime>] [-s <all|empty|implicitly-opened|explicitly-opened|
wdckit closed|full|read-only|offline>] [-p] [--nsid <value>] [-u <uuid index>] [-R
<filename>] [--no-win-disk] [--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-
csmi] [--no-win-rste] [--no-win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-
linux-nvme] [--no-linux-wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad]
[--no-mr] [--probe-flag <flag bits>] [-z] [--log-level <silent|error|info|debug|
cmd-debug>] [-h]
REQUIRED
--open
Open one or more zones. NOTE: In Linux, the device name MUST be a
namespace name (eg /dev/nvme0n1).
–OR–
--close
Close one or more zones. NOTE: In Linux, the device name MUST be a
namespace name (eg /dev/nvme0n1).
–OR–
Command zns
--finish
Finish one or more zones. NOTE: In Linux, the device name MUST be a
namespace name (eg /dev/nvme0n1).
–OR–
--reset
Reset one or more zones. NOTE: In Linux, the device name MUST be a
namespace name (eg /dev/nvme0n1).
–OR–
--offline
Offline one or more zones. NOTE: In Linux, the device name MUST be a
namespace name (eg /dev/nvme0n1).
–OR–
--set-zone-desc <filename>
Attach Zone Descriptor Extension data to a zone. NOTE: In Linux, the
device name MUST be a namespace name (eg /dev/nvme0n1).
–OR–
--report <max-value>
Reports zone descriptor entries through the Report Zones data structure.
Use -1 to report all entries. NOTE: In Linux, the device name MUST be a
namespace name (eg /dev/nvme0n1).
–OR–
--extended-report <max-value>
Reports zone descriptor entries through the Extended Report Zones data
structure. Use -1 to report all entries. NOTE: In Linux, the device name
MUST be a namespace name (eg /dev/nvme0n1).
OPTIONAL
<devList> (accepted multiple times)
Device name(s) to execute zns command.
–OR–
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
--save <path>
Saves the device output to the path specified.
--start-lba <lba>
Specify the zone starting LBA. Used with open, close, finish, reset, offline,
report, extended-report or set zone desc options.
–OR–
Command zns
--all-zones
Select all zones. Used with open, close, finish, reset, offline or set zone
desc options.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
--data-lifetime <lifetime>
Specify the zone data lifetime. Used with open zone. Valid values range
from 0 to 3Fh. Default value is 0.
-s <all|empty|implicitly-opened|explicitly-opened|closed|full|read-only|
offline>, --state <all|empty|implicitly-opened|explicitly-opened|closed|full|
read-only|offline>
Filter report/extended report to only this state. Default value is all.
-p, --partial
Show a parital report/extended report.
--nsid <value>
Specify the NVMe namespace ID value. Default value is dependent upon
the options.
-u <uuid index>, --uuid-index <uuid index>
Specify the NVMe UUID Index (0-7fh). Default value is 0. This field is only
valid for NVMe devices. It will be ignored for ATA/SCSI devices.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
Command zns
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit zns disk0 --report 1000 --state all

-Report first 1000 ZNS zone info for all zones for device ‘disk0’.

wdckit zns /dev/nvme0n1 --report 1000 --state all

-Report first 1000 ZNS zone info for all zones for device ‘/dev/nvme0n1’.
Command zns
wdckit zns disk1 --report 1000 --state read-only

-Report first 1000 ZNS zone infos for read-only zones for device ‘disk1’.

wdckit zns /dev/nvme1n1 --report 1000 --state read-only

-Report first 1000 ZNS zone infos for read-only zones for device ‘/dev/
nvme1n1’.
wdckit zns disk0 --report 4 --partial --state all

-Report first 4 partial ZNS zone info for all zones for device ‘disk0’.

wdckit zns /dev/nvme0n1 --report 4 --partial --state all

-Report first 4 partial ZNS zone info for all zones for device ‘/dev/nvme0n1’.
wdckit zns disk0 --extended-report 8 --state all

-Report first 8 extended ZNS zone info for all zones for device ‘disk0’.

wdckit zns /dev/nvme0n1 --extended-report 8 --state all

-Report first 8 extended ZNS zone info for all zones for device ‘/dev/
nvme0n1’.

Command zone
Description Perform various Zoned ATA/Block Commands (ZAC/ZBC).
Restriction
(s)
This task is only valid for an actual target.
This task is only valid for ZAC/ZBC device.
This task is only valid for WDC targets.
This task requires the device to be ready.
Usage
zone <<devList> …|--model <model number> …|--serial <serial number> …
> <--report-zones|--close|--finish|--open|--reset> [-r|--raw-limit <bytes>|-s
<path>] [--trace|--trace-with-scan|--no-trace] [-a] [--start-lba <lba>] [-p
<count>] [-o <all|empty|implicitly-opened|explicitly-opened|closed|full|read-
only|offline|inactive|rwp-recommeded|non-seq-wr-res-active|zone-cond-not-
wdckit
write-ptr>] [--no-sanitize-status] [-x <bytes>] [-R <filename>] [--no-win-disk]
[--no-win-ctrl-hdc] [--no-win-ctrl-scsi] [--no-win-csmi] [--no-win-rste] [--no-
win-amd-raid] [--no-win-ses] [--no-linux-scsi] [--no-linux-nvme] [--no-linux-
wd-nvme] [--no-bsd-cam] [--no-bsd-nvme] [--no-ad] [--no-mr] [--probe-flag
<flag bits>] [-z] [--log-level <silent|error|info|debug|cmd-debug>] [-h]
REQUIRED
<devList> (accepted multiple times)
Device name(s) to execute zone command.
–OR–
Command zone
--model <model number> (accepted multiple times)
Filter devices that only match this model number.
–OR–
--serial <serial number> (accepted multiple times)
Filter devices that only match this serial number.
–AND–
--report-zones
Report zones.
–OR–
--close
Close zone.
–OR–
--finish
Finish zone.
–OR–
--open
Open zone.
–OR–
--reset
Reset write pointer.
OPTIONAL
-r, --raw
Dump the raw buffer.
–OR–
--raw-limit <bytes>
Dump the raw buffer, with at most, this many bytes.
–OR–
-s <path>, --save <path>
Saves the device output to the path specified.
--trace
Save trace log for command operation upon success. Note, by default,
trace logging enabled upon error. The trace log filename is wdckit-trace.txt.
–OR–
--trace-with-scan
Save trace log for command operation and include commands issued while
scanning for devices.
–OR–
--no-trace
Disable trace logging.
-a, --all-zones
Perform zone operation (open/close/finish/reset) on all zones.
--start-lba <lba>
Specify the zone starting LBA.
-p <count>, --partial <count>
Show a partial zone report, with at least this many entries. Note: The OS
may prevent large values from succeeding.
Command zone
-o <all|empty|implicitly-opened|explicitly-opened|closed|full|read-only|offline|
inactive|rwp-recommeded|non-seq-wr-res-active|zone-cond-not-write-ptr>,
--reporting-option <all|empty|implicitly-opened|explicitly-opened|closed|full|
read-only|offline|inactive|rwp-recommeded|non-seq-wr-res-active|zone-
cond-not-write-ptr>
Filter report with this reporting option. Default value is all.
--no-sanitize-status
Do not check ATA sanitize status, which on some systems, may not operate
correctly.
-x <bytes>, --xfer <bytes>
Specify maximum number of bytes to transfer for --report-zones option.
Must be a multiple of 512. Default values is 64KB.
-R <filename>, --redirect <filename>
Redirects the screen output to the file specified.
--no-win-disk
Do not interact with Windows disk devices (eg disk* and only useful with the
Windows version).
--no-win-ctrl-hdc
Do not interact with Windows controller HDC devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-ctrl-scsi
Do not interact with Windows controller SCSI devices (eg storage space
devices disk* or NVMe controllers without namespaces nvme* and only
useful with the Windows version).
--no-win-csmi
Do not interact with Windows CSMI devices (eg csmi* and only useful with
the Windows version).
--no-win-rste
Do not interact with Windows RSTe devices (eg rste* and only useful with
the Windows version).
--no-win-amd-raid
Do not interact with Windows AMD raid devices (eg amdraid* and only
useful with the Windows version).
--no-win-ses
Do not interact with Windows SCSI Enclosure Service (SES) devices (eg
SCSI*)
--no-linux-scsi
Do not interact with Linux ATA/SCSI devices (eg /dev/sg* or /dev/sd* and
only useful with the Linux version).
--no-linux-nvme
Do not interact with Linux NVMe devices (eg /dev/nvme* and only useful
with the Linux version).
--no-linux-wd-nvme
Do not interact with Linux NVMe devices using the WD NVMe driver (eg
wdnvme_bdfs* and only useful with the Linux version).
--no-bsd-cam
Do not interact with FreeBSD CAM devices (eg /dev/ada* and only useful
with the FreeBSD version).
Command zone
--no-bsd-nvme
Do not interact with FreeBSD NVMe devices (eg /dev/nvme* and only
useful with the FreeBSD version).
--no-ad
Do not use the AD driver (only useful with the RAID version).
--no-mr
Do not use the MR driver (only useful with the RAID version).
--probe-flag <flag bits>
Specify probe flags (bit 0: Windows prefer SAT passthru over ATA
passthru). Default value is 0.
-z, --nobanner
Suppresses the banner from printing, which includes information such as
copyright, license, etc.
--log-level <silent|error|info|debug|cmd-debug>
Change log level. Default value is cmd-debug.
-h, --help
Display help and exit.
Example(s)
wdckit zone disk0 --report-zones

-Report zone info for all zones for device ‘disk0’.

wdckit zone /dev/sda --report-zones

-Report zone info for all zones for device ‘/dev/sda’.


wdckit zone disk0 --report-zones --partial 15 --start-lba 10000000h

-Report partial zone info (at least 15 zone descriptors) starting at LBA
10000000h for device ‘disk0’.

wdckit zone /dev/sda --report-zones --partial 15 --start-lba 10000000h

-Report partial zone info (at least 15 zone descriptors) starting at LBA
10000000h for device ‘/dev/sda’.
wdckit zone disk0 --report-zones --reporting-option closed

-Report zone info for closed zones for device ‘disk0’.

wdckit zone /dev/sda --report-zones --reporting-option closed

-Report zone info for closed zones for device ‘/dev/sda’.


wdckit zone disk0 --open --start-lba 10600000h

-Open zone starting at LBA 10600000h for device ‘disk0’.

wdckit zone /dev/sda --open --start-lba 10600000h

-Open zone starting at LBA 10600000h for device ‘/dev/sda’.


Command zone
wdckit zone disk0 --finish --start-lba 10600000h

-Finish zone starting at LBA 10600000h for device ‘disk0’.

wdckit zone /dev/sda --finish --start-lba 10600000h

-Finish zone starting at LBA 10600000h for device ‘/dev/sda’.


wdckit zone disk0 --close --start-lba 10600000h

-Close zone starting at LBA 10600000h for device ‘disk0’.

wdckit zone /dev/sda --close --start-lba 10600000h

-Close zone starting at LBA 10600000h for device ‘/dev/sda’.


wdckit zone disk0 --reset --start-lba 10600000h

-Reset write pointer starting at LBA 10600000h for device ‘disk0’.

wdckit zone /dev/sda --reset --start-lba 10600000h

-Reset write pointer starting at LBA 10600000h for device ‘/dev/sda’.

Appendix
Reference for --xml-decoder <filename>
XML decoder Field reference

This XML <Field> is used with all XML schemas in this section. It is unbounded, so it can be
repeated as many times as needed.

<!-- unbounded, may be repeated as many times as needed -->


<Field>
<Offset>integer</Offset>
<Length>integer</Length>
<Name>string</Name>
<!-- BitStart and BitEnd are optional-->
<BitStart>integer</BitStart>
<BitEnd>integer</BitEnd>
<!--Use either DataType (once) or Data (max 32)-->
<DataType>Decimal|Hex|String|ByteSwapString</DataType>
<Data>
<Value>integer</Value>
<Description>string</Description>
</Data>
</Field>

<BitStart> and <BitEnd> are optional, but used as pairs.


The <Data> and <DataType> are mutually exclusive - use one type, but not both.

NVMe Identify Namespace

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<NVME>
<IdentifyNamespace>
<Field>
</Field>
</IdentifyNamespace>
</NVME>
</CSSD>

NVMe Identify Controller

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<NVME>
<IdentifyController>
<Field>
</Field>
</IdentifyController>
</NVME>
</CSSD>

SATA Identify Device

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<SATA>
<IdentifyDevice>
<Field>
</Field>
</IdentifyDevice>
</SATA>
</CSSD>
SCSI Inquiry

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<SCSI>
<Inquiry>
<Field>
</Field>
</Inquiry>
</SCSI>
</CSSD>

NVMe Get Feature

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<NVME>
<!-- id attribute (decimal) is optional
- allows for multiple sections in one file-->
<GetFeature id="integer">
<Field>
</Field>
</GetFeature>
</NVME>
</CSSD>

GetFeature has an optional XML attribute “id” which allows multiple GetFeature XML nodes in the
the same <CSSD><NVME> XML file.

NVMe Get Log

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<NVME>
<!-- id attribute (decimal) is optional
- allows for multiple sections in one file-->
<GetLogPage id="integer">
<Field>
</Field>
</GetLogPage>
</NVME>
</CSSD>
GetLogPage has an optional XML attribute “id” which allows multiple GetLogPage XML nodes in
the the same <CSSD><NVME> XML file.

SATA Get Log

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<SATA>
<!-- id attribute (decimal) is optional
- allows for multiple sections in one file-->
<!-- Use either ReadGPL or ReadSmartLog -->
<ReadGPL id="integer">
<Field>
</Field>
</ReadGPL>
<ReadSmartLog id="integer">
<Field>
</Field>
</ReadSmartLog>
</SATA>
</CSSD>

ReadGPL/ReadSmartLog has an optional XML attribute “id” which allows multiple ReadGPL/
ReadSmartLog XML nodes in the the same <CSSD><SATA> XML file.

SCSI Get Log

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<SCSI>
<!-- id attribute (decimal) is optional
- allows for multiple sections in one file-->
<LogSense id="integer">
<Field>
</Field>
</LogSense>
</SCSI>
</CSSD>

LogSense has an optional XML attribute “id” which allows multiple LogSense XML nodes in the
the same <CSSD><SCSI> XML file.
Reference for --xml-encoder <filename>
XML encoder Field reference

This XML <Field> is used with all XML schemas in this section. It is unbounded, so it can be
repeated as many times as needed.

<!-- unbounded, may be repeated as many times as needed -->


<Field>
<Offset>integer</Offset>
<Length>integer</Length>
<!-- BitStart and BitEnd are optional -->
<BitStart>integer</BitStart>
<BitEnd>integer</BitEnd>
<Name>string</Name>
<DataType>Decimal|Hex|String</DataType>
<!-- For Hex, do not use 0x prefix or h suffix -->
<Value>integer|string</Value>
</Field>

<BitStart> and <BitEnd> are optional, but used as pairs.

NVMe Set Features

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<NVME>
<!-- id attribute (decimal) is optional
- allows for multiple sections in one file-->
<SetFeature id="integer">
<!-- Size, in bytes, that this feature id expects -->
<Size>integer</Size>
<!-- little endian is default -->
<Endian>little|big</Endian>
<Field>
</Field>
</SetFeature>
</NVME>
</CSSD>

SetFeature has an optional XML attribute “id” which allows multiple SetFeature XML nodes in the
the same <CSSD><NVME> XML file.
SATA Write Log

<?xml version="1.0" encoding="utf-8"?>


<CSSD>
<FileFormatMajor>1</FileFormatMajor>
<FileFormatMinor>0</FileFormatMinor>
<SATA>
<!-- id attribute (decimal) is optional
- allows for multiple sections in one file-->
<-- use either WriteSmartLog or WriteGPL -->
<WriteSmartLog id="integer">
<!-- Size, in bytes, should be a multiple of 512 -->
<Size>integer</Size>
<!-- little endian is default -->
<Endian>little|big</Endian>
<Field>
</Field>
</WriteSmartLog>
<WriteGPL id="integer">
<Size>integer</Size>
<!-- little endian is default -->
<Endian>little|big</Endian>
<Field>
</Field>
</WriteGPL>
</SATA>
</CSSD>

WriteSmartLog/WriteGPL has an optional XML attribute “id” which allows multiple


WriteSmartLog/WriteGPL XML nodes in the the same <CSSD><SATA> XML file.

Reference for getsmart --namesub <filename>


Getsmart xml schema

<smart>
<!-- create aname array for all attributes -->
<aname id="integer">attribute name</aname>
</smart>
Reference for update --xml <filename>
Update top-level xml schema

<lista_devices>
<!-- lista_device is unbounded, may be repeated as
many times as needed -->
<lista_device model="model number">
<url>filename</url>
</lista_device>
</lista_devices>

Update low-level xml schema

<!-- this filename as noted from the url tag in the


top-level xml schema -->
<ffu>
<!-- fwfile specifies the filename of the firmware binary file --
>
<fwfile>bin file</fwfile>

<!-- dependency is unbounded, may be repeated as


many times as needed -->
<dependency>version</dependency>

<!-- fwversion is the new firmware version after update -->


<fwversion>version</fwversion>
</ffu>

Log Address
ATA Log pages

wdckit getlog <dev> -l <Log Address>

wdckit getlog <dev> -l <Log Address> --smartlog

Log Address Description Access


0h Log Directory GPL, SL
1h Summary SMART error log SL
2h Comprehensive SMART error log SL
3h Extended Comprehensive SMART error log GPL
4h Device Statistics log GPL, SL
5h Reserved for CFA
6h SMART self-test log SL
Log Address Description Access
7h Extended self-test log GPL
8h Power Conditions log GPL
9h Selective self-test log SL
Ah Device Statistics Notification GPL
Bh Reserved for CFA
Ch Pending Defects log GPL
Dh LPS Mis-alignment log GPL, SL
Eh Reserved for ZAC-2
Fh Sense Data for Successful NCQ Cmds log GPL
10h NCQ Command Error log GPL
11h SATA Phy Event Counters log GPL
12h SATA NCQ Non-Data log GPL
13h SATA NCQ Send and Receive log GPL
14h Hybrid Information log GPL
15h Rebuild Assist log GPL
16h OOB management control log GPL
17h Reserved for Serial ATA
18h Command duration time limits log GPL
19h LBA Status log GPL
20h Streaming performance log [OBS-8]
21h Write stream error log GPL
22h Read stream error log GPL
23h Delayed sector log [OBS-8]
24h Current Device Internal Status Data log GPL
25h Saved Device Internal Status Data log GPL
2Fh Set Sector Configuration GPL
30h IDENTIFY DEVICE data log GPL, SL
42h Mutate Configurations log GPL
47h Concurrent Positioning Ranges log GPL
53h Sense Data log GPL
61h Capacity/Model Number Mapping log GPL
80h…9Fh Host Specific GPL, SL
A0h…A5h Device Vendor Specific GPL, SL
A6h Device Vendor Specific (FACT) GPL, SL
A7h…DFh Device Vendor Specific GPL, SL
E0h SCT Command/Status GPL, SL
E1h SCT Data Transfer GPL, SL

GPL = General Purpose Logging; SL = SMART logging. By default, wdckit will use access the log
via GPL. Use –smartlog to access a SMART log address.

NVMe log identifiers

wdckit getlog <dev> -l <Log Id>


Log Id Description
0h Supported Log Pages
1h Error Infomation
2h SMART / Health Information
3h Firmware Slot Information
4h Changed Namespace List
5h Commands Supported and Effects
6h Device Self-test
7h Telemetry Host-Initiated
8h Telemetry Controller-Initiated
9h Endurance Group Information
Ah Predictable Latency Per NVM Set
Bh Predictable Latency Event Aggregate Log
Ch Asymmetric Namespace Access
Dh Persistent Event Log
Eh LBA Status Information
Fh Endurance Group Event Aggregate
10h Media Unit Status
11h Supported Capacity Configuration List
12h Feature Identifiers Supported and Effects
13h NVMe-MI Commands Supported and Effects
14h Command and Feature Lockdown
15h Boot Partition
16h Rotational Media Information Log
19h Eye Opening Monitor Log
70h Discovery
80h Reservation Notification
81h Sanitize Status
BFh Changed Zone List

SCSI log identifiers

wdckit getlog <dev> -l <Page Code> [-p <Page List>]

Page Code Page List Description


0h Supported Log Pages
0h FFh Supported Log Pages and Subpages
1h Buffer Over-Run/Under-Run
2h Write Error Counters
3h Read Error Counters
5h Verify Error Counters
6h Non-Medium Error
7h Last n Error Events
Page Code Page List Description
8h Format Status
Bh Last n Deferred Errors Or Asynchronous Events
Ch Logical Block Provisioning
Dh Temperature
Dh 1h Environmental Reporting
Dh 2h Environmental Limits
Eh Start-Stop Cycle Counter
Eh 1h Utilization
Fh Application Client
10h Self-Test Results
11h Solid State Media
15h Background Scan Results
15h 1h Pending Defects
15h 2h Background Operation
15h 3h LPS Misalignment
16h ATA PASS-THROUGH Results
17h Non-volatile Cache
19h General Statistics and Performance
19h 20h Cache Memory Statistics
1Ah Power Condition Transitions
2Fh Informational Exceptions

NVMe Identify CNS/CSI Values


wdckit idd <dev> --cns <CNS> [--csi <CSI>]

CNS CSI Description


0h Identify Namespace Data
1h Identify Controller Data
2h Active Namespace ID List
3h Namespace Identification Descriptor List
4h IOCS NVM Set List
5h 0h IOCS Identify Namespace Data
5h 1h KV Identify Namespace Data
5h 2h ZNS Identify Namespace Data
6h 0h IOCS Identify Controller Data
6h 1h KV Identify Controller Data
6h 2h ZNS Identify Controller Data
7h 0h IOCS Identify Active Namespace List
7h 1h KV Identify Active Namespace List
7h 2h ZNS Identify Active Namespace List
8h 0h IOCS Independent Identify Namespace Data
8h 1h KV Independent Identify Namespace Data
CNS CSI Description
8h 2h ZNS Independent Identify Namespace Data
10h Allocated Namespace ID List
11h 0h IOCS Identify Namespace Data
11h 1h KV Identify Namespace Data
11h 2h ZNS Identify Namespace Data
12h Identify Controller List Data
13h Identify Subsystem Controller List
14h Identify Primary Controller Capabilities Data
15h Identify Secondary Controller Capabilities Data
16h Identify Namespace Granularity List
17h Identify UUID List
18h Identify Domain List
19h Identify Endurance Group List
1Ah 0h IOCS Allocated Namespace ID List
1Ah 1h KV Allocated Namespace ID List
1Ah 2h ZNS Allocated Namespace ID List
1Bh 0h IOCS Identify Namespace Data
1Bh 1h KV Identify Namespace Data
1Bh 2h ZNS Identify Namespace Data
1Ch 0h IOCS Identify Data
1Ch 1h KV Identify Data
1Ch 2h ZNS Identify Data

SCSI Inquiry EVPD pages


wdckit idd <dev> -v <VPD>

VPD Description
0h Supported VPD Pages
80h Unit Serial Number
83h Device Identification
84h Software Interface Identification
85h Management Network Addresses
86h Extended INQUIRY Data
87h Mode Page Policy
88h SCSI Ports
89h ATA Information
8Ah Power Condition
8Bh Device Constituents
8Ch CFA Profile Information
8Dh Power Consumption
8Fh Third-party Copy
90h Protocol Specific Logical Unit Information
VPD Description
91h Protocol Specific Port Information
92h SCSI Feature Sets
B0h Block Limits
B1h Block Device Characteristics
B2h Logical Block Provisioning
B3h Referrals
B4h Supported Block Lengths And Protection Types
B5h Block Device Characteristics Extension
B6h Zoned Block Device Characteristics
B7h Block Limits Extension

You might also like