ChorusOS 4.0 File System Administration Guide

3.2 How to Label a Disk

This section describes how to label a disk using information in /etc/disktab and the disklabel utility.

Labelling consists of writing specific information, such as disk geometry in terms of cylinders, heads, sectors per track and partition overlays, at particular locations on the disk. Disk drivers use labelling information to access different areas of the disk, called partitions.

3.2.1 How to Set Up Information About Disk Geometry

Information about disk geometry is found in /etc/disktab, which disklabel reads before writing a label to a drive. ChorusOS 4.0 provides a sample /etc/disktab that contains several useful examples. The following key to the abbreviations used in /etc/disktab is included at the top of the file:

#
# Disk geometry and partition layout tables. 
# Key:
#
#   dt      controller type
#   ty      type of disk (fixed, removeable, simulated)
#   d[0-4]  drive-type-dependent parameters
#   ns      #sectors/track
#   nt      #tracks/cylinder
#   nc      #cylinders/disk
#   sc      #sectors/cylinder, ns*nt default
#   su      #sectors/unit, sc*nc default
#   se      sector size, DEV_BSIZE default
#   rm      rpm, 3600 default
#   sf      supports bad144-style bad sector forwarding
#   sk      sector skew per track, default 0
#   cs      sector skew per cylinder, default 0
#   hs      headswitch time, default 0
#   ts      one-cylinder seek time, default 0
#   il      sector interleave (n:1), 1 default
#   bs      boot block size, default BBSIZE
#   sb      superblock size, default SBSIZE
#   o[a-h]  partition offsets in sectors
#   p[a-h]  partition sizes in sectors
#   b[a-h]  partition block sizes in bytes
#   f[a-h]  partition fragment sizes in bytes
#   t[a-h]  partition types (file system, swap, etc)
#
# All partition sizes reserve space for bad sector tables.
# 5 cylinders are needed for maintenance including
# replacement sectors.
#
...

Entries in /etc/disktab consist of fields separated by colons (":") and follow the form:

label:option[=value|#value]...

Where label is a string identifier up to eight characters long with no whitespace, option is an option from the list of abbreviations above, and value is the value assigned to an option.

For detailed examples, see the root/etc/disktab file generated using make root in the build_dir directory where you build system images. Note that build_dir/root is normally the directory exported for use as the target root directory. See "Mounting an NFS File System" for details.

If you are unable to complete the disk geometry fields, boot the ChorusOS system image on the target system, and read the output concerning the disk driver displayed on the system console at boot time.

3.2.2 How to Use disklabel

Once you have correctly specified disk information in /etc/disktab, you are ready to use disklabel.

Labelling a Disk

Caution - Caution -

The following procedure initializes the local disk, erasing all existing data. Be sure to back up existing data before proceeding.


  1. Boot the target system with a system image that supports the hardware you want to label and that includes the special files needed to access that hardware.

  2. Update the disk label on the device, using disklabel as follows:


    host% rsh target arun /bin/disklabel -w -r device label name
    

    where device is an abbreviated form of the device name such as sd0, label is the label found in /etc/disktab and name is an optional string identifier up to sixteen characters long with no whitespace.

  3. Check that the disk label is correctly updated, using disklabel as follows:


    host% rsh target arun /bin/disklabel -r device
    

    where device is an abbreviated form of the device name such as sd0.