Hugo Users Guide
Hugo Users Guide
HUGO
Western Digital Corporation
February 2020
Product Scope
Overview
Hugo CLI was created to allow customers to perform drive maintenance functions without having to
remove the drive from their environment.
Features
Command Description
Abort a running self test
abort
Manage a list of devices that hugo will not run on
do-not-operate
Erase all or part of the device
erase
Show the End User License Agreement
eula
Show the help output
help
Format a specific device
format
Dump logs from specified devices
logdump
Allows the user to perform namespace operations (list, create,
namespace delete, etc) on NVMe devices
Supported Products
Supported Controllers
Vendor Family
Broadcom (formerly LSI) SAS/SATA 30xx Host Bus Adapters
Broadcom SAS/SATA 92x x Host Bus Adapters
Broadcom SAS/SATA 93xx Host Bus Adapters
Broadcom MegaRAID SATA + SAS 92xx RAID Controllers
ATTO ExpressSAS SAS/SATA H6xx Host Bus Adapters
ATTO ExpressSAS SAS/SATA H12xx Host Bus Adapters
Tempo SAS Pro ExpressCard 34
HighPoint RocketRAID 23xx
Vendor Family
Microsemi Adaptec 8885 RAID
HBA 1100 series, SmartHBA 2100 series, and SmartRAID
Microsemi Adaptec
3100 series
Supported Drivers
Prerequisite Description
HBA and RAID controller Drivers provided by vendors of Host Bus Adapters and RAID
Drivers controllers.
Linux systems require ncurses 5.x libraries. On RHEL 8, this
ncurses 5.x libraries
means the ‘ncurses-compat-libs’ package is required.
Installation
Overview
This section addresses issues regarding the compatibility, system requirements, installation and
configuration of Hugo.
Installation Packages
Hugo installers are available for a variety of platforms. It is the responsibility of the user to be
knowledgeable of the specific platform on which Hugo will be installed. An authorized
representative will e-mail the desired version of Hugo to the user. The packages must be unpacked
in a default directory or a temporary directory.
Installation Package Description
hugo-x.x.x.x86_64.tar.gz Standalone instance for Linux 64-bit x86 platforms
hugo-x.x.x.x86_64.rpm For RHEL-based Linux 64-bit x86 platforms
hugo-x.x.x.x86_64.deb For Debian-based Linux 64-bit x86 platforms
hugo-x.x.x.freebsdxx.zip For FreeBSD 64-bit x86 platforms
HUGO-x.x.x.win64.exe For Windows 64-bit x86 platforms
HUGO-x.x.x.winArm64.exe For Windows 64-bit ARM platforms
User Privileges
Prerequisite Description
Linux Distributions root authority is required
Windows Distributions Administrator authority is required
2. Download the Hugo TAR file to the temporary installation folder or directory.
3. Open a terminal window and change directories to the temporary installation folder or
directory.
• Use of Hugo after this installation will be from this directory with
./hugo
Upgrade Procedure
To upgrade Hugo:
3. Create a directory for installation and download the most recent Hugo release (TAR).
4. Open a terminal in the installation directory.
5. Use the tar command to install the new Hugo tarball, e.g.,
Uninstall Procedure
To uninstall Hugo:
3. Download the Hugo 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.
Upgrade Procedure
To upgrade Hugo:
To uninstall Hugo:
3. Run:
3. Download the Hugo 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.
Upgrade Procedure
To upgrade Hugo:
Uninstall Procedure
To uninstall Hugo:
Windows Installation
Double click on the installation executable file.
To Launch Hugo – Open a command prompt terminal with administrator privileges (Run as
administrator). Change directory to the HUGO/bin install directory specified on step 4 above.
Execute Hugo by typing the following command:
.\hugo
Uninstall Procedure
To uninstall Hugo:
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 hugo. 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:
Command Arguments
The <command> must consist of one command and <flags> may consist of zero or multiple
combinations of flags. Flags modify the command behavior and are specific to each command.
Command a, abort
Description Show a list of connected devices. Also refreshes device list.
Usage
{-s <serial number> | -m <model string> | -g <device path> | -a}[--no-
abort
apti] [--no-spti] [--no-sg] [--no-ad] [--no-mr] [--no-serial] [-h]
REQUIRED
-s, --serial <serial number >
Abort drive self test on a device specified by serial number.
–OR–
-m, --model <model number >
Abort drive self test on device(s) specified by model number.
–OR–
-g, --target <device path >
Operate on targets with device handles specified by this option.
Command a, abort
–OR–
-a, --all
Abort drive self test on all devices.
NOT REQUIRED
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial
Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command do-not-operate
Description Manage a list of devices that hugo will not run on
Usage
do-not-operate {-d | -s <serial number> | -c} [-h]
REQUIRED
-d, --display
Print a list of all devices from Do Not Operate list.
–OR–
-s, --serial <serial number >
Add this device to the Do Not Operate list.
–OR–
-c, --clear <model number >
Clear all devices from Do Not Operate list.
NOT REQUIRED
-h, --help
Displays usage information and exits.
Command e, erase
Description Erase all or part of the device
Usage
{-t | -f} {-s <serial number> | -m <model number> | -g <device path>}[--
erase
force] [--no-apti] [--no-spti] [--no-sg] [--no-ad] [--no-mr][--no-serial] [-h]
REQUIRED
-t, --table
Erase the device partition table
Command e, erase
–OR–
-f, --full
Pack write 0’s to the device in its entirety. If the command fails a
manual restart of the command will be required.
–AND–
-s, --serial <serial number >
Abort drive self test on a device specified by serial number.
–OR–
-m, --model <model number >
Abort drive self test on device(s) specified by model number.
–OR–
-g, --target <device path >
Operate on targets with device handles specified by this option.
NOT REQUIRED
--force
Don’t prompt the user before erasing the device(s). WARNING: THIS
MAY ERASE YOUR BOOT DRIVE
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command eula
Description Show the End User License Agreement
Usage eula
Command f, format
Description Format a specific device
Usage
{-s <serial number> | -m <model number> |-g <device path>} [--danger-
zone] [--simple-progress] [--hide-progress] [-p <protection type>] [--
format fastformat] [--media-compatibility-check] [--merge] [-n <number of
blocks>] [-b <block size>] [--no-apti] [--no-spti] [--no-sg] [--no-ad] [--no-mr]
[--no-serial] [-h]
REQUIRED
Command f, format
-s, --serial <serial number >
Abort drive self test on a device specified by serial number.
–OR–
-m, --model <model number >
Abort drive self test on device(s) specified by model number.
–OR–
-g, --target <device path >
Operate on targets with device handles specified by this option.
NOT
REQUIRED
--danger-zone
Tells Hugo that the user knows they are going to destroy your data with
this command and will not prompt the user.
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script. (Same as hide-progress flag)
--hide-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
-p <protection type>, --protection <protection type>
Specify a type of Protection Information (0,1,2,3).
--fastformat
Set Fast Format.
-c, --media-compatibility-check
Set media compatibility check flag
--merge Merge G-List and P-List.
-n <number of blocks>, --numblocks <number of blocks>
Specify number of blocks to format. Default: current size. Specifying
‘max’ will format to maximum number of blocks supported by the device.
-b <block size>, --blocksize <block size>
Format the device to a specified block size (512, 4096). Additional
special case sizes for SAS drives only include: 520, 528, 4112, 4160, and
4224. Special cases may not be supported by your specific firmware
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command h, help
Description Show the help output
Usage Help
Command l, logdump
Description Dump logs from specified devices
logdump {-s <serial number> | -m <model number> | -a | -g <device path>}
[-p <output file path>] [--threadPoolSize] [--inc-max][--inc-update] [--inc-
Usage start] [--archive] [--all-modes][--partial-context] [--fly-height] [--p-list] [--ati]
[--south-dump][--short] [--no-apti] [--no-spti] [--no-sg] [--no-ad] [--no-mr][--
no-serial] [-h]
REQUIRED
-s <serial number>, --serial <serial number>(accepted multiple times)
Dump logs of a single device specified by serial number.
–OR–
-m <model number>, --model <model number>
Dump logs from all HGST devices of specified model.
–OR–
-a, --all
Dump logs from all devices.
–OR–
-g, --target
Filter out devices target(s) NOT specified by this option. Addingdevice
handles via this option will prevent other drives from beingshown. For an
example in Linux, \“hugo s --target /dev/sg6 --target/dev/sg7\” would only
show up to two drives which matched thosedevices. Device handles can
be acquired by running a standard showwith the --device option and then
using the first value given inthe \“Device handles\” list for a drive. This
option is notavailable in the interactive mode.
-p <output file path>, --path <output file path>
Logfile output path
NOT
REQUIRED
--threadPoolSize <num threads>
Set the thread pool size for logdump.
--inc-max
Collects incremental log with maximum log entries (specified in mode page
0x1C, sub-page 0xE5).
--inc-update
Collects incremental update log.
--inc-start
Collects incremental starting log.
--archive
Legacy Logs Only. Collects all legacy logs and puts them in an archive.
Command l, logdump
--all-modes
Collects all available logs
--partial-context
Collects device partial context data
--fly-height
Collects device Fly-height data
--p-list
Collects device P-List data
--ati
Collects device Adjacent Track Interference (ATI) data
--south-dump
Collects debug information for SSDs only
--short
A small log for data-collection purposes
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command n,namespace
Allows the user to perform namespace operations (list,create,
Description delete, etc)
on NVMe devices
Usage
{-s <serial number> | -m <model number> | -a}
{-l|-d|-r|-c|--attach|--detach|-f}
[--metadata <0 or 8>][--dif <0, 1, 2, or 3>] [--protection <1 or 8>]
namespace
[--sector <512, 520, 528, 4096, 4160, or 4224>][--size
<gigabytes>] [-i <id number>] [--no-apti]
[--no-spti][--no-ad] [--no-mr] [--no-serial] [-h]
REQUIRED:
-s <serial number>,
--serial <serial number> (accepted multiple times)
Operate on a single device specified by serial number.
–OR–
-m <model number>, --model <model number>
Operate on all HGST devices of specified model.
Command n,namespace
–OR–
-a, --all
Operate on all devices.
SubCommands
-l, --list
List drive namespaces.
–OR–
-d, --delete
Delete a namespace.
–OR–
-r, --resize
Resize a namespace.
–OR–
-c, --create
Create a new namespace.
–OR–
--attach
Attach the given namespace id.
–OR–
--detach
Detach the given namespace id.
–OR–
-f, --format
Format a namespace.
NOT REQUIRED
--metadata <0 or 8>
Specify the metadata size for a format.
--dif <0, 1, 2, or 3>
Specify the diff level for format.
--protection <1 or 8>
Specify the protection interval for format.
--sector <512, 520, 528, 4096,4160, or 4224>
Specify the sector size for format.
--size <gigabytes>
Specify the target size for create and resize options.
-i <id number>, --id <id number>
Namespace id required for all namespaces function except list
and create.
--no-apti
Do not use the APTI driver (Windows Only) (command line
only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line
only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
Command n,namespace
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command powerstate
Description Lists the power state of NVMe devices
Usage
{-s <serial number> | -m <model number> | -a}
powerstate
[--no-apti][--no-spti][--no-ad] [--no-mr] [--no-serial] [-h]
REQUIRED:
-s <serial number>,
--serial <serial number> (accepted multiple times)
Operate on a single device specified by serial number.
–OR–
-m <model number>,--model <model number>
Operate on all HGST devices of specified model.
–OR–
-a, --all
Operate on all devices.
NOT REQUIRED
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command psid
Description Send a PSID string to a device
Usage
{-s <serial number> | -m <model number> | -a}
psid
[--no-apti][--no-spti][--no-ad] [--no-mr] [--no-serial] [-h]
REQUIRED:
Command psid
-s <serial number>, --serial <serial number>
Operate on a single device specified by serial number.
NOT REQUIRED
--skip-status
Pass the PSID regardless of the stat of the device
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command sanitize
Description Sanitize a device
Usage
{-c | -o <overwrite count> | -b | --show-sanitize-support | --show-
progress}
sanitize {-s <serial number> | -m <model number> | -g <device path>}
[-a] [--danger-zone] [--simple-progress] [--hide-progress] [--no-apti]
[--no-spti][--no-ad] [--no-mr] [--no-serial] [-h]
REQUIRED:
-c --crypto
Perform Sanitize cryptographic erase operation.
–OR–
-o <overwrite count>, --overwrite <overwrite count>
Perform Sanitize overwrite operation.
–OR–
-b, --block
Perform Sanitize block erase operation
–OR–
--show-sanitize-support
Print the sanitize operations(s) supported by the target drive(s)
–OR–
Command sanitize
--show-progress
Show the progress of an in-progress sanitize operation if one exists
–AND–
-s <serial number>,
--serial <serial number> (accepted multiple times)
Operate on a single device specified by serial number.
–OR–
-m <model number>,--model <model number>
Operate on all HGST devices of specified model.
–OR–
-g <device path>
Operate on targets with device handles specified by this option.
NOT
REQUIRED
-p <pattern>, --pattern <pattern>
Specifies the pattern that will be used for the overwrite sanitize
operation. Not valid if --file option is also specified. To specify length of
pattern in bytes, use –length option. Valid lengths are 1-4 and default is
4 bytes.
–OR–
-f <file name>, --file <file name>
Specifies the path to a file containing a binary pattern that will be written
to all user data blocks during an overwrite operation. Not valid if --
pattern is also specified
-l <length>, --length <length>
Specifies the length of the pattern (1-4) in bytes. This argument is only
valid for overwrite sanitize. If not specified, default is 4.
--invert
Flag only valid for overwrite sanitize command. Invert flag indicates that
the --pattern option or the value within the filename specified by the --file
option should be inverted each time it is written. The --file or --pattern
options must also be specified.
--danger-zone
Tells the application that the user knows they are going to destroy their
data with this command and will not prompt the user.
--simple-progress
Prevent the display of the progress bar screen, useful when running
commands from a script. (Same as hide-progress flag)
--hide-progress
Prevent the display of the progress bar screen, useful when running
commands from a script.
--no-progress
Prevent all output of sanitize progress.
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
Command sanitize
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command show
Description Show a list of connected devices. Also refreshes device list.
Usage
[--device] [--hgst-firmware] [-l] [-m] [-b] [-w] [-g <device path>] [--no-apti]
show
[--no-spti][--no-ad] [--no-mr] [--no-serial] [-h]
NOT
REQUIRED
--device
Show the drive device paths if available.
--customer-id
Show the customer ID and hgst internal firmware.
--hgst-firmware
how the hgst internal firmware. (Deprecated)
-l, --locked
Show reason devices are locked.
-b, --block-size
Show the block size of each device.
-g, --target
Filter out devices target(s) NOT specified by this option. Adding device
handles via this option will prevent other drives from being shown. For an
example in Linux, "hugo s --target /dev/sg6 --target /dev/sg7" would only
show up to two drives which matched those devices. Device handles can
be acquired by running a standard show with the --device option and then
using the first value given in the "Device handles" list for a drive. This
option is not available in the interactive mode.
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
Command show
-h, --help
Displays usage information and exits.
Command test
Description Run a drive self test
Usage
{-q | -l | --status} {-s <serial number> | -m <model number> | -g
t, test <device path> | -a} [-f] [--noprompt] [--no-apti] [--no-spti] [--no-sg] [--
no-ad] [--no-mr] [--no-serial] [-h]
REQUIRED
-q, --quick
Run a short drive self test.
–OR–
-l, --long
Run a long drive self test.
–OR–
--status
Check self test results.
–AND–
-s, --serial <serial number >
Run drive self test on a device specified by serial number.
–OR–
-m, --model <model number >
Run drive self test on all devices of a specified model.
–OR–
-g, --target <device path >
Operate on targets with device handles specified by this option.
–OR–
-a, --all
Run drive self test on all devices.
NOT REQUIRED
-f, --foreground
Runs self test in the foreground and shows real time status
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
Command test
-h, --help
Displays usage information and exits.
Command Unmap
Description Unmap all LBAs
Usage
{-m <model number>|-s <serial number>} [--no-sg] [--no-ad][--no-mr]
unmap
[--no-serial] [--danger-zone] [-h]
REQUIRED
-s, --serial <serial number >
unmap all LBAs from all devices of specified serial number
-m, --model <model number >
unmap all LBAs from all devices of specified model number
NOT REQUIRED
--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.
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command update
Description Update a device’s firmware
Usage
{-s <serial number> | -m <model number> | -g <device path>}[--no-apti]
[--no-spti] [--no-sg] [--no-ad] [--no-mr] [--no-serial][-a] [-d] [--skip-status]
u, update
[--slot <nvme firmware slot number>][--rescanControl <seconds>] [-f
<firmware file path>] [-h]
REQUIRED
-s, --serial <serial number >
Update device specified by serial number.
–OR–
-m, --model <model number >
Update device specified by model number.
Command update
–OR–
-g, --target <device path >
Operate on targets with device handles specified by this option.
NOT
REQUIRED
-a, --activate
Activate a deferred firmware.
-d, --defer
Perform a deferred update.
--show-slots
Lists the NVME slots and firmware (if present).
--slot <nvme firmware slot number>
Target an NVME slot number. Required for NVME targets.
--rescanControl <seconds>
Set the delay in seconds between firmware update and the drive Re-
scan. Zero is no delay and negative numbers skip the re-scan.
-f, --firmware <firmware file path>
Firmware file name.
--no-apti
Do not use the APTI driver (Windows Only) (command line only)
--no-spti
Do not use the SPTI driver (Windows Only) (command line only)
--no-sg
Do not use the SG driver. (Linux Only) (command line only)
--no-ad
Do not use the AD driver. (command line only)
--no-mr
Do not use the MR driver. (command line only)
--no-serial Do not use the Serial driver. (command line only)
-h, --help
Displays usage information and exits.
Command v, version
Description Show the version information for hugo
Usage version