VOS_EXAMINE(1)

✨ NAME ✨

okay so, VOS_EXAMINE(1) β€” it's the vos examine command from the AFS command reference, and what it does is show you the volume header and the VLDB entry info for a volume. like, the whole ~situation~ on that volume. πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

vos examine -id <volume name or ID> [-extended]
    [-format] [-cell <cell name>]
    [-noauth] [-localauth] [-verbose]
    [-encrypt] [-noresolve]
    [-config <config directory>]
    [-help]
vos e -i <volume name or ID> [-ex] [-f]
    [-c <cell name>]
    [-noa] [-l] [-v] [-e] [-nor]
    [-co <config directory>]
    [-h]
vos volinfo -id <volume name or ID> [-extended]
    [-format] [-cell <cell name>]
    [-noauth] [-localauth] [-verbose]
    [-encrypt] [-noresolve]
    [-config <config directory>]
    [-help]
vos v -i <volume name or ID> [-ex] [-f]
    [-c <cell name>]
    [-noa] [-l] [-v] [-e] [-nor]
    [-co <config directory>]
    [-h]

πŸ’– DESCRIPTION πŸ’–

The vos examine command takes the volume you named with -id and it formats and displays two things about it: the info from the Volume Location Database (VLDB) entry, and the volume header. both. in one go. icon behavior honestly. 🫢

Now if you only want the volume header and not the VLDB tea, you go hit up vos listvol instead. And if you only want the VLDB info with no header, that's vos listvldb. we love options. ✨


⚠️ CAUTIONS ⚠️

listen bestie, rn the max quota for a volume is 2 terabytes (2^41 bytes). and here's the thing β€” that cap only affects the volume's quota. if the volume quota is disabled, your volume can grow way way bigger than that. no cap.

but 🚨 volumes over 2 terabytes in size may be impractical to move, and some tools β€” like fs_listquota(1) β€” may report their size incorrectly. so like... proceed with caution, queen. πŸ’€

πŸ‘‘ OPTIONS πŸ‘‘

  • -id <volume name or ID> β€” you give it either the complete name or the volume ID number of the volume. and it can be a read/write, a read-only, or a backup volume. all three are valid, slay. πŸŽ€
  • -extended β€” spills the stats about read and write operations on files and directories inside the volume. more numbers, more lore. ✨
  • -format β€” shows you everything in a format that a machine can parse. for when you're feeding it to a script, not a human. πŸ¦‹
  • -cell <cell name> β€” names the cell to run the command in. do not combine this with the -localauth flag. for the deets, check vos(1).
  • -noauth β€” hands the issuer the unprivileged identity "anonymous". do not combine this with -localauth. more info in vos(1).
  • -localauth β€” builds a server ticket using a key from the local /etc/openafs/server/KeyFile file. then the vos command interpreter shows it to the Volume Server and the Volume Location Server during mutual authentication. do not combine this with the -cell argument or the -noauth flag. more info in vos(1).
  • -verbose β€” prints a detailed trace of the command's execution to the standard output stream. if you skip it, only warnings and error messages show up. it's giving "quiet luxury" vs "live tweeting". πŸ’…
  • -encrypt β€” encrypts the command so the operation's results aren't transmitted across the network in clear text. this option is available in OpenAFS versions 1.4.11 or later and 1.5.60 or later. πŸ”
  • -noresolve β€” shows all servers as IP addresses instead of the DNS name. this is very useful when the server address is registered as 127.0.0.1, or when you're dealing with multi-homed servers. available in OpenAFS versions 1.4.8 or later and 1.5.35 or later. 🌸
  • -config <configuration directory> β€” sets where the configuration directory lives. this defaults to /etc/openafs, except if you specified -localauth, in which case the default is /etc/openafs/server. this option lets you use alternative config locations for testing purposes. 🧚
  • -help β€” prints the online help for this command. and every other valid option? ignored. bye. all other options are ignored. 😌

πŸ”₯ OUTPUT πŸ”₯

so here's the layout: the first seven lines</> of output are from the volume header, and everything after that comes from the VLDB. got it? got it. let's go line by line.

each item in the list below maps to a line of output that came from the volume header. πŸ‘‡

  • Basic info about the volume you asked about (all on a single line):
    • Name
    • Volume ID number
    • Type β€” the flag is "RW" for read/write, "RO" for read-only, "BK" for backup
    • Size in kilobytes (so 1024 equals a megabyte)
    • Number of files in the volume β€” but only if you passed the -extended flag
    • Status on the file server machine, which is one of these:
      • On-line β€” the volume is completely accessible to Cache Managers. we're so back. ✨
      • Off-line β€” the volume is not accessible to Cache Managers, but it doesn't seem to be corrupted. this status shows up while a volume is being dumped, for example.
      • Off-line**needs salvage** β€” the volume is not accessible to Cache Managers because it seems to be corrupted. run bos salvage or the salvager command to repair the corruption. πŸš‘
  • The file server machine and partition that house the volume β€” as determined by the command interpreter as the command runs, not derived from the VLDB or the volume header. sneaky but true.
  • The volume ID numbers tied to the various versions of the volume: read/write ("RWrite"), read-only ("ROnly"), backup ("Backup"), and ReleaseClone ("RClone"). one of them matches the volume ID number on the first line of the volume's output. if the value in the "RWrite", "ROnly", or "Backup" field is 0 (zero), there's no volume of that type. and if there's currently no ReleaseClone, the "RClone" field doesn't appear at all.
  • The max space quota given to the read/write copy of the volume, expressed in kilobyte blocks, in the "MaxQuota" field.
  • The date and time the volume was created, in the "Creation" field. if the volume has been restored with the backup diskrestore, backup volrestore, or vos restore command, this is the restore time. for a read-only volume, this is the last release time.
  • The date and time this copy of the volume was created, in the "Copy" field. this is the time the volume was created on this server and partition. for read-only volumes, it is not updated by a release (unlike the Creation date). and the copy date is not stored in volume dumps. πŸ™ˆ
  • The date and time when the volume's contents last changed, in the "Last Update" field. for read-only and backup volumes, it matches the timestamp in the "Creation" field.
  • The number of times the volume has been accessed for a fetch or store operation since the later of these two times:
    • 12:00 a.m. on the day the command is issued
    • the last time the volume changed location

when you include the -extended flag, two tables show up next:

  • the table labeled "Raw Read/Write Stats" β€” has info on the number of reads (fetches) and writes (stores) made on the specified volume.
  • the table labeled "Writes Affecting Authorship" β€” has info on writes made to files and directories in the specified volume.

now, if this message shows up instead of all that info above, it means a volume isn't accessible to Cache Managers or to the vos command interpreter β€” for example, because a clone is being created:

**** Volume <volume_ID> is busy ****

and if this message shows up instead of the info, it means the File Server can't attach the volume, maybe because it's seriously corrupted:

**** Could not attach volume <volume_ID> ****
for that second one, the FileLog and VolserLog log files in the /var/log/openafs directory on the file server machine might have more clues β€” use the bos getlog command to display them. πŸ”

after a blank line, the info from the VLDB entry appears. each item in this list corresponds to a separate line in the output:

  • The base (read/write) volume name. the read-only and backup versions have the same name with a ".readonly" and ".backup" extension respectively. πŸ’…
  • The volume ID numbers allocated to the versions of the volume that actually exist, in fields labeled "RWrite" for the read/write, "ROnly" for the read-only, "Backup" for the backup, and "RClone" for the ReleaseClone. (if a field doesn't appear, that version of the volume doesn't exist.) the appearance of the "RClone" field normally means a release operation did not complete successfully β€” and the "Old release" and "New release" flags often also show up on one or more of the site definition lines described just below. 🫠
  • The number of sites that house a read/write or read-only copy of the volume, following the string "number of sites ->".
  • A line for each site that houses a read/write or read-only copy of the volume, specifying the file server machine, partition, and type of volume ("RW" for read/write or "RO" for read-only). if a backup version exists, it's understood to share the read/write site. several flags can appear with a site definition:
    • Not released β€” means the vos release command hasn't been issued since the vos addsite command was used to define the read-only site.
    • Old release β€” means a vos release command did not complete successfully, leaving the previous, obsolete version of the volume at this site.
    • New release β€” means a vos release command did not complete successfully, but that this site did receive the correct new version of the volume. partial win. 🫢
  • If the VLDB entry is locked, you get the string "Volume is currently LOCKED", plus (in OpenAFS 1.5.75 and later) one or more of these strings:
    • Volume is locked for a move operation β€” means the volume was locked because of a vos move or a vos convertROtoRW command.
    • Volume is locked for a release operation β€” means the volume was locked because of a vos release command.
    • Volume is locked for a backup operation β€” means the volume was locked because of a vos backup command.
    • Volume is locked for a delete/misc operation β€” means the volume was locked because of a vos delentry, vos addsite, vos remsite, vos changeloc, vos syncvldb, vos syncserv, vos rename, or vos lock command.
    • Volume is locked for a dump/restore operation β€” means the volume was locked because of a vos dump or vos restore command.

for a deeper discussion of the "New release" and "Old release" flags, go see vos_release(1). πŸ“š

🧚 EXAMPLES ✨

