//po4a: entry man manual
= blkzone(8)
:doctype: manpage
:man manual: System Administration
:man source: util-linux {release-version}
:page-layout: base
:command: blkzone

== NAME

blkzone - run zone command on a device

== SYNOPSIS

*blkzone* _command_ [options] _device_

== DESCRIPTION

*blkzone* is used to run zone command on device that support the Zoned Block Commands (ZBC) or Zoned-device ATA Commands (ZAC). The zones to operate on can be specified using the offset, count and length options.

The _device_ argument is the pathname of the block device.

== COMMANDS

=== report

The command *blkzone report* is used to report device zone information.

By default, the command will report all zones from the start of the block device. Options may be used to modify this behavior, changing the starting zone or the size of the report, as explained below.

Report output:
[cols=",",]
|===
|start |Zone start sector
|len |Zone length in number of sectors
|cap |Zone capacity in number of sectors
|wptr |Zone write pointer position
|reset |Reset write pointer recommended
|non-seq |Non-sequential write resources active
|cond |Zone condition
|type |Zone type
|===

Zone conditions:
[cols=",",]
|===
|cl |Closed
|nw |Not write pointer
|em |Empty
|fu |Full
|oe |Explicitly opened
|oi |Implicitly opened
|ol |Offline
|ro |Read only
|x? |Reserved conditions (should not be reported)
|===

=== capacity

The command *blkzone capacity* is used to report device capacity information.

By default, the command will report the sum, in number of sectors, of all zone capacities on the device. Options may be used to modify this behavior, changing the starting zone or the size of the report, as explained below.

=== reset

The command *blkzone reset* is used to reset one or more zones. Unlike *sg_reset_wp*(8), this command operates from the block layer and can reset a range of zones.

=== open

The command *blkzone open* is used to explicitly open one or more zones. Unlike *sg_zone*(8), open action, this command operates from the block layer and can open a range of zones.

=== close

The command *blkzone close* is used to close one or more zones. Unlike *sg_zone*(8), close action, this command operates from the block layer and can close a range of zones.

=== finish

The command *blkzone finish* is used to finish (transition to full condition) one or more zones. Unlike *sg_zone*(8), finish action, this command operates from the block layer and can finish a range of zones.

By default, the *reset*, *open*, *close* and *finish* commands will operate from the zone at device sector 0 and operate on all zones. Options may be used to modify this behavior as explained below.

== OPTIONS

The _offset_ and _length_ option arguments may be followed by the multiplicative suffixes KiB (=1024), MiB (=1024*1024), and so on for GiB, TiB, PiB, EiB, ZiB and YiB (the "iB" is optional, e.g., "K" has the same meaning as "KiB") or the suffixes KB (=1000), MB (=1000*1000), and so on for GB, TB, PB, EB, ZB and YB. Additionally, the 0x prefix can be used to specify _offset_ and _length_ in hex.

*-o*, *--offset* _sector_::
The starting zone specified as a sector offset. The provided offset in sector units (512 bytes) should match the start of a zone. The default value is zero.

*-l*, *--length* _sectors_::
The maximum number of sectors the command should operate on. The default value is the number of sectors remaining after _offset_. This option cannot be used together with the option *--count*.

*-c*, *--count* _count_::
The maximum number of zones the command should operate on. The default value is the number of zones starting from _offset_. This option cannot be used together with the option *--length*.

*-f*, *--force*::
Enforce commands to change zone status on block devices used by the system.

*-v*, *--verbose*::
Display the number of zones returned in the report or the range of sectors reset.

include::man-common/help-version.adoc[]

== AUTHORS

mailto:shaun@tancheff.com[Shaun Tancheff],
mailto:kzak@redhat.com[Karel Zak]

== SEE ALSO

*sg_rep_zones*(8)

include::man-common/bugreports.adoc[]

include::man-common/footer.adoc[]

ifdef::translation[]
include::man-common/translation.adoc[]
endif::[]
