xref: /netbsd-src/sbin/gpt/gpt.8 (revision cef8759bd76c1b621f8eab8faa6f208faabc2e15)
1.\" $NetBSD: gpt.8,v 1.74 2020/07/27 20:54:18 christos 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 July 27, 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 zfs
207.Fx ,
208.Nx
209ZFS
210.It Cm linux-data
211Linux data
212.It Cm linux-raid
213Linux RAID
214.It Cm linux-swap
215Linux swap
216.It Cm linux-lvm
217Linux LVM
218.It Cm windows
219Windows basic data
220.It Cm windows-reserved
221Windows reserved
222.It Cm ccd
223.Nx
224ccd component
225.It Cm cgd
226.Nx
227Cryptographic Disk
228.It Cm ffs
229.Nx
230FFSv1/FFSv2
231.It Cm lfs
232.Nx
233LFS
234.It Cm raid
235.Nx
236RAIDFrame component
237.It Cm swap
238.Nx
239swap
240.El
241as aliases for the most commonly used partition types.
242.\" ==== backup ====
243.It Nm Ic backup Oo Fl o Ar outfile Oc
244The
245.Ic backup
246command dumps the MBR or (PMBR) and GPT partition tables to standard
247output or to a file specified by the
248.Ar outfile
249argument in a format to be used by the
250.Ic restore
251command.
252The format is a plist.
253It should not be modified.
254.\" ==== biosboot ====
255.It Nm Ic biosboot Oo Fl A Oc Oo Fl c Ar bootcode Oc Oo Fl b Ar startsec Oc \
256Oo Fl i Ar index Oc Oo Fl L Ar label Oc
257The
258.Ic biosboot
259command allows the user to configure the partition that contains the
260primary bootstrap program, used during
261.Xr boot 8 .
262.Pp
263The
264.Fl A
265options sets the PMBR partition active.
266.Pp
267The
268.Fl c
269option allows the user to specify the filename that
270.Nm
271should read the bootcode from.
272The default is to read from
273.Pa /usr/mdec/gptmbr.bin .
274.Pp
275The
276.Fl i
277option selects the partition that should contain the primary
278bootstrap code, as installed via
279.Xr installboot 8 .
280The
281.Fl L
282option selects the partition by label.
283If there are multiple partitions with the same label, the
284first one found will be used.
285The
286.Fl b
287options selects the partition by start block.
288.\" ==== create ====
289.It Nm Ic create Oo Fl AfP Oc Oo Fl p Ar partitions Oc
290The
291.Ic create
292command allows the user to create a new (empty) GPT.
293By default, one cannot create a GPT when the device contains a MBR,
294however this can be overridden with the
295.Fl f
296option.
297If the
298.Fl f
299option is specified, an existing MBR is destroyed and any partitions
300described by the MBR are lost.
301.Pp
302The
303.Fl A
304options sets the PMBR partition active.
305.Pp
306The
307.Fl P
308option tells
309.Nm
310to create only the primary table and not the backup table.
311This option is only useful for debugging and should not be used otherwise.
312.Pp
313The
314.Fl p
315option changes the default number of partitions the GPT can
316accommodate.
317This is used whenever a new GPT is created.
318By default, the
319.Nm
320utility will create space for 128 partitions (or 32 sectors of 512 bytes).
321.\" ==== destroy ====
322.It Nm Ic destroy Oo Fl r Oc
323The
324.Ic destroy
325command allows the user to destroy an existing, possibly not empty GPT.
326.Pp
327The
328.Fl r
329option instructs
330.Nm
331to destroy the table in a way that it can be recovered.
332.\" ==== header ====
333.It Nm Ic header
334The
335.Ic header
336command displays size information about the media and information from the
337GPT header if it exists.
338.\" ==== label ====
339.It Nm Ic label Oo Fl a Oc Ao Fl f Ar file | Fl l Ar label Ac
340.It Nm Ic label Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
341Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc \
342Ao Fl f Ar file | Fl l Ar label Ac
343The
344.Ic label
345command allows the user to label any partitions that match the selection.
346At least one of the following selection options must be specified.
347.Pp
348The
349.Fl a
350option specifies that all partitions should be labeled.
351It is mutually exclusive with all other selection options.
352.Pp
353The
354.Fl b Ar blocknr
355option selects the partition that starts at the given block number.
356.Pp
357The
358.Fl i Ar index
359option selects the partition with the given partition number.
360.Pp
361The
362.Fl L Ar label
363option selects all partitions that have the given label.
364This can cause multiple partitions to be relabeled.
365.Pp
366The
367.Fl s Ar sectors
368option selects all partitions that have the given size.
369This can cause multiple partitions to be labeled.
370.Pp
371The
372.Fl t Ar type
373option selects all partitions that have the given type.
374The type is given as an UUID or by the aliases that the
375.Ic add
376command accepts.
377This can cause multiple partitions to be labeled.
378.Pp
379The
380.Fl f Ar file
381or
382.Fl l Ar label
383options specify the new label to be assigned to the selected partitions.
384The
385.Fl f Ar file
386option is used to read the label from the specified file.
387Only the first line is read from the file and the trailing newline
388character is stripped.
389If the file name is the dash or minus sign
390.Pq Fl ,
391the label is read from
392the standard input.
393The
394.Fl l Ar label
395option is used to specify the label in the command line.
396The label is assumed to be encoded in UTF-8.
397.\" ==== migrate ====
398.It Nm Ic migrate Oo Fl Afs Oc Oo Fl p Ar partitions Oc
399The
400.Ic migrate
401command allows the user to migrate an MBR-based disk partitioning into a
402GPT-based partitioning.
403By default, the MBR is not migrated when it contains partitions of an unknown
404type.
405This can be overridden with the
406.Fl f
407option.
408Specifying the
409.Fl f
410option will cause unknown partitions to be ignored and any data in it
411to be lost.
412.Pp
413The
414.Fl A
415options sets the PMBR partition active.
416.Pp
417The
418.Fl s
419option prevents migrating
420.Bx
421disk labels into GPT partitions by creating
422the GPT equivalent of a slice.
423Note that the
424.Fl s
425option is not applicable to
426.Nx
427partitions.
428.Pp
429The
430.Fl p
431option changes the default number of partitions the GPT can
432accommodate.
433This is used whenever a new GPT is created.
434By default, the
435.Nm
436utility will create space for 128 partitions (or 32 sectors of 512 bytes).
437.Pp
438The
439.Ic migrate
440command requires space at the beginning and the end of the device outside
441any partitions to store the GPTs.
442Space is required for the GPT header
443.Pq which takes one sector
444and the GPT partition table.
445See the
446.Fl p
447option
448for the size of the GPT partition table.
449By default, just about all devices have a minimum of 62 sectors free at the
450beginning of the device, but do not have any free space at the end.
451For the default GPT partition table size on a 512 byte sector size device,
45233 sectors at the end of the device would need to be freed.
453.\" ==== recover ====
454.It Nm Ic recover
455The
456.Ic recover
457command tries to restore the GPT partition label from the backup
458near the end of the disk.
459It is very useful in case the primary label was deleted.
460.\" ==== remove ====
461.It Nm Ic remove Oo Fl a Oc
462.It Nm Ic remove Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
463Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc
464The
465.Ic remove
466command allows the user to remove any and all partitions that match the
467selection.
468It uses the same selection options as the
469.Ic label
470command.
471See above for a description of these options.
472Partitions are removed by clearing the partition type.
473No other information is changed.
474.\" ==== resize ====
475.It Nm Ic resize Oo Fl i Ar index Oc Oo Fl b Ar startsec Oc Oo Fl a Ar alignment Oc \
476Oo Fl s Ar size Oc Oo Fl q Oc
477The
478.Ic resize
479command allows the user to resize a partition.
480The partition may be shrunk and if there is sufficient free space
481immediately after it then it may be expanded.
482The
483.Fl s
484option allows the new size to be specified, otherwise the partition will
485be increased to the maximum available size.
486If there is no suffix, or the suffix is
487.Sq s
488or
489.Sq S
490then size is in sectors, otherwise size is in bytes which must be
491a multiple of the device's sector size.
492Accepted suffix units are
493.Sq b
494to denote bytes,
495.Sq k
496to denote kilobytes,
497.Sq m
498to denote megabytes and
499.Sq g
500to denote gigabytes.
501The minimum size is 1 sector.
502If the
503.Fl a
504option is specified then the size will be adjusted to be a multiple of
505alignment if possible.
506If the
507.Fl q
508option is specified then the utility will not print output when a
509resize is not required.
510.\" ==== resizedisk ====
511.It Nm Ic resizedisk Oo Fl s Ar size Oc Oo Fl q Oc
512The
513.Ic resizedisk
514command allows the user to resize a disk.
515With GPTs, a backup copy is stored at the end of the disk.
516If the underlying medium changes size
517.Pq or is going to change size ,
518then the backup copy needs to be moved to the new end of the disk,
519and the last sector available for data storage needs to be adjusted.
520This command does that.
521If the backup copy no longer exists due to the medium shrinking, then
522a new backup copy will be created using the primary copy.
523.Pp
524The
525.Fl s
526option allows the new size to be specified, otherwise the backup copy
527will automatically be placed at the current end of the disk.
528If there is no suffix, or the suffix is
529.Sq s
530or
531.Sq S
532then size is in sectors, otherwise size is in bytes which must be
533a multiple of the device's sector size.
534Accepted suffix units are
535.Sq b
536to denote bytes,
537.Sq k
538to denote kilobytes,
539.Sq m
540to denote megabytes and
541.Sq g
542to denote gigabytes.
543Using the
544.Fl s
545option allows you to move the backup copy prior to resizing the medium.
546This is primarily useful when shrinking the medium.
547If the
548.Fl q
549option is specified then the utility will not print output when a
550resize is not required.
551.\" ==== restore ====
552.It Nm Ic restore Oo Fl F Oc Oo Fl i Ar infile Oc
553The
554.Ic restore
555command restores a partition table that was previously saved using the
556.Ic backup
557command.
558The partition table is read from standard input or a file specified in
559the
560.Ar infile
561argument and is expected to be in the format of a plist.
562It assumes an empty disk.
563The
564.Fl F
565option can be used to blank the disk.
566The new disk does not have to be the same size as the old disk as long as all
567the partitions fit, as
568.Ic restore
569will automatically adjust.
570However, the new disk must use the same sector size as the old disk.
571.\" ==== set ====
572.It Nm Ic set Oo Fl a Ar attribute Oc Oo Fl N Oc Oo Fl i Ar index Oc \
573Oo Fl b Ar startsec Oc
574.It Nm Ic set Fl l
575The
576.Ic set
577command sets various partition attributes.
578The
579.Fl l
580flag lists all available attributes.
581The
582.Fl a
583option specifies which attributes to set and may be specified more than once,
584or the attributes can be comma-separated.
585If the
586.Fl N
587option and no
588.Fl a
589option are specified, all attributes are removed.
590The
591.Fl i
592or the
593.Fl b
594option specify which entry to update.
595The possible attributes are
596.Do biosboot Dc ,
597.Do bootme Dc ,
598.Do bootonce Dc ,
599.Do bootfailed Dc ,
600.Do noblockio Dc , and
601.Do required Dc .
602The biosboot flag is used to indicate which partition should be booted
603by legacy BIOS boot code.
604See the
605.Ic biosboot
606command for more information.
607The bootme flag is used to indicate which partition should be booted
608by UEFI boot code.
609The other attributes are for compatibility with
610.Fx
611and are not currently used by
612.Nx .
613They may be used by
614.Nx
615in the future.
616.\" ==== show ====
617.It Nm Ic show Oo Fl aglu Oc Oo Fl i Ar index Oc Oo Fl b Ar startsec Oc
618The
619.Ic show
620command displays the current partitioning on the listed devices and gives
621an overall view of the disk contents.
622With the
623.Fl g
624option the GPT partition GUID will be displayed instead of the GPT partition
625type.
626With the
627.Fl l
628option the GPT partition label will be displayed instead of the GPT partition
629type.
630With the
631.Fl u
632option the GPT partition type is displayed as an UUID instead of in a
633user friendly form.
634With the
635.Fl i
636or the
637.Fl b
638option, all the details of a particular GPT partition will be displayed.
639The format of this display is subject to change.
640With the
641.Fl a
642option, all information for all GPT partitions (just like with
643.Fl i Ar index )
644will be printed.
645None of the options have any effect on non-GPT partitions.
646The order of precedence for the options are:
647.Fl a ,
648.Fl i ,
649.Fl l ,
650.Fl g ,
651.Fl u .
652.\" ==== type ====
653.It Nm Ic type Oo Fl a Oc Fl T Ar newtype
654.It Nm Ic type Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
655Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc \
656Fl T Ar newtype
657.It Nm Ic type Fl l
658The
659.Ic type
660command allows the user to change the type of any and all partitions
661that match the selection.
662It uses the same selection options as the
663.Ic label
664command.
665See above for a description of these options.
666The
667.Fl l
668flag lists available types.
669.\" ==== unset ====
670.It Nm Ic unset Fl a Ar attribute Oo Fl i Ar index Oc Oo Fl b Ar startsec Oc
671.It Nm Ic unset Fl l
672The
673.Ic unset
674command unsets various partition attributes.
675The
676.Fl l
677flag lists all available attributes.
678The
679.Fl a
680option specifies which attributes to unset and may be specified more than once.
681Alternatively a comma separated list of attributes can be used.
682The
683.Fl i
684or the
685.Fl b
686option specifies which entry to update.
687The possible attributes are
688.Do biosboot Dc ,
689.Do bootme Dc ,
690.Do bootonce Dc ,
691.Do bootfailed Dc ,
692.Do noblockio Dc , and
693.Do required Dc .
694The biosboot flag is used to indicate which partition should be booted
695by legacy BIOS boot code.
696See the
697.Ic biosboot
698command for more information.
699The other attributes are for compatibility with
700.Fx
701and are not currently used by any
702.Nx
703code.
704They may be used by
705.Nx
706code in the future.
707.\" ==== uuid ====
708.It Nm Ic uuid Oo Fl a Oc
709.It Nm Ic uuid Oo Fl b Ar blocknr Oc Oo Fl i Ar index Oc \
710Oo Fl L Ar label Oc Oo Fl s Ar sectors Oc Oo Fl t Ar type Oc
711The
712.Ic uuid
713command allows the user to change the UUID of any and all partitions
714that match the selection.
715It uses the same selection options as the
716.Ic label
717command.
718See above for a description of these options.
719If
720.Fl a
721is used, then the header UUID is changed as well.
722.Pp
723The primary purpose of this command is for use after cloning a disk to
724prevent collisions when both disks are used in the same system.
725.\" ==== end of commands ====
726.El
727.Sh EXIT STATUS
728The
729.Nm
730command exits with a failure status (1) when the header command
731is used and no GPT header is found.
732This can be used to check for the existence of a GPT in shell scripts.
733.Sh EXAMPLES
734.Bd -literal
735nas# gpt show wd3
736       start        size  index  contents
737           0           1         PMBR
738           1  3907029167
739nas# gpt create wd3
740nas# gpt show wd3
741       start        size  index  contents
742           0           1         PMBR
743           1           1         Pri GPT header
744           2          32         Pri GPT table
745          34  3907029101
746  3907029135          32         Sec GPT table
747  3907029167           1         Sec GPT header
748nas# gpt add -s 10486224 -t swap -i 1 wd3
749nas# gpt label -i 1 -l swap_1 wd3
750partition 1 on rwd3d labeled swap_1
751nas# gpt show wd3
752       start        size  index  contents
753           0           1         PMBR
754           1           1         Pri GPT header
755           2          32         Pri GPT table
756          34    10486224      1  GPT part - NetBSD swap
757    10486258  3896542877
758  3907029135          32         Sec GPT table
759  3907029167           1         Sec GPT header
760nas# gpt show -l wd3
761       start        size  index  contents
762           0           1         PMBR
763           1           1         Pri GPT header
764           2          32         Pri GPT table
765          34    10486224      1  GPT part - "swap_1"
766    10486258  3896542877
767  3907029135          32         Sec GPT table
768  3907029167           1         Sec GPT header
769nas#
770.Ed
771.Pp
772Booting from GPT on a BIOS system: this creates a bootable partition.
773.Bd -literal
774xotica# gpt create wd1
775xotica# gpt add -b 1024 -l bootroot -t ffs -s 1g wd1
776/dev/rwd1: Partition 1 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 1024 2097152
777xotica ~# dmesg | tail -2
778wd1: GPT GUID: 660e0630-0a3f-47c0-bc52-c88bcec79392
779dk0 at wd1: "bootroot", 2097152 blocks at 1024, type: ffs
780xotica# gpt biosboot -L bootroot wd1
781xotica# newfs dk0
782xotica# installboot /dev/rdk0 /usr/mdec/bootxx_ffsv1
783xotica# mount /dev/dk0 /mnt
784xotica# cp /usr/mdec/boot /mnt
785.Ed
786.Pp
787Note that
788.Ic biosboot
789is not needed for UEFI systems.
790.Sh SEE ALSO
791.Xr boot 8 ,
792.Xr dkctl 8 ,
793.Xr fdisk 8 ,
794.Xr installboot 8 ,
795.Xr mount 8 ,
796.Xr newfs 8 ,
797.Xr swapctl 8
798.Sh HISTORY
799The
800.Nm
801utility appeared in
802.Fx 5.0
803for ia64.
804.Nm
805utility first appeared in
806.Nx 5.0 .
807.Sh BUGS
808The development of the
809.Nm
810utility is still work in progress.
811Many necessary features are missing or partially implemented.
812In practice this means that the manual page, supposed to describe these
813features, is farther removed from being complete or useful.
814As such, missing functionality is not even documented as missing.
815However, it is believed that the currently present functionality is reliable
816and stable enough that this tool can be used without bullet-proof footware if
817one thinks one does not make mistakes.
818.Pp
819It is expected that the basic usage model does not change, but it is
820possible that future versions will not be compatible in the strictest sense
821of the word.
822Also, options primarily intended for diagnostic or debug purposes may be
823removed in future versions.
824.Pp
825Another possibility is that the current usage model is accompanied by
826other interfaces to make the tool usable as a back-end.
827This all depends on demand and thus feedback.
828