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