VOS_CHANGELOC(1)

✨ VOS_CHANGELOC ✨ (section 1 of the AFS Command Reference, bestie)

okay so picture this: your file server is gone, like dead-dead, and you need the VLDB to believe your volume lives somewhere new. That's this command. Welcome to vos_changeloc, aka the glow-up-your-volume's-address command πŸ’…


🌸 NAME 🌸

vos_changeloc β€” change a volume's entry in the VLDB (yes queen, just the entry, we'll get there)


πŸŽ€ SYNOPSIS πŸŽ€

vos changeloc [-server] <new server name>
   [-partition] <new partition location>
   [-id] <volume name or ID>
   [-cell <cell name>] [-noauth] [-localauth]
   [-verbose] [-encrypt] [-noresolve]
   [-config <config directory>]
   [-help]

vos changel [-s] <new server name>
   [-p] <new partition location>
   [-i] <volume name or ID>
   [-c <cell name>]
   [-noa] [-l] [-v] [-e] [-nor]
   [-co <config directory>]
   [-h]

πŸ¦‹ DESCRIPTION πŸ¦‹

So vos changeloc changes where a volume lives in the Volume Location Database (VLDB) β€” and the iconic part is that it does NOT need to contact the original file server that was hosting that volume. Not even a text back. πŸ’€

When is that a moment? When a file server has gone down permanently, and the data that used to live on it got moved to a new file server with a different name AND a different IP address (maybe by mounting the same /vicepX partitions on a different host, iykyk). You do the move, you run vos changeloc, and then β€” this is the important bit β€” you run vos syncvldb and then vos syncserv against the new server to make sure the VLDB and the file server are fully synced. Full synchronization, no crumbs left behind. ✨

Essentially, vos changeloc does the same operations on the VLDB as vos move does... except it does NOT actually move the data from one server's file system to another. Read that again. It's giving "updated my address in the group chat but my stuff is still in the old apartment." πŸ™ˆ


πŸ”₯ CAUTIONS πŸ”₯

okay bestie, sit down for this one:

  • Using vos changeloc changes the VLDB without modifying the file server data, so it inherently causes the VLDB to be out of sync with the data on the servers. It should only be used when recovering from server failure.
  • If the servers are on-line, use vos move instead. Periodt.
  • It is highly recommended that vos syncvldb and vos syncserv be run after using the vos changeloc command, to ensure proper synchronization of the VLDB with the file servers.
🚨 fr fr, do not just casually run this on a healthy system. It's a recovery tool, not a vibe.

πŸ’– OPTIONS πŸ’–

vos changeloc takes the following options:

  • -server <new server name> β€” Tells the VLDB "the volume lives here now." You can hand it the machine's IP address or its host name (fully qualified, or an unambiguous abbreviation β€” she's flexible). For details, see vos(1).
  • -partition <partition name> β€” Tells the VLDB which partition the volume should be believed to be on. You gotta provide the -server argument along with this one, they're a package deal 🫢. Give the partition's complete name with the preceding slash (for example, "/vicepa") or use one of the three acceptable abbreviated forms. For details, see vos(1).
  • -id <volume name or ID> β€” Specifies the name or volume ID number you want to operate on. That's the one getting the makeover.
  • -cell <cell name> β€” Names the cell in which to run the command. Do not combine this argument with the -localauth flag. For more details, see vos(1).
  • -noauth β€” Assigns the unprivileged identity "anonymous" to the issuer. Do not combine this flag with the -localauth flag. For more details, see vos(1).
  • -localauth β€” Constructs a server ticket using a key from the local /etc/openafs/server/KeyFile file. The vos command interpreter presents it to the Volume Server and Volume Location Server during mutual authentication. Do not combine this flag with the -cell argument or the -noauth flag. For more details, see vos(1).
  • -verbose β€” Produces on the standard output stream a detailed trace of the command's execution. If this argument is omitted, only warnings and error messages appear. Basically: with it you get the play-by-play commentary πŸŽ™οΈ.
  • -encrypt β€” Encrypts the command so that the operation's results are not 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 dealing with multi-homed servers. This option is available in OpenAFS versions 1.4.8 or later and 1.5.35 or later.
  • -config <configuration directory> β€” Set the location of the configuration directory to be used. This defaults to /etc/openafs, except if -localauth is specified, in which case the default is /etc/openafs/server. This option allows the use of alternative configuration locations for testing purposes.
  • -help β€” Prints the online help for this command. All other valid options are ignored. (She said "I'm only answering this one question." πŸ’…)

🌈 OUTPUT 🌈

vos changeloc shows a brief message upon completion:

Changed location to server2 /vicepa for volume user.jdoe

Short, sweet, iconic.


πŸ“ EXAMPLES πŸ“

The following command changes the location of the "user.jdoe" volume to be /vicepa on the file server machine "server2" while being verbose:

% vos changeloc server2 a user.jdoe -verbose
 done
Changed location to server2 /vicepa for volume user.jdoe

The following command changes the location of the "user.jdoe" volume to be /vicepa on "server1" without being verbose:

% vos changeloc server1 a user.jdoe
Changed location to server1 /vicepa for volume user.jdoe

πŸ‘‘ PRIVILEGE REQUIRED πŸ‘‘

The issuer must be listed in the /etc/openafs/server/UserList file on each database server machine. If the -localauth flag is included, the issuer must instead be logged on to a server machine as the local superuser "root". No shortcuts, bestie, main character energy only. πŸ’…


🧚 SEE ALSO 🧚

vos(1), vos_move(1), vos_syncserv(1), vos_syncvldb(1)


Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>

This documentation is covered by the BSD License as written in the doc/LICENSE file. This man page was written by Jason Edgecombe for OpenAFS.


aaaand that's the whole page 🫢 massive shoutout to the OpenAFS girlies β€” this one's from OpenAFS, dated 2026-07-27. go sync your servers, you've got this. 🌸✨
πŸ“¦ where this page comes from