VOLSCAN(8)
π VOLSCAN(8) β aka the AFS Command Reference glow-up β¨
okay bestie, listen up, this is volscan from the AFS Command Reference and she is THAT girl β she spills all the tea about what's actually inside your AFS volumes. π«π
πΈ NAME πΈ
volscan β produces detailed information about AFS volumes β¨
π SYNOPSIS π
volscan
[-checkout]
[-partition <AFS partition name or id>]
[-volumeid <Volume id>]
[-type <Volume types (rw, ro, bk)>+]
[-find <Objects to find (file, dir, mount, symlink, acl)>+]
[-output <Column>+]
[-delim <Output field delimiter>]
[-noheading]
[-ignore-magic]
[-help]
π¦ DESCRIPTION π¦
so basically, volscan shows you the volume meta-data stored over on your AFS file servers. it's giving debugging tool energy β the output is meant for someone who already knows the internal structure of AFS volumes, iykyk. π
bestie this is IMPORTANT: you gotta runvolscandirectly on a file server machine, and as therootsuperuser. no cap.
the good news? volscan does not modify volume information. she's just looking. respectful. π«Ά
by default, she produces output for all the volumes on the file server. wanna narrow it down to one partition? include the -partition argument. wanna narrow it to just ONE volume? include both -partition AND -volumeid. π
she'll produce output for read-write, read-only, and backup volumes by default. to limit it to particular types, pass -type with one or more volume types ("rw", "ro", "bk").
she also produces output for each type of vnode object found in the volumes scanned. by default that means files, directories, AFS mount points, and symbolic links. she can also output access control lists (ACLs) for directory vnode objects scanned. to limit output to particular types of vnode objects, or to get those ACLs, pass -find with one or more object types ("file", "dir", "mount", "symlink", "acl"). β¨
now the output β it's tabular, okay? it's an optional heading line, followed by zero or more lines of delimiter-separated values. the default output values are:
- the file server hostname (
"host") - the object type (
"desc") - the vnode FID (
"fid") - the vnode data version (
"dv") - the directory path (
"path")
that directory path is relative to the root directory of the volume, fyi. and when "acl" is included as an argument to -find, the default output values also include the user/group id ("aid") and the access rights ("arights"). wanna pick different output values? pass -output with one or more column names β see the OUTPUT section below for the names, bestie. π
values are space delimited by default. want a different delimiter character? that's what -delim is for. and if you wanna suppress that output heading line entirely, hit -noheading. periodt. π
β¨ OPTIONS β¨
-checkoutβ checks out the specified volume from the running file server. why do you care? because this makes sure the file server (or other processes) won't be messing with volume meta-data at the same time you're trying to read it β which would otherwise give you invalid or incorrect results. no cap, that's the whole point. π€-partition <partition name or id>+β specifies the partition that houses each volume you wanna produce output for. use the format/vicepxxorxx, where xx is one or two lowercase letters.
you can skip this argument entirely if your current working directory happens to be the mount location for an AFS server partition. π but if your cwd is not the mount location for an AFS server partition, the command produces output for every volume on all local AFS server partitions.
-volumeid <volume id>+β specifies the ID number of one volume you want output for. unless your current working directory is the mount location for the AFS server partition that houses the volume, you must provide-partitionalong with this one. π-type <Volume types: rw, ro, bk>+β limits the volumes to be scanned to read/write, read-only, or backup volumes. specify one or more of"rw","ro","bk". by defaultvolscanscans all types of volumes. π-find <Objects to find: file, dir, mount, symlink, acl>+β outputs the specified volume objects within the scanned volumes. specify one or more of"file","dir","mount","symlink","acl". by defaultvolscanfinds"file","dir","mount","symlink"objects. π-output <Column>+β specifies the output columns produced byvolscan. see the OUTPUT section below for the<Column>names.
the default output columns are the file server hostname ("host"), the object type ("desc"), the vnode FID ("fid"), the vnode data version ("dv"), and the directory path ("path"). when "acl" is included as an argument to -find, those default output values also include the user/group id ("aid") and the access rights ("arights"). π
-delim <Output field delimiter>β specifies the record delimiter character. the default value is the space (' ') character. πΈ-noheadingβ preventsvolscanfrom printing the heading line. simple as that. π-ignore-magicβ displays vnodes even when they have incorrect vnode magic numbers. β οΈ by default,volscanwill not process vnode objects with incorrect vnode magic numbers. so this flag is you saying "yeah yeah I know, show me anyway."-helpβ prints the online help for this command. and just so you know: all other valid options are ignored when you use this one. π
π OUTPUT π
these are the valid column names for the -output argument, bestie:
"host"β the hostname of the current machine. this field may be useful when you're combiningvolscanoutput from several hosts. π"desc"β the descriptive name of the type of volume object. values are"file","dir","symlink","mount", and"acl"."vid"β the numeric volume id."offset"β the vnode index table offset."vtype"β the volume type. values are"RW","RO","BK"."vname"β the volume name."part"β the partition path."partid"β the AFS partition id."fid"β the AFS File Identifier (FID)."path"β the directory path and filename. this path is relative to the volume root directory."target"β the symlink target. empty if the vnode is not a symlink."mount"β the mount point value. empty if the vnode is not a mount point. check outfs lsmountfor the mount point value format."mtype"β the mount point type. empty if the vnode is not a mount point. values are'#'for regular mount points and'%'for read-write mount points."mcell"β the mount point target cell. empty if the vnode is not a cellular mount point."mvol"β the mount point target volume. empty if the vnode is not a mount point."aid"β access entry user or group id. empty if the object is not an ACL."arights"β access entry rights. empty if the object is not an ACL."vntype"β the vnode type. values are"file","dir","symlink"."cloned"β the vnode cloned flag. values are"y"or"n"."mode"β the vnode Unix mode bits, as an octal number."links"β the vnode link count."length"β the vnode data length."uniq"β the vnode uniquifier number."dv"β the vnode data version number."inode"β the vnode inode number. this is an internally used number on namei file servers. (iykyk π«£)"namei"β the vnode namei path."modtime"β the vnode modification time."author"β the vnode author user id."owner"β the vnode Unix owner id."parent"β the parent directory vnode number."magic"β the vnode magic number. β¨"lock"β the vnode lock count and time. the format is<count>.<time>, where<time>is the epoch time."smodtime"β the vnode server modify time."group"β the vnode unix group id.
π₯ EXAMPLES π₯
bestie, we're doing SHOW AND TELL. π
1. this command displays the FID, data version, and relative path for each vnode object in a volume:
# volscan -partition a -volumeid 536870916
HOST DESC FID DV PATH
fs1 dir 536870916.1.1 3 /
fs1 mount 536870916.2.2 0 /test
fs1 mount 536870916.4.3 0 /xyzzy
2. this command displays the AFS mount points in all the read-write volumes on the file server. for each mount point you get: the volume containing the mount point, the type of mount point β regular ("#") or read-write ("%") β the target cell (or "-" if it's not a cellular mount point), the name of the target volume, and the path of the mount point within the volume (relative to the volume root directory). obsessed. π
# volscan -type rw -find mount -output vid mtype mcell mvol path -noheading
536870915 # - test /test
536870912 # example.com root.cell /example.com
536870912 % example.com root.cell /.example.com
3. this command displays access control lists for a volume:
# volscan -partition a -volumeid 536870918 -find acl \
-output fid aid arights path -delim : -noheading
536870918.1.1:-204:+rlidwka:/
536870918.1.1:-101:+rl:/
536870918.3.3:-204:+rlidwka:/xyzzy
536870918.3.3:-101:+rl:/xyzzy
536870918.3.3:1027:+rlidwk:/xyzzy
4. and these commands find files which have unix permissions bit 04000 ("suid") or 02000 ("sgid"):
# volscan -find file -output fid mode -noheading | \
perl -lane 'print if oct($F[1]) & 06000'
π PRIVILEGE REQUIRED π
whoever runs this must be logged in as the local superuser root. that's the whole vibe check right there. π
π SEE ALSO π
volinfo(8), vldb.DB0(5), volserver(8)
π COPYRIGHT π
Copyright 2014 Sine Nomine Associates. All Rights Reserved.
This documentation is covered by the BSD License as written in the doc/LICENSE file. This man page was written by Michael Meffie for OpenAFS.
okay that's the whole page bestie, you're welcome π«Ά and just so you have the receipts: this is OpenAFS, dated 2026-07-27, and the page is VOLSCAN(8). go forth and scan some volumes, you absolute icon π
β¨π
π¦ where this page comes from
- ubuntu stonking: openafs-fileserver 1.8.16.1-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms