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