Ok bestie, this is the part where it all clicks πŸ’‘ β€” two real-ish runs of vos examine, so you can see what the output actually looks like when it's not just vibes and theory.


πŸ“ Example numero uno: the usr volume with backup sites

So picture this: the Example Corporation has a volume called usr, and it's got two read-only replication sites. It's mounted at the /afs/example.com/usr directory. And just for the drama of it all, the example shows the volume as locked πŸ”’ (yes, locked locked, as in the LOCKED line at the bottom).

% vos examine usr
usr                           536870981 RW   3459 K On-line
     fs2.example.com /vicepb
     RWrite 5360870981   ROnly 536870982   Backup 536870983
     MaxQuota      40000 K
     Creation    Mon Jun 12 15:22:06 1989
     Copy        Mon Jun 12 15:22:06 1989
     Last Update Fri Jun 16 09:34:35 1989
     5719 accesses in the past day (i.e., vnode references)
     RWrite: 5360870981   ROnly: 536870982   Backup: 536870983
     number of sites -> 3
        server fs1.example.com partition /vicepa RO Site
        server fs3.example.com partition /vicepa RO Site
        server fs2.example.com partition /vicepb RW Site
     Volume is currently LOCKED

Look at that. Three sites. Two RO, one RW. The volume ID, the RWrite/ROnly/Backup numbers, the quota, the timestamps, the access count β€” all just sitting there being gorgeous πŸ’…. And that last line? Volume is currently LOCKED β€” noted, respected, slightly intimidating.


🌸 Example dos: user.terry with the -extended flag

Now this one's a different flavour. This volume is named user.terry, and we're running with -extended because we want the full stat dump. Plot twist: this volume has no read-only replication sites. Zero. Nada. Just the one site.

% vos examine -id user.terry -extended
user.terry         354287190 RW    2302 K used 119 files On-line
    fs4.example.com /vicepc
    RWrite 354287190 ROnly          0 Backup 354287192
    MaxQuota       5000 K
    Creation    Wed Nov 25 17:38:57 1992
    Copy        Wed Nov 25 17:38:57 1992
    Last Update Tue Dec 15 10:46:20 1992
    598 accesses in the past day (i.e., vnode references)
                     Raw Read/Write Stats
          |-------------------------------------------|
          |    Same Network     |    Diff Network     |
          |----------|----------|----------|----------|
          |  Total   |   Auth   |   Total  |   Auth   |
          |----------|----------|----------|----------|
Reads     |       55 |       55 |       38 |       38 |
Writes    |       95 |       95 |        0 |        0 |
          |-------------------------------------------|
                   Writes Affecting Authorship
          |-------------------------------------------|
          |   File Authorship   | Directory Authorship|
          |----------|----------|----------|----------|
          |   Same   |   Diff   |    Same  |   Diff   |
          |----------|----------|----------|----------|
0-60 sec  |       38 |        0 |       21 |        1 |
1-10 min  |        2 |        0 |        7 |        0 |
10min-1hr |        0 |        0 |        1 |        0 |
1hr-1day  |        1 |        0 |        5 |        1 |
1day-1wk  |        0 |        0 |        0 |        0 |
> 1wk     |        0 |        0 |        0 |        0 |
          |-------------------------------------------|
    RWrite: 354287190    Backup: 354287192
    number of sites -> 1
       server fs4.example.com partition /vicepc RW Site

Notice how this output hits different from the first one β€” the extended stats show up with the Raw Read/Write Stats table and the Writes Affecting Authorship table, breaking it all down by same vs. diff network, total vs. auth, and by time buckets (0-60 sec, 1-10 min, 10min-1hr, 1hr-1day, 1day-1wk, > 1wk) for both file and directory authorship. And down at the bottom: number of sites -> 1, because there's literally just the one RW site. Also peep the volume ID 354287190, ROnly 0 (no RO, as promised), MaxQuota 5000 K, and used 119 files up top. It's giving full transparency πŸ”βœ¨

Ngl, if you're ever staring at a weird volume and it's not behaving, run this thing with -extended and you'll know everything. It's the group chat screenshot of volume diagnostics fr fr.

πŸ” PRIVILEGE REQUIRED πŸ‘‘

None.

Yep, that's it. No special powers needed, bestie β€” you don't need to be an admin, you don't need to bribe anyone, you don't need a secret handshake. vos examine is just... available to you. Go look at your volumes. You've earned it πŸ’–


πŸ‘€ SEE ALSO πŸ’«

Go read these too, they're all part of the same little family:


IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.


And that's a wrap, bestie 🫢 this page came straight out of the OpenAFS collection, dated 2026-07-27 β€” and the lovely humans at OpenAFS are the ones who wrote it. Go forth, examine some volumes, and stay iconic πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from