1.\" Copyright (c) 1987, 1988, 1991, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" This code is derived from software contributed to Berkeley by 5.\" Symmetric Computer Systems. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 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.\" 4. Neither the name of the University nor the names of its contributors 16.\" may be used to endorse or promote products derived from this software 17.\" without specific prior written permission. 18.\" 19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29.\" SUCH DAMAGE. 30.\" 31.\" @(#)disklabel.8 8.2 (Berkeley) 4/19/94 32.\" $FreeBSD$ 33.\" 34.Dd March 15, 2003 35.Dt BSDLABEL 8 36.Os 37.Sh NAME 38.Nm bsdlabel 39.Nd read and write disk pack label 40.Sh SYNOPSIS 41.Nm 42.Op Fl A 43.Ar disk | Fl f Ar file 44.Nm 45.Fl w 46.Op Fl \&An 47.Op Fl B Op Fl b Ar boot 48.Op Fl m Ar machine 49.Ar disk | Fl f Ar file 50.Op Ar type 51.Nm 52.Fl e 53.Op Fl \&An 54.Op Fl B Op Fl b Ar boot 55.Op Fl m Ar machine 56.Ar disk | Fl f Ar file 57.Nm 58.Fl R 59.Op Fl \&An 60.Op Fl B Op Fl b Ar boot 61.Op Fl m Ar machine 62.Op Fl f 63.Ar disk | Fl f Ar file 64.Ar protofile 65.Sh DESCRIPTION 66The 67.Nm 68utility 69installs, examines or modifies the 70.Bx 71label on a disk partition, or on a file containing a partition image. 72In addition, 73.Nm 74can install bootstrap code. 75.Ss Disk Device Name 76When specifying the device (i.e., when the 77.Fl f 78option is not used), 79the 80.Pa /dev/ 81path prefix may be omitted; 82the 83.Nm 84utility will automatically prepend it. 85.Ss General Options 86The 87.Fl A 88option enables processing of the historical parts of the 89.Bx 90label. 91If the option is not given, suitable values are set for these fields. 92.Pp 93The 94.Fl f 95option tells 96.Nm 97that the program will operate on a file instead of a disk partition. 98.Pp 99The 100.Fl n 101option stops the 102.Nm 103program right before the disk would have been modified, and displays 104the result instead of writing it. 105.Pp 106The 107.Fl m Ar machine 108argument instructs 109.Nm 110to use the layout suitable for the specified machine. 111.Ss Reading the Disk Label 112To examine the label on a disk drive, use 113.Nm 114without options: 115.Pp 116.Nm 117.Op Fl A 118.Op Fl m Ar machine 119.Ar disk 120.Pp 121.Ar disk 122represents the disk in question, and may be in the form 123.Pa da0 124or 125.Pa /dev/da0 . 126It will display the partition layout. 127.Ss Writing a Standard Label 128To write a standard label, use the form 129.Pp 130.Nm 131.Fl w 132.Op Fl \&An 133.Op Fl m Ar machine 134.Ar disk 135.Op Ar type 136.Pp 137If the drive type is specified, the entry of that name in the 138.Xr disktab 5 139file is used; otherwise a default layout is used. 140.Ss Editing an Existing Disk Label 141To edit an existing disk label, use the form 142.Pp 143.Nm 144.Fl e 145.Op Fl \&An 146.Op Fl m Ar machine 147.Ar disk 148.Pp 149This command opens the disk label in the default editor, and when the editor 150exits, the label is validated and if OK written to disk. 151.Ss Restoring a Disk Label From a File 152To restore a disk label from a file, use the form 153.Pp 154.Nm 155.Fl R 156.Op Fl \&An 157.Op Fl m Ar machine 158.Ar disk protofile 159.Pp 160.Nm 161is capable of restoring a disk label that was previously saved in a file in 162.Tn ASCII 163format. 164The prototype file used to create the label should be in the same format as that 165produced when reading or editing a label. 166Comments are delimited by 167.Ql # 168and newline. 169.Ss Installing Bootstraps 170If the 171.Fl B 172argument is specified, bootstrap code will be read from the file 173.Pa /boot/boot 174and written to the disk. 175The 176.Fl b Ar boot 177argument allows a different file to be used. 178.Sh FILES 179.Bl -tag -width ".Pa /etc/disktab" -compact 180.It Pa /boot/boot 181Default boot image. 182.It Pa /etc/disktab 183Disk description file. 184.El 185.Sh SAVED FILE FORMAT 186The 187.Nm 188utility 189uses an 190.Tn ASCII 191version of the label when examining, editing, or restoring a disk 192label. 193The format is: 194.Bd -literal -offset 4n 195 1968 partitions: 197# size offset fstype [fsize bsize bps/cpg] 198 a: 81920 0 4.2BSD 1024 8192 16 199 b: 160000 81920 swap 200 c: 1173930 0 unused 0 0 # "raw" part, don't edit 201.Ed 202.Pp 203If the 204.Fl A 205option is specified, the format is: 206.Bd -literal -offset 4n 207# /dev/da1c: 208type: SCSI 209disk: da0s1 210label: 211flags: 212bytes/sector: 512 213sectors/track: 51 214tracks/cylinder: 19 215sectors/cylinder: 969 216cylinders: 1211 217sectors/unit: 1173930 218rpm: 3600 219interleave: 1 220trackskew: 0 221cylinderskew: 0 222headswitch: 0 # milliseconds 223track-to-track seek: 0 # milliseconds 224drivedata: 0 225 2268 partitions: 227# size offset fstype [fsize bsize bps/cpg] 228 a: 81920 0 4.2BSD 1024 8192 16 229 b: 160000 81920 swap 230 c: 1173930 0 unused 0 0 # "raw" part, don't edit 231.Ed 232.Pp 233Lines starting with a 234.Ql # 235mark are comments. 236.Pp 237The partition table can have up to 8 entries. 238It contains the following information: 239.Bl -tag -width indent 240.It Ar # 241The partition identifier is a single letter in the range 242.Ql a 243to 244.Ql h . 245By convention, partition 246.Ql c 247is reserved to describe the entire disk. 248.It Ar size 249The size of the partition in sectors, 250.Cm K 251(kilobytes - 1024), 252.Cm M 253(megabytes - 1024*1024), 254.Cm G 255(gigabytes - 1024*1024*1024), 256.Cm % 257(percentage of free space 258.Em after 259removing any fixed-size partitions other than partition 260.Ql c ) , 261or 262.Cm * 263(all remaining free space 264.Em after 265fixed-size and percentage partitions). 266For partition 267.Ql c , 268a size of 269.Cm * 270indicates the entire disk. 271Lowercase versions of 272.Cm K , M , 273and 274.Cm G 275are allowed. 276Size and type should be specifed without any spaces between them. 277.Pp 278Example: 2097152, 1G, 1024M and 1048576K are all the same size 279(assuming 512-byte sectors). 280.It Ar offset 281The offset of the start of the partition from the beginning of the 282drive in sectors, or 283.Cm * 284to have 285.Nm 286calculate the correct offset to use (the end of the previous partition plus 287one, ignoring partition 288.Ql c . 289For partition 290.Ql c , 291.Cm * 292will be interpreted as an offset of 0. 293.It Ar fstype 294Describes the purpose of the partition. 295The example shows all currently used partition types. 296For 297.Tn UFS 298file systems and 299.Xr ccd 4 300partitions, use type 301.Cm 4.2BSD . 302For Vinum drives, use type 303.Cm vinum . 304Other common types are 305.Cm swap 306and 307.Cm unused . 308By convention, partition 309.Ql c 310represents the entire slice and should be of type 311.Cm unused , 312though 313.Nm 314does not enforce this convention. 315The 316.Nm 317utility 318also knows about a number of other partition types, 319none of which are in current use. 320(See the definitions starting with 321.Dv FS_UNUSED 322in 323.In sys/disklabel.h 324for more details.) 325.It Ar fsize 326For 327.Cm 4.2BSD 328and 329.Tn LFS 330file systems only, the fragment size. 331Defaults to 1024 for partitions smaller than 1GB, 3324096 for partitions 1GB or larger. 333.It Ar bsize 334For 335.Cm 4.2BSD 336and 337.Tn LFS 338file systems only, the block size. 339Defaults to 8192 for partitions smaller than 1GB, 34016384 for partitions 1GB or larger. 341.It Ar bps/cpg 342For 343.Cm 4.2BSD 344file systems, the number of cylinders in a cylinder group. 345For 346.Tn LFS 347file systems, the segment shift value. 348Defaults to 16 for partitions smaller than 1GB, 34964 for partitions 1GB or larger. 350.El 351.Sh EXAMPLES 352.Dl "bsdlabel da0s1" 353.Pp 354Display the label for the first slice of the 355.Pa da0 356disk, as obtained via 357.Pa /dev/da0s1 . 358.Pp 359.Dl "bsdlabel da0s1 > savedlabel" 360.Pp 361Save the in-core label for 362.Pa da0s1 363into the file 364.Pa savedlabel . 365This file can be used with the 366.Fl R 367option to restore the label at a later date. 368.Pp 369.Dl "bsdlabel -w /dev/da0s1" 370.Pp 371Create a label for 372.Pa da0s1 . 373.Pp 374.Dl "bsdlabel -e da0s1" 375.Pp 376Read the label for 377.Pa da0s1 , 378edit it, and install the result. 379.Pp 380.Dl "bsdlabel -e -n da0s1" 381.Pp 382Read the on-disk label for 383.Pa da0s1 , 384edit it, and display what the new label would be (in sectors). 385It does 386.Em not 387install the new label either in-core or on-disk. 388.Pp 389.Dl "bsdlabel -w da0s1" 390.Pp 391Write a default label on 392.Pa da0s1 . 393Use another 394.Nm Fl e 395command to edit the 396partitioning and file system information. 397.Pp 398.Dl "bsdlabel -R da0s1 savedlabel" 399.Pp 400Restore the on-disk and in-core label for 401.Pa da0s1 402from information in 403.Pa savedlabel . 404.Pp 405.Dl "bsdlabel -R -n da0s1 label_layout" 406.Pp 407Display what the label would be for 408.Pa da0s1 409using the partition layout in 410.Pa label_layout . 411This is useful for determining how much space would be alloted for various 412partitions with a labelling scheme using 413.Cm % Ns -based 414or 415.Cm * 416partition sizes. 417.Pp 418.Dl "bsdlabel -B da0s1" 419.Pp 420Install a new bootstrap on 421.Pa da0s1 . 422The boot code comes from 423.Pa /boot/boot . 424.Pp 425.Dl "bsdlabel -w -B -b newboot /dev/da0s1" 426.Pp 427Install a new label and bootstrap. 428The bootstrap code comes from the file 429.Pa newboot 430in the current working directory. 431.Bd -literal -offset indent 432dd if=/dev/zero of=/dev/da0 bs=512 count=32 433fdisk -BI da0 434dd if=/dev/zero of=/dev/da0s1 bs=512 count=32 435bsdlabel -w -B da0s1 436bsdlabel -e da0s1 437.Ed 438.Pp 439Completely wipe any prior information on the disk, creating a new bootable 440disk with a 441.Tn DOS 442partition table containing one slice, covering the whole disk. 443Initialize the label on this slice, 444then edit it. 445The 446.Xr dd 1 447commands are optional, but may be necessary for some 448.Tn BIOS Ns es 449to properly 450recognize the disk. 451.Pp 452This is an example disk label that uses some of the new partition size types 453such as 454.Cm % , M , G , 455and 456.Cm * , 457which could be used as a source file for 458.Dq Li "bsdlabel -R ad0s1c new_label_file" : 459.Bd -literal -offset 4n 460# /dev/ad0s1c: 461 4628 partitions: 463# size offset fstype [fsize bsize bps/cpg] 464 a: 400M 0 4.2BSD 4096 16384 75 # (Cyl. 0 - 812*) 465 b: 1G * swap 466 c: * * unused 467 e: 204800 * 4.2BSD 468 f: 5g * 4.2BSD 469 g: * * 4.2BSD 470.Ed 471.Sh SEE ALSO 472.Xr ccd 4 , 473.Xr geom 4 , 474.Xr md 4 , 475.\" Xr bsdlabel 5 , 476.Xr disktab 5 , 477.Xr boot0cfg 8 , 478.Xr fdisk 8 479.Sh DIAGNOSTICS 480The kernel device drivers will not allow the size of a disk partition 481to be decreased or the offset of a partition to be changed while it is open. 482