VTOC

Red Hat Enterprise Linux 8.6 LPAR mode z/VM guest KVM guest

Instead of a regular Linux® partition table, Red Hat® Enterprise Linux 8.6 for IBM Z, like other mainframe operating systems, uses a Volume Table Of Contents (VTOC).

The VTOC contains pointers to the location of every data set on the volume. These data sets form the Linux partitions.

The VTOC is on the second track (cylinder 0, track 1). It contains a number of records, each written in a separate data set control block (DSCB). The number of records depends on the size of the volume:
  • One DSCB that describes the VTOC itself (format 4)
  • One DSCB that is required by other operating systems but is not used by Linux. fdasd sets it to zeros (format 5).
  • For volumes with more than 65534 cylinders, 1 DSCB (format 7)
  • For each partition:
    • On volumes with 65534 or less cylinders, 1 DSCB (format 1)
    • On volumes with more than 65534 cylinders, 1 format 8 and one format 9 DSCB

    The key of the format 1 or format 8 DSCB contains the data set name, which identifies the partition to z/OS®, z/VM®, and z/VSE®.

The VTOC can be displayed with standard IBM Z® tools such as VM/DITTO. A Linux DASD with physical device number 0x0193, volume label LNX001, and three partitions might be displayed like this example:

                            VM/DITTO DISPLAY VTOC                  LINE 1 OF 5
===>                                                          SCROLL ===> PAGE

CUU,193 ,VOLSER,LNX001   3390, WITH   100 CYLS, 15 TRKS/CYL, 58786 BYTES/TRK

--- FILE NAME --- (SORTED BY =,NAME  ,) ---- EXT    BEGIN-END     RELTRK,
1...5...10...15...20...25...30...35...40.... SQ   CYL-HD   CYL-HD      NUMTRKS
 *** VTOC EXTENT ***                          0     0  1     0  1      1,1
LINUX.VLNX001.PART0001.NATIVE                 0     0  2    46 11      2,700
LINUX.VLNX001.PART0002.NATIVE                 0    46 12    66 11    702,300
LINUX.VLNX001.PART0003.NATIVE                 0    66 12    99 14   1002,498
 *** THIS VOLUME IS CURRENTLY 100 PER CENT FULL WITH      0 TRACKS AVAILABLE

PF  1=HELP      2=TOP       3=END       4=BROWSE    5=BOTTOM    6=LOCATE
PF  7=UP        8=DOWN      9=PRINT    10=RGT/LEFT 11=UPDATE   12=RETRIEVE

The ls command on Linux might list this DASD and its partitions like this example:

# ls -l /dev/dasda*
brw-rw---- 1 root disk 94, 0 Jan 27 09:04 /dev/dasda
brw-rw---- 1 root disk 94, 1 Jan 27 09:04 /dev/dasda1
brw-rw---- 1 root disk 94, 2 Jan 27 09:04 /dev/dasda2
brw-rw---- 1 root disk 94, 3 Jan 27 09:04 /dev/dasda3

where dasda represent the whole DASD and dasda1, dasda2, and dasda3 represent the individual partitions.