**VERSION 1.8 OF THIS PAGE HAS BEEN CONVERTED TO DOCBOOK. CONSIDER IT READ-ONLY! / [[TommieGannert]]** **If you want to read it as HTMLHelp, download it [here](http://www.e.kth.se/~tommie/openafs/openafs-referenceguide.chm).** # Configuration Reference Guide
## Introduction Once you have installed [[OpenAFS]] for Windows onto your computer, there are two programs you will be concerned with: the AFS Client (Credentials Manager), and the AFS Client Configuration program. Many of the options in [[OpenAFS]] can be set from both programs. This is a source of confusion, which this guide will try to sort out. Because this is a reference, the programs will be described in order, screen by screen. At the end, files and Windows Registry keys will be described. ## Credentials Manager This program is located in `C:\Program Files\OpenAFS\Client\Program\afscreds.exe` (default location). It is used for managing end-user tasks. This includes obtaining tickets and setting up per-user drive mappings. ### Command Line Options If you intend to run `afscreds.exe` from a command line, the following options may be of interest to you. NB: The flags are case-insensitive, and can begin with either **_-_** (� la Unix) or **_/_** (old Windows style).
-A
Auto Initialize. Starts the AFS service if it is stopped. Tries to obtain tokens when the Credentials Manager is started.
-E
Exit. Terminate another, already running, instance of Credentials Manager. Then exit this instance.
-I
Install in Startup. Make the Credentials Manager start when the user logs in.
-M
Renew Drive Mappings. Unmaps all drive mappings and then remaps them when the Credentials Manager is started.
-N
Net Change Detect. Tells the Credentials Manager to ask the user for new tokens if a network interface changes its IP address.
-Q
Quiet. Do not notify the user if the AFS service is not started when the Credentials Manager is begin started.
-S
Show Tokens. Open the tokens window on start.
-U
Uninstall. Remove Credentials Manager from Startup. The Credentials Manager will no longer start automatically when the user logs in.
-X
Remap All. Remap all drives, including global drives.
-Z
Unmap All. Unmaps all per-user drives.
### Tokens The Tokens Tab displays brief information about your AFS tokens. It shows your current cell, and when the tokens expire. It lets you obtain (or renew) tokens (kauth/kinit in Unix) and make it sound an alarm if they will be expiring any time soon. If you have sensitive information in AFS, you can discard (kdestroy) tokens when away. [[OpenAFS]] and roaming profiles are a problematic issue. Windows does not notify [[OpenAFS]] when it is done putting the profile back into AFS. This means [[OpenAFS]] has no way to safely discard tokens when you log out, given you are using roaming profiles. When using a local profile, the tokens are discarded when you logout. See also the [[WindowsTroubleshootingGuide]] on this matter. The Credentials Manager can make use of MIT Kerberos for Windows, if installed. This lets you use [[KerberosV]] tickets directly in the AFS Credentials Manager. Thus, there is no longer a need to have a third party Credentials Manager running. This window also shows what version of [[OpenAFS]] you are currently running. ### Drive Letters A fundamental entity in the Microsoft Windows operating systems is the **_drive_**. A drive is identified by one letter and a colon. Masking a network file system as a drive is called "mapping a drive." Mapping a drive in [[OpenAFS]] requires you to know three things. You will have to know what drive you want to map, what AFS path to map from, and what to call the mapping. The first two should be obivous. If you are used to Unix, however, note that the AFS Path is written using backslash, not slash. You also have the option to automatically reconnect the drive on login. The Description field is not as obvious. It is an **_identifier_** for the mapping, and is called a **_submount_**. It is not a free text description. The same restrictions apply to the description as to any name of a Windows share. See the [[WindowsTroubleshootingGuide]] for more information on submounts. ### Advanced If you are an administrator, you will want to use this tab eventually. You can check the status of the AFS service, start it if needed and configure global parameters. Pressing "Configure AFS Client" brings up the "AFS Client Configuration" program, which is described in a later section. You should always start the AFS service when the computer starts up. Otherwise, you will have to start the service manually. This is equivalent to using the "Services" tab of Windows Administration Tools". This applies to all users. The "Always show the AFS Client icon in the taskbar" option sets whether the Credentials Manager should be started on each login or not. ### System Tray A padlock is the icon for AFS Credentials Manager. It is locked when you have valid tokens, and has a small red cross when you do not. Clicking it brings the Credentials Manager up. Right-clicking opens a three-item menu. "Remove Icon..." will ask if you want to stop the AFS service or not. The Credentials Manager will then exit. ## Client Configuration This program is located in `C:\Program Files\OpenAFS\Common\afs_config.exe` (default location). The configuration utility can perform most operations of the Credentials Manager, and more. In fact, the Client Configuration is not able to obtain tokens, but everything else can be updated with it. When installed, [[OpenAFS]] also installs this program as a Control Panel applet, called "AFS Client Configuration". No matter what you call it, the functionality is the same. ### General The General Tab of the AFS Client Configuration provide roughly the same functionality as the Advanced Tab of the Credentials Manager. The Cell Name identifies the default authentication cell. The `root.afs` volume of this cell is used to identify which cells to present at the root. Your default cell must have AFSDB-records in DNS, or/and be listed in [[CellServDB]] (see AFS Cells below). At the bottom, you will find the same Start / Stop Service as in the Credentials Manager. The three other options are: - **Obtain AFS tokens when logging into Windows** enables the Integrated Logon feature. - **Provide an AFS Light Gateway** gives you access to the [[OpenAFS]] submounts from other computers. - **Show the AFS Client icon in the taskbar** will start the Credentials Manager if it is not already running. ### Drive Letters Mapping drives and creating submounts work the same way as for the Credentials Manager. Please refer to the section above. ### Preferences Since AFS can mirror both files and volume information on several servers, there must be a way to determine which server to contact. In [[OpenAFS]] for Windows, this is specified using the Server Preferences screen. Normally, you will never need to manually change the preferences of the servers. However, if you are doing load balance testing or if you are stress-testing a server, you may want to set preferences here. You can also import the rankings from a file. The file is a text file with one line per server. Whitespaces separate the server name from the ranking number. Note that the servers are imported to the active list (File Server or Volume Location Server). ### AFS Cells Before [[OpenAFS]] was able to handle AFSDB-records in DNS, the [[CellServDB]] file contained the explicit mappings between cells and servers. The AFS Cells Tab shows the cells currently in the [[CellServDB]]. You add a cell and list its associated servers. Most large sites copy the [[CellServDB]] directly from the network, to keep it in sync. ### Advanced Finally, the Advanced Tab. This is where you configure the heart of [[OpenAFS]] for Windows. Most of these settings already have a best-practice value. Be warned that changing these settings can cause [[OpenAFS]] to be slow, or to stop working at all. In the Cache Configuration section, there are four options: - **Cache Size** determines the maximum disk cache size. The disk cache is a file, and it will always have the chosen size. I.e. it will not shrink if possible. The defualt is 20 MB. If you are editing large files, you may want to increase the cache size. Note that [[OpenAFS]] for Windows does not have a **_persistent cache_**. This means the cache will be flushed each time the [[OpenAFS]] service stops. The Unix versions of [[OpenAFS]] does have a persistent cache. - **Cache Path** holds the path to the file acting as disk cache. The default is `C:\AFSCache`. - **Chunk Size** is the smallest transfer unit. The cache works by caching chunks of files, not necessarily entire files. It should be set to a size which is fast to transfer over the network, yet large enough to avoid lots and lots of transfers. The default is 32 kB. It must be an even power of two. - **Status Cache** describes file meta information caching. 1000 entries is the default. #### Logon Settings Change the behavior of the Integrated Logon feature. The login retry interval sets how long (in seconds) [[OpenAFS]] will try to obtain initial tokens. Fail Logins Silently controls whether you will get a message box telling the reason for the failure. Setting "Fail Logins Silently" to "No" also affects the function of the retry interval. When the interval has passed, you will be asked whether to start the timer over or not. If you choose to start over, another retry interval will be used to try and obtain the tokens. #### Diagnostic Due to the complexity of [[OpenAFS]], the error and trace logging facilites have evolved into a detailed tracer of execution. The buffer is a ring, and the default size is 5000 kB. You can read this buffer using the `osidebug` program. "Trap On Panic" is used during development. It is only useful if the AFS service crashes. If set to "Yes" (default), a crashed service will start the system debugger. (Actually, it sends an IRQ 3.) Note that the option is ignored if the system does not have a debugger installed. "Report Session Startups" will let the AFS service send an event to the Windows Event Log each time a new SMB/CIFS session is started. Default is "No". #### Global Drives In a highly networked environment, it is not uncommon to read login scripts from the network. This, of course, requires the scripts to be accessible by login time. Since the per-user drive mappings are executed **_after_** the scripts are executed, the global drive mappings can be used. These affect all users, and can only be modified by an Administrator. #### Binding Before [[OpenAFS]] for Windows began to use the [[WindowsLoopBackAdapter]], it used physical network interfaces to bind to. In certain situations, the default choice may be a bad one. For instance, when the network interface connects directly to the Internet, this would be a bad idea. With the Loop Back Adapter, this is no longer an issue. #### Miscellaneous These settings are hardly ever changed. They control system specific settings. - **Probe Interval** determines how often to check file servers. AFS is designed through the principle of callbacks. The file servers are obliged to notify each client if a subscribed file changes. This setup is not guaranteed to work if the servers lose the subscription list. Therefore, the client probes the servers regularly. **_Note: currently this setting is not permanently stored in the Windows Registry. It is only induced in a running AFS Client Service._** - **Background Threads** controls how many AFS network threads will be running. One thread is able to handle one request from an AFS server at any time. Default is four threads. - **Service Threads** controls how many SMB/CIFS threads will be running. If your computer is a single user machine, not doing any video or audio editing, a low number should suffice. It is possible that a higher number will get better performance for many parallel file accesses. Default is two threads. - **System Name** is the value of "@sys". It should never be changed. Default is currently "i386\_nt40" for Windows NT/2000/XP/2003. - **Mount Directory** is really "Mount Root". It is used when resolving symlinks. Microsoft Windows does not know about symbolic links, so the AFS Client Service must convert them. If a symlink target begins with the **_Mount Directory_** string, it will be transformed into an absolute path of the form `\\AFS\ALL\...`. Default is `/afs`. There is generally no need to modify this value. - **Root Volume** is the name of the root volume of the default cell. Default is `root.afs`, and is the recommended AFS root volume name. ## Settings Without a User Interface Currently, some options have not yet been given a proper user interface. These can be changed directly in the Windows Registry using `regedit`. ### Netbios Name As the AFS service publishes its services as SMB/CIFS shares, there must be a name of this service. The `NetbiosName` (type expanding string) value of `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` can change this. The default is "AFS". Change this to "%COMPUTERNAME%-AFS" to revert to the old behavior. ### Encryption of Network Traffic Historically, AFS did not support encrypted network traffic. This has changed in recent years. The support is off by default in order to be compatible with old servers. You enable and disable encryption through the value `SecurityLevel` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`. Set to 1 to enable and 0 to disable. ### Freelance Client Support This option can be set during installation. After installation, a registry entry must be edited. It can be found in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` and is called `FreelanceClient` (type DWORD). Set it to 1 to enable Freelance Mode. See the [[Troubleshooting Guide|Main/WindowsTroubleshootingGuide#What_is_Freelance_Mode_]] for more information on Freelance Mode. Default is zero (disabled). #### Freelance Root Setup To be able to use Freelance Mode, the AFS Client Service needs to know which cells should be visible. This is equivalent to mounting `root.cell` volumes in `root.afs`. If there are no volumes described when the AFS Client Service first starts, the default cell is inserted into the list (including a forced R/W volume). To change the list, you need to edit the values under `HKEY_LOCAL_MACHINE\SOFTWARE\OpenAFS\Client\Freelance`. The values must be named with consecutive integers, starting from zero. Each value describes one volume to be mounted. The syntax is mountpoint#cell:volume.\n mountpoint%cell:volume.\n Note the trailing dot and newline (ASCII 10) characters. The first line (with a hash) describes a normal volume, the second (with a percent sign) describes a R/W volume. R/W volume mountpoints usually begin with a dot. For instance, the keyed values 0 = openafs.org#openafs.org:root.cell.\n 1 = .openafs.org%openafs.org:root.cell.\n will make two volumes available, one normal and one forced R/W. ### Hiding Dot-Files On Unix, a dot-file is a file which begins with the dot character. It is semantically similar to the Hidden attribute used in Windows. This feature is enabled by default and marks all dot-files with the Hidden attribute. The value `HideDotFiles` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` can disable it (by giving it the value 0). ### Hiding the `\\AFS\all` Share The share `all` is exported by default, and is defined as the root volume of the default cell. If you do not want this share to be defined, you can set `AllSubmount` (type DWORD) to 0, in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`. ### Tweaking the SMB Connections Four values in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` affect the SMB connections: - `MaxMpxRequests` (type DWORD) is the maximum number of multiplexed SMB requests that can be made. Default is 50. - `MaxVCPerServer` (type DWORD) is the maximum number of SMB virtual circuits. Default is 100. - `NoFindLanaByName` (type DWORD) disables the attempt to identity the network adapter to use by looking for an adapter with a display name of "AFS", if set to 1. Default is 0. - `SMBAuthType` (type DWORD) defines the type of SMB authentication which must be present in order for the Windows SMB client to connect to the AFS Client Service's SMB server. The values are - No authentication required (0) - NTLM authentication required (1) - Extended (GSS SPNEGO) authentication required (2, default) Heavily loaded clients may need to increase the first two values. Running the default authentication type, GSS SPNEGO, requires you to have the `cifs/HOST$@REALM` principal in your [[KerberosV]] KDC. If you Windows client computer is called `adam.openafs.org`, the principal should (probably) be `cifs/ADAM$@OPENAFS.ORG`. This works like the `host` principal, and must share the secret key with the `host` principal. Note: The name of the virtual SMB share is **_AFS_** if you use the [[WindowsLoopBackAdapter]]. But you must **_not_** have the principal `cifs/afs` principal in any realm you login to. If the CIFS principal is missing, the client will revert to using NTLM authentication. Also, you can explicitly set the Client Side Caching Policy of a SMB share by populating `HKEY_LOCAL_MACHINE\SOFTWARE\OpenAFS\Client\CSCPolicy\` with values. The values (type string) are keyed by the submount (Windows share) name. Valid policy values are: - **disable** Which totally disables Windows Client Side Caching. - **programs** Disables the cache for files that are opened for reading. - **documents** All files will be cached. - **manual** Selected files will be cached. Note that CSC is something Windows can do with all CIFS shares. The setting is used for responding to Windows requests about the policy. AFS itself has its own caching which is not involved in CSC. Read more in [Windows Clustering](http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/cluad_pr_100.asp). ### Connection Timeouts In `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`, two values control when connections are considered dead. - `ConnDeadTimeout` (type DWORD) Default is 60 seconds. - `HardDeadTimeout` (type DWORD) Default is 120 seconds, and it must be at least twice the `ConnDeadTimeout` value. ### Tweaking RPC Traffic In `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`, two values control how RX transfers data. - `RxNoJumbo` (type DWORD) If enabled, does not send or indicate that we are able to send or receive RX jumbograms. Default is 0, which means jumbograms are used. - `RxMaxMTU` (type DWORD) If set to anything other than -1, uses that value as the maximum MTU supported by the RX interface. In order to enable [[OpenAFS]] to operate across the Cisco IPSec VPN client, this value must be set to 1264 or smaller. Default is -1, the maximum. ### Enabling Debug Trace Events Normally, the `TraceOption` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` is 0, meaning no traces will be sent to the Application Event Log. Setting it to 1 enables trace output. ### Restricting the Number of Utilized CPUs For most part, the [[OpenAFS]] client can use as many processors as available. However, using multiple processors on a Hyperthreaded Pentium 4 system can cause the [[OpenAFS]] service to crash. If you have such a system, you should set `MaxCPUs` (type DWORD) (in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`) to 1. The default is undefined, and means all processors may be used. ### Moving the [[CellServDB]] File The registry setting `CellServDBDir` (type string) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` specifies the base directory of the [[CellServDB]] file. Note that the filename `CellServDB` is appended to this path. The default is `C:\Program Files\OpenAFS\Client`. ### Moving the Integrated Logon Support File [[OpenAFS]] installs very few files outside its directory in `Program Files`. The Integrated Logon DLL, `afslogon.dll`, is an exception. It is installed in `%WINDIR%\SYSTEM32` by default. To change this location you must update the registry value `AuthentProviderPath` (type string) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` to point to the new location. ### Allowing More Time For the Service To Start When the AFS Client Service starts, it has to read files, the registry, DNS information, and connect to servers. All of this may take quite some time. On slow computers, the default retry policy can be too short. In this case, the `LoginRetryInterval` (type DWORD) and `LoginSleepInterval` (type DWORD) values in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` can be increased. If the [[OpenAFS]] client service has not started yet, the network provider will wait for a maximum of `LoginRetryInterval` seconds while retrying every `LoginSleepInterval` seconds to check if the service is up. This setting is domain-specific; see below. ### Running a Logon Script You may set `LogonScript` (type string or expandable string) of `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` to any runnable script or program. Default is to not run any program. This setting is also domain-specific; see below. ### Integrated Logon Usage Utilization of the Integrated Logon feature can be set on a per-domain basis. The value is called `LogonOption` (type DWORD) and can be found in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider`. Setting this to zero disables Integrated Logon, and a one enables it. Default is enabled. If you set this to 2, you enable the [[OpenAFS]] High Security mode, and setting it to 3 enables both High Security Mode and Integrated Logon. High Security mode is a deprecated techinque to let several users logon to the same computer at once. Since [[OpenAFS]] now supports authenticated SMB connections, there is really no need for this mode. If you still want to use this mode, you should disable SMB Authentication. See "Tweaking the SMB Connections" on this matter. ### Integrated Logon Silence In the Client Configuration, you may choose whether the Intergrated Logon should warn when you cannot logon, or if it should not. Since this setting is domain-specific, here is the background. The `FailLoginsSilently` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` can be set to 1 to ignore any failures. Default is to warn (i.e. a value of zero). ### Disable Automatic Use of [[KerberosV]] If you have MIT Kerberos for Windows installed, and you do not want to let AFS Credentials Manager use it, you can disable it by setting `EnableKFW` (type DWORD) in `SOFTWARE\OpenAFS\Client`. This can be done in either of `HKEY_LOCAL_MACHINE` or `HKEY_CURRENT_USER`. ### Changing the Default Authentication Cell In some rare cases, you may want to authenticate to one cell, but keep using another cell as your home. You can do this by entering the authentication cell each time you obtain new tokens. If you intend to do it regularly, you can change it in the registry. The value `Authentication Cell` (type string) in `HKEY_CURRENT_USER\SOFTWARE\OpenAFS\Client` can be set to another cell name than the default cell. ### Changing the Parameters of AFS Credentials Manager When the AFS Credentials Manager starts, it recreates the Start Menu and Startup shortcuts to enforce the parameters given during installation. These parameters are stored as `AfscredsShortcutParams` in `SOFTWARE\OpenAFS\Client`. It can be set for both `HKEY_LOCAL_MACHINE` and for `HKEY_CURRENT_USER`. Default is `-A -M -N -Q`. See above for an explanation of these parameters. ## Per Domain Options [[OpenAFS]] for Windows is now able to support domain-specific settings. Four of the settings in the previous section can be adjusted on a domain basis: - Allowing More Time For the Service To Start - Running a Logon Script - Integrated Logon Usage - Integrated Logon Silence This is a new feature of [[OpenAFS]] 1.3.6, and is not yet supported by the configuration user interface. While being a usable feature, we choose to document, so that you can still use it. A new configuration interface is hopefully on its way. All values that can be domain-specific are located under `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider`. Domains which want to have specific settings can create the subkey Domain\\_domain_\\ and store the values there. The domain name is the logon domain, as specified in the Windows Login screen. A special domain, called `LOCALHOST`, is a placeholder for the local computer. Any other Active Directory or Kerberos realm should use its realm name for the key. ### Resolution of Domain Specific Values As a consequence of this scheme, there must also be set rules for resolving which value to use. Let us use the following example in the discussion: ...\NetworkProvider\ LogonOption = 1 Domain\ LogonOption = 0 OPENAFS.ORG\ LogonOption = 1 MIT.EDU\ LOCALHOST\ LogonOption = 0 If the specific domain key does not exist, then the `Domain` key will be ignored. All the configuration information in this case will come from the standard `NetworkProvider` key. If the specific domain key exists, then the value will be looked up in the specific domain key, domains key and the NP key successively until the value is found. The first instance of the value found this way will be the effective for the login session. If no such instance can be found, the default will be used. in other words, a value in a more specific key supercedes a value in a less specific key. Back to our example. Logging in to domain `OPENAFS.ORG` clearly enables the Integrated Logon. Logging on the local computer disables it. Logging in to `MIT.EDU` will also disable Integrated Logon, because the domain key exists, but misses a value. This resolves to using the value of `Domain\LogonOption`. However, logging in to `KTH.SE` would enable Integrated Logon. It is not listed as a domain, and thus the `NetworkProvider\LogonOption` is used. In order to retain backward-compatibility, there are two exceptions to this resolution order. ### Exceptions To the Resolution Rule Historically, the 'FailLoginsSilently' value was in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` key and not in the `NetworkProvider` key. Therefore, for backward compatibility, the value in the `Parameters` key will supercede all instances of this value in other keys. In the absence of this value in the `Parameters` key, normal scope rules apply. [Mobil Keluarga Terbaik di Indonesia](http://bisnis-inter-net.com/mobil-keluarga-terbaik-di-indonesia/) [TOP 1 Oli Sintetik Mobil-Motor Indonesia](http://bisnis-inter-net.com/top-1-oli-sintetik-mobil-motor-indonesia/) [Bisnis Internet](http://bisnis-inter-net.com/) The second exception is for the `LogonScript` value. If a `LogonScript` is not specified in the specific domain key nor in the `Domain` key, the value in the `NetworkProvider` key will only be checked if the effective `LogonOptions` specify a high security integrated login. If a logon script is specified in the specific domain key or the domains key, it will be used regardless of the high security setting. Please be aware of this when setting this value. ## Windows Registry Keys of [[OpenAFS]] During the preparation of this release of [[OpenAFS]], a lot of changes have been made to the way configuration is stored. The work is still not finished; the list of registry keys currently used can be found [here](http://web.mit.edu/~jaltman/Public/OpenAFS/registry.txt).