---
name: "cyrreconstruct"
section: "8"
platform: "linux"
package: "cyrus-common-2.2"
version: "2.2.13-19+squeeze3"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/cyrreconstruct"
---

# cyrreconstruct(8)

reconstruct mailboxes

## NAME

cyrreconstruct - reconstruct mailboxes

## SYNOPSIS

**cyrreconstruct** \[ **-C** *config-file* \] \[ **-p** *partition* \] \[ **-x** \] \[ **-r** \] \[ **-f** \] *mailbox*...\
 **cyrreconstruct** \[ **-C** *config-file* \] **-m**

## DESCRIPTION

*cyrreconstruct* rebuilds one or more IMAP mailboxes.  When invoked with the **-m** switch, it rebuilds the master mailboxes file.  It can be used to recover from almost any sort of data corruption.

If *cyrreconstruct* can find existing header and index files, it attempts to preserve any data in them that is not derivable from the message files themselves. The state  *cyrreconstruct* attempts to preserve includes the flag names, flag state, and internaldate. *cyrreconstruct* derives all other information from the message files.

*cyrreconstruct* reads its configuration options out of the [*imapd.conf*(5)](/imapd.conf/5.md) file unless specified otherwise by **-C**.  Any mailbox directory underneath the path specified in the *partition-news* configuration option is assumed to be in news format.

*cyrreconstruct* does not adjust the quota usage recorded in any quota root files.  After running *cyrreconstruct*, it is advisable to run [*cyrquota*(8)](/cyrquota/8.md) with the *-f* switch in order to fix the quota root files.

## OPTIONS

- **-C** *config-file*

  Read configuration options from *config-file*.

- **-p** *partition*

  Search for the listed (non-existant) mailboxes on the indicated partition. Create the mailboxes in the database in addition to reconstructing them. (not compatible with the use of wildcards)

- **-x**

  When processing a mailbox which is not in the mailbox list (e.g. via the -p or -f options), do not import the metadata from the mailbox, instead create it anew (this specifically affects at least the mailbox's seen state unique identifier, user flags, and ACL).

- **-r**

  Recursively reconstruct all sub-mailboxes of the mailboxes or mailbox prefixes given as arguments.

- **-f**

  Examine the filesystem underneath mailbox, adding all directories with a cyrus.header found there as new mailboxes.  Useful for restoring mailboxes from backups.

- **-m**

  **NOTE: CURRENTLY UNAVAILABLE**\
   Rebuild the *mailboxes* file.  Use whatever data in the existing *mailboxes* file it can scavenge, then scans all partitions listed in the [*imapd.conf*(5)](/imapd.conf/5.md) file for additional mailboxes.

## EXAMPLES

You want to reconstruct the index files for a user, you have recovered a deleted mail file from backup and given it a suitable name (eg user/ben-lacy/33.), but it is not visible since it is not indexed:

```
reconstruct -r user.ben-lacy
```

If you have the **unixhierarchysep:yes** option set in **/etc/imapd.conf** you would need to run:

```
reconstruct -r user/ben.lacy
```

## FILES

- **/etc/imapd.conf**
