xref: /netbsd-src/sbin/gpt/gpt.8 (revision d90047b5d07facf36e6c01dcc0bded8997ce9cc2)
1.\" $NetBSD: gpt.8,v 1.73 2020/05/24 20:59:16 wiz Exp $
2.\"
3.\" Copyright (c) 2002 Marcel Moolenaar
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\"
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26.\"
27.\" $FreeBSD: src/sbin/gpt/gpt.8,v 1.17 2006/06/22 22:22:32 marcel Exp $
28.\"
29.Dd May 24, 2020
30.Dt GPT 8
31.Os
32.Sh NAME
33.Nm gpt
34.Nd GUID partition table maintenance utility
35.Sh SYNOPSIS
36.Nm
37.Op Fl Hnqrv
38.Op Fl m Ar mediasize
39.Op Fl s Ar sectorsize
40.Op Fl T Ar timestamp
41.Ar command
42.Op Ar command_options
43.Ar device
44.Nm
45.Ar set
46.Fl l
47.Nm
48.Ar unset
49.Fl l
50.Nm
51.Ar type
52.Fl l
53.Sh DESCRIPTION
54The
55.Nm
56utility provides the necessary functionality to manipulate GUID partition
57tables
58.Pq GPTs ,
59but see
60.Sx BUGS
61below for how and where functionality is missing.
62The basic usage model of the
63.Nm
64tool follows that of the
65.Xr cvs 1
66tool.
67The general options are described in the following paragraph.
68The remaining paragraphs describe the individual commands with their options.
69Here we conclude by mentioning that a
70.Ar device
71is either a special file
72corresponding to a disk-like device or a regular file.
73The command is applied to each
74.Ar device
75listed on the command line.
76.Ss General Options
77The general options allow the user to change default settings or otherwise
78change the behaviour that is applicable to all commands.
79Not all commands use all default settings, so some general options may not
80have an effect on all commands.
81.Bl -tag -width XXXX
82.It Fl H
83Ignore existing MBR (Hybrid MBR/GPT mode).
84.It Fl m Ar mediasize
85Override the default media size for the device (obtained
86from the kernel if possible) or defaulting to the file size for
87plain files.
88.It Fl n
89Do not update the wedge information that
90.Nm
91changed.
92You need to use the
93.Xr dkctl 8
94command manually update the device's wedge configuration if you do that.
95.It Fl q
96Do not print error messages.
97This is not implemented completely yet.
98.It Fl r
99Open the device for reading only.
100.Nm
101Currently this option is primarily useful for the
102.Ic show
103command, but the intent is to use it to implement dry-run behaviour.
104.It Fl s Ar sectorsize
105Override the default sector size for the device (obtained
106from the kernel if possible) or
107.Dv 512
108for plain files.
109.It Fl T Ar timestamp
110Specify a timestamp to be used for uuid generation so that uuids
111are not random and can be consistent for reproducible builds.
112The timestamp can be a pathname, where the timestamps are derived from
113that file, a parseable date for parsedate(3) (this option is not
114yet available in the tools build), or an integer value interpreted
115as the number of seconds from the Epoch.
116.It Fl v
117Controls the verbosity level.
118The level increases with every occurrence of this option.
119There is no formalized definition of the different levels yet.
120.El
121.Ss Commands
122.Bl -tag -width indent
123.\" ==== add ====
124.It Nm Ic add Oo Fl a Ar alignment Oc Oo Fl b Ar blocknr Oc \
125Oo Fl i Ar index Oc Oo Fl l Ar label Oc Oo Fl s Ar size Oc \
126Oo Fl t Ar type Oc
127The
128.Ic add
129command allows the user to add a new partition to an existing table.
130By default, it will create a UFS partition covering the first available block
131of an unused disk space.
132The command-specific options can be used to control this behaviour.
133.Pp
134The
135.Fl a Ar alignment
136option allows the user to specify an alignment for the start and size.
137The alignment is given in bytes and may have a suffix to indicate its
138magnitude.
139.Nm
140will attempt to align the partition.
141.Pp
142The
143.Fl b Ar blocknr
144option allows the user to specify the starting (beginning) sector number of
145the partition.
146The minimum sector number is 1, but has to fall inside an unused region of
147disk space that is covered by the GPT.
148.Pp
149The
150.Fl i Ar index
151option allows the user to specify which (free) entry in the GPT table is to
152be used for the new partition.
153By default, the first free entry is selected.
154.Pp
155The
156.Fl l Ar label
157option allows the user to specify a label for the partition.
158.Pp
159The
160.Fl s Ar size
161option allows the user to specify the size of the partition.
162If there is no suffix, or the suffix is
163.Sq s
164or
165.Sq S
166then size is in sectors, otherwise size is in bytes which must be
167a multiple of the device's sector size.
168Accepted suffix units are
169.Sq b
170to denote bytes,
171.Sq k
172to denote kilobytes,
173.Sq m
174to denote megabytes and
175.Sq g
176to denote gigabytes.
177The minimum size is 1 sector.
178.Pp
179The
180.Fl t Ar type
181option allows the user to specify the partition type.
182The type is given as an UUID, but
183.Nm
184accepts
185.Bl -tag -width "windows-reserved" -compact -offset indent
186.It Cm apple
187Apple HFS
188.It Cm apple-ufs
189Apple UFS
190.It Cm bios
191BIOS Boot
192.It Cm efi
193EFI System
194.It Cm fbsd-legacy
195.Fx
196legacy
197.It Cm fbsd-swap
198.Fx
199swap
200.It Cm fbsd-ufs
201.Fx
202UFS/UFS2
203.It Cm fbsd-vinum
204.Fx
205vinum
206.It Cm fbsd-zfs
207.Fx
208ZFS
209.It Cm linux-data
210Linux data
211.It Cm linux-raid
212Linux RAID
213.It Cm linux-swap
214Linux swap
215.It Cm linux-lvm
216Linux LVM
217.It Cm windows
218Windows basic data
219.It Cm windows-reserved
220Windows reserved
221.It Cm ccd
222.Nx
223ccd component
224.It Cm cgd
225.Nx
226Cryptographic Disk
227.It Cm ffs
228.Nx
229FFSv1/FFSv2
230.It Cm lfs
231.Nx
232LFS
233.It Cm raid
234.Nx
235RAIDFrame component
236.It Cm swap
237.Nx
238swap
239.El
240as aliases for the most commonly used partition types.
241.\" ==== backup ====
242.It Nm Ic backup Oo Fl o Ar outfile Oc
243The
244.Ic backup
245command dumps the MBR or (PMBR) and GPT partition tables to standard
246output or to a file specified by the
247.Ar outfile
248argument in a format to be used by the
249.Ic restore
250command.
251The format is a plist.
252It should not be modified.
253.\" ==== biosboot ====
254.It Nm Ic biosboot Oo Fl A Oc Oo Fl c Ar bootcode Oc Oo Fl b Ar startsec Oc \
255Oo Fl i Ar index Oc Oo Fl L Ar label Oc
256The
257.Ic biosboot
258command allows the user to configure the partition that contains the
259primary bootstrap program, used during
260.Xr boot 8 .
261.Pp
262The
263.Fl A
264options sets the PMBR partition active.
265.Pp
266The
267.Fl c
268option allows the user to specify the filename that
269.Nm
270should read the bootcode from.
271The default is to read from
272.Pa /usr/mdec/gptmbr.bin .
273.Pp
274The
275.Fl i
276option selects the partition that should contain the primary
277bootstrap code, as installed via
278.Xr installboot 8 .
279The
280.Fl L
281option selects the partition by label.
282If there are multiple partitions with the same label, the
283first one found will be used.
284The
285.Fl b
286options selects the partition by start block.
287.\" ==== create ====
288.It Nm Ic create Oo Fl AfP Oc Oo Fl p Ar partitions Oc
289The
290.Ic create
291command allows the user to create a new (empty) GPT.
292By default, one cannot create a GPT when the device contains a MBR,
293however this can be overridden with the
294.Fl f
295option.
296If the
297.Fl f
298option is specified, an existing MBR is destroyed and any partitions
299described by the MBR are lost.
300.Pp
301The
302.Fl A
303options sets the PMBR partition active.
304.Pp
305The
306.Fl P
307option tells
308.Nm
309to create only the primary table and not the backup table.
310This option is only useful for debugging and should not be used otherwise.
311.Pp
312The
313.Fl p
314option changes the default number of partitions the GPT can
315accommodate.
316This is used whenever a new GPT is created.
317By default, the
318.Nm
319utility will create space for 128 partitions (or 32 sectors of 512 bytes).
320.\" ==== destroy ====
321.It Nm Ic destroy Oo Fl r Oc
322The
323.Ic destroy
324command allows the user to destroy an existing, possibly not empty GPT.
325.Pp
326The
327.Fl r
328option instructs
329.Nm
330to destroy the table in a way that it can be recovered.
331.\" ==== header ====
332.It Nm Ic header
333The
334.Ic header
335command displays size information about the media and information from the
336GPT header if it exists.
337.\" ==== label ====
338.It Nm Ic label Oo Fl a Oc Ao Fl f Ar file | Fl l Ar label Ac
339.It Nm Ic label Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
340Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc \
341Ao Fl f Ar file | Fl l Ar label Ac
342The
343.Ic label
344command allows the user to label any partitions that match the selection.
345At least one of the following selection options must be specified.
346.Pp
347The
348.Fl a
349option specifies that all partitions should be labeled.
350It is mutually exclusive with all other selection options.
351.Pp
352The
353.Fl b Ar blocknr
354option selects the partition that starts at the given block number.
355.Pp
356The
357.Fl i Ar index
358option selects the partition with the given partition number.
359.Pp
360The
361.Fl L Ar label
362option selects all partitions that have the given label.
363This can cause multiple partitions to be relabeled.
364.Pp
365The
366.Fl s Ar sectors
367option selects all partitions that have the given size.
368This can cause multiple partitions to be labeled.
369.Pp
370The
371.Fl t Ar type
372option selects all partitions that have the given type.
373The type is given as an UUID or by the aliases that the
374.Ic add
375command accepts.
376This can cause multiple partitions to be labeled.
377.Pp
378The
379.Fl f Ar file
380or
381.Fl l Ar label
382options specify the new label to be assigned to the selected partitions.
383The
384.Fl f Ar file
385option is used to read the label from the specified file.
386Only the first line is read from the file and the trailing newline
387character is stripped.
388If the file name is the dash or minus sign
389.Pq Fl ,
390the label is read from
391the standard input.
392The
393.Fl l Ar label
394option is used to specify the label in the command line.
395The label is assumed to be encoded in UTF-8.
396.\" ==== migrate ====
397.It Nm Ic migrate Oo Fl Afs Oc Oo Fl p Ar partitions Oc
398The
399.Ic migrate
400command allows the user to migrate an MBR-based disk partitioning into a
401GPT-based partitioning.
402By default, the MBR is not migrated when it contains partitions of an unknown
403type.
404This can be overridden with the
405.Fl f
406option.
407Specifying the
408.Fl f
409option will cause unknown partitions to be ignored and any data in it
410to be lost.
411.Pp
412The
413.Fl A
414options sets the PMBR partition active.
415.Pp
416The
417.Fl s
418option prevents migrating
419.Bx
420disk labels into GPT partitions by creating
421the GPT equivalent of a slice.
422Note that the
423.Fl s
424option is not applicable to
425.Nx
426partitions.
427.Pp
428The
429.Fl p
430option changes the default number of partitions the GPT can
431accommodate.
432This is used whenever a new GPT is created.
433By default, the
434.Nm
435utility will create space for 128 partitions (or 32 sectors of 512 bytes).
436.Pp
437The
438.Ic migrate
439command requires space at the beginning and the end of the device outside
440any partitions to store the GPTs.
441Space is required for the GPT header
442.Pq which takes one sector
443and the GPT partition table.
444See the
445.Fl p
446option
447for the size of the GPT partition table.
448By default, just about all devices have a minimum of 62 sectors free at the
449beginning of the device, but do not have any free space at the end.
450For the default GPT partition table size on a 512 byte sector size device,
45133 sectors at the end of the device would need to be freed.
452.\" ==== recover ====
453.It Nm Ic recover
454The
455.Ic recover
456command tries to restore the GPT partition label from the backup
457near the end of the disk.
458It is very useful in case the primary label was deleted.
459.\" ==== remove ====
460.It Nm Ic remove Oo Fl a Oc
461.It Nm Ic remove Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
462Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc
463The
464.Ic remove
465command allows the user to remove any and all partitions that match the
466selection.
467It uses the same selection options as the
468.Ic label
469command.
470See above for a description of these options.
471Partitions are removed by clearing the partition type.
472No other information is changed.
473.\" ==== resize ====
474.It Nm Ic resize Oo Fl i Ar index Oc Oo Fl b Ar startsec Oc Oo Fl a Ar alignment Oc \
475Oo Fl s Ar size Oc Oo Fl q Oc
476The
477.Ic resize
478command allows the user to resize a partition.
479The partition may be shrunk and if there is sufficient free space
480immediately after it then it may be expanded.
481The
482.Fl s
483option allows the new size to be specified, otherwise the partition will
484be increased to the maximum available size.
485If there is no suffix, or the suffix is
486.Sq s
487or
488.Sq S
489then size is in sectors, otherwise size is in bytes which must be
490a multiple of the device's sector size.
491Accepted suffix units are
492.Sq b
493to denote bytes,
494.Sq k
495to denote kilobytes,
496.Sq m
497to denote megabytes and
498.Sq g
499to denote gigabytes.
500The minimum size is 1 sector.
501If the
502.Fl a
503option is specified then the size will be adjusted to be a multiple of
504alignment if possible.
505If the
506.Fl q
507option is specified then the utility will not print output when a
508resize is not required.
509.\" ==== resizedisk ====
510.It Nm Ic resizedisk Oo Fl s Ar size Oc Oo Fl q Oc
511The
512.Ic resizedisk
513command allows the user to resize a disk.
514With GPTs, a backup copy is stored at the end of the disk.
515If the underlying medium changes size
516.Pq or is going to change size ,
517then the backup copy needs to be moved to the new end of the disk,
518and the last sector available for data storage needs to be adjusted.
519This command does that.
520If the backup copy no longer exists due to the medium shrinking, then
521a new backup copy will be created using the primary copy.
522.Pp
523The
524.Fl s
525option allows the new size to be specified, otherwise the backup copy
526will automatically be placed at the current end of the disk.
527If there is no suffix, or the suffix is
528.Sq s
529or
530.Sq S
531then size is in sectors, otherwise size is in bytes which must be
532a multiple of the device's sector size.
533Accepted suffix units are
534.Sq b
535to denote bytes,
536.Sq k
537to denote kilobytes,
538.Sq m
539to denote megabytes and
540.Sq g
541to denote gigabytes.
542Using the
543.Fl s
544option allows you to move the backup copy prior to resizing the medium.
545This is primarily useful when shrinking the medium.
546If the
547.Fl q
548option is specified then the utility will not print output when a
549resize is not required.
550.\" ==== restore ====
551.It Nm Ic restore Oo Fl F Oc Oo Fl i Ar infile Oc
552The
553.Ic restore
554command restores a partition table that was previously saved using the
555.Ic backup
556command.
557The partition table is read from standard input or a file specified in
558the
559.Ar infile
560argument and is expected to be in the format of a plist.
561It assumes an empty disk.
562The
563.Fl F
564option can be used to blank the disk.
565The new disk does not have to be the same size as the old disk as long as all
566the partitions fit, as
567.Ic restore
568will automatically adjust.
569However, the new disk must use the same sector size as the old disk.
570.\" ==== set ====
571.It Nm Ic set Oo Fl a Ar attribute Oc Oo Fl N Oc Oo Fl i Ar index Oc \
572Oo Fl b Ar startsec Oc
573.It Nm Ic set Fl l
574The
575.Ic set
576command sets various partition attributes.
577The
578.Fl l
579flag lists all available attributes.
580The
581.Fl a
582option specifies which attributes to set and may be specified more than once,
583or the attributes can be comma-separated.
584If the
585.Fl N
586option and no
587.Fl a
588option are specified, all attributes are removed.
589The
590.Fl i
591or the
592.Fl b
593option specify which entry to update.
594The possible attributes are
595.Do biosboot Dc ,
596.Do bootme Dc ,
597.Do bootonce Dc ,
598.Do bootfailed Dc ,
599.Do noblockio Dc , and
600.Do required Dc .
601The biosboot flag is used to indicate which partition should be booted
602by legacy BIOS boot code.
603See the
604.Ic biosboot
605command for more information.
606The bootme flag is used to indicate which partition should be booted
607by UEFI boot code.
608The other attributes are for compatibility with
609.Fx
610and are not currently used by
611.Nx .
612They may be used by
613.Nx
614in the future.
615.\" ==== show ====
616.It Nm Ic show Oo Fl aglu Oc Oo Fl i Ar index Oc Oo Fl b Ar startsec Oc
617The
618.Ic show
619command displays the current partitioning on the listed devices and gives
620an overall view of the disk contents.
621With the
622.Fl g
623option the GPT partition GUID will be displayed instead of the GPT partition
624type.
625With the
626.Fl l
627option the GPT partition label will be displayed instead of the GPT partition
628type.
629With the
630.Fl u
631option the GPT partition type is displayed as an UUID instead of in a
632user friendly form.
633With the
634.Fl i
635or the
636.Fl b
637option, all the details of a particular GPT partition will be displayed.
638The format of this display is subject to change.
639With the
640.Fl a
641option, all information for all GPT partitions (just like with
642.Fl i Ar index )
643will be printed.
644None of the options have any effect on non-GPT partitions.
645The order of precedence for the options are:
646.Fl a ,
647.Fl i ,
648.Fl l ,
649.Fl g ,
650.Fl u .
651.\" ==== type ====
652.It Nm Ic type Oo Fl a Oc Fl T Ar newtype
653.It Nm Ic type Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
654Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc \
655Fl T Ar newtype
656.It Nm Ic type Fl l
657The
658.Ic type
659command allows the user to change the type of any and all partitions
660that match the selection.
661It uses the same selection options as the
662.Ic label
663command.
664See above for a description of these options.
665The
666.Fl l
667flag lists available types.
668.\" ==== unset ====
669.It Nm Ic unset Fl a Ar attribute Oo Fl i Ar index Oc Oo Fl b Ar startsec Oc
670.It Nm Ic unset Fl l
671The
672.Ic unset
673command unsets various partition attributes.
674The
675.Fl l
676flag lists all available attributes.
677The
678.Fl a
679option specifies which attributes to unset and may be specified more than once.
680Alternatively a comma separated list of attributes can be used.
681The
682.Fl i
683or the
684.Fl b
685option specifies which entry to update.
686The possible attributes are
687.Do biosboot Dc ,
688.Do bootme Dc ,
689.Do bootonce Dc ,
690.Do bootfailed Dc ,
691.Do noblockio Dc , and
692.Do required Dc .
693The biosboot flag is used to indicate which partition should be booted
694by legacy BIOS boot code.
695See the
696.Ic biosboot
697command for more information.
698The other attributes are for compatibility with
699.Fx
700and are not currently used by any
701.Nx
702code.
703They may be used by
704.Nx
705code in the future.
706.\" ==== uuid ====
707.It Nm Ic uuid Oo Fl a Oc
708.It Nm Ic uuid Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
709Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc
710The
711.Ic uuid
712command allows the user to change the UUID of any and all partitions
713that match the selection.
714It uses the same selection options as the
715.Ic label
716command.
717See above for a description of these options.
718If
719.Fl a
720is used, then the header UUID is changed as well.
721.Pp
722The primary purpose of this command is for use after cloning a disk to
723prevent collisions when both disks are used in the same system.
724.\" ==== end of commands ====
725.El
726.Sh EXIT STATUS
727The
728.Nm
729command exits with a failure status (1) when the header command
730is used and no GPT header is found.
731This can be used to check for the existence of a GPT in shell scripts.
732.Sh EXAMPLES
733.Bd -literal
734nas# gpt show wd3
735       start        size  index  contents
736           0           1         PMBR
737           1  3907029167
738nas# gpt create wd3
739nas# gpt show wd3
740       start        size  index  contents
741           0           1         PMBR
742           1           1         Pri GPT header
743           2          32         Pri GPT table
744          34  3907029101
745  3907029135          32         Sec GPT table
746  3907029167           1         Sec GPT header
747nas# gpt add -s 10486224 -t swap -i 1 wd3
748nas# gpt label -i 1 -l swap_1 wd3
749partition 1 on rwd3d labeled swap_1
750nas# gpt show wd3
751       start        size  index  contents
752           0           1         PMBR
753           1           1         Pri GPT header
754           2          32         Pri GPT table
755          34    10486224      1  GPT part - NetBSD swap
756    10486258  3896542877
757  3907029135          32         Sec GPT table
758  3907029167           1         Sec GPT header
759nas# gpt show -l wd3
760       start        size  index  contents
761           0           1         PMBR
762           1           1         Pri GPT header
763           2          32         Pri GPT table
764          34    10486224      1  GPT part - "swap_1"
765    10486258  3896542877
766  3907029135          32         Sec GPT table
767  3907029167           1         Sec GPT header
768nas#
769.Ed
770.Pp
771Booting from GPT on a BIOS system: this creates a bootable partition.
772.Bd -literal
773xotica# gpt create wd1
774xotica# gpt add -b 1024 -l bootroot -t ffs -s 1g wd1
775/dev/rwd1: Partition 1 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 1024 2097152
776xotica ~# dmesg | tail -2
777wd1: GPT GUID: 660e0630-0a3f-47c0-bc52-c88bcec79392
778dk0 at wd1: "bootroot", 2097152 blocks at 1024, type: ffs
779xotica# gpt biosboot -L bootroot wd1
780xotica# newfs dk0
781xotica# installboot /dev/rdk0 /usr/mdec/bootxx_ffsv1
782xotica# mount /dev/dk0 /mnt
783xotica# cp /usr/mdec/boot /mnt
784.Ed
785.Pp
786Note that
787.Ic biosboot
788is not needed for UEFI systems.
789.Sh SEE ALSO
790.Xr boot 8 ,
791.Xr dkctl 8 ,
792.Xr fdisk 8 ,
793.Xr installboot 8 ,
794.Xr mount 8 ,
795.Xr newfs 8 ,
796.Xr swapctl 8
797.Sh HISTORY
798The
799.Nm
800utility appeared in
801.Fx 5.0
802for ia64.
803.Nm
804utility first appeared in
805.Nx 5.0 .
806.Sh BUGS
807The development of the
808.Nm
809utility is still work in progress.
810Many necessary features are missing or partially implemented.
811In practice this means that the manual page, supposed to describe these
812features, is farther removed from being complete or useful.
813As such, missing functionality is not even documented as missing.
814However, it is believed that the currently present functionality is reliable
815and stable enough that this tool can be used without bullet-proof footware if
816one thinks one does not make mistakes.
817.Pp
818It is expected that the basic usage model does not change, but it is
819possible that future versions will not be compatible in the strictest sense
820of the word.
821Also, options primarily intended for diagnostic or debug purposes may be
822removed in future versions.
823.Pp
824Another possibility is that the current usage model is accompanied by
825other interfaces to make the tool usable as a back-end.
826This all depends on demand and thus feedback.
827