---
name: "quotacheck"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/quotacheck"
---

# quotacheck(8)

file system quota consistency checker

## NAME

**quotacheck** – file system quota consistency checker

## SYNOPSIS

**quotacheck** \[**-guv**\] \[**-c** *32* \| *64*\] \[**-l** *maxrun*\] **-a**

**quotacheck** \[**-guv**\] \[**-c** *32* \| *64*\] *filesystem* *...*

## DESCRIPTION

The **quotacheck** utility examines each file system, builds a table of current disk usage, and compares this table against that recorded in the disk quota file for the file system. If any inconsistencies are detected, both the quota file and the current system copy of the incorrect quotas are updated (the latter only occurs if an active file system is checked). By default both user and group quotas are checked.

The following options are available:

- **-a**

  If supplied in place of any file system names, **quotacheck** will check all the file systems indicated in */etc/fstab* to be read-write with disk quotas. By default only the types of quotas listed in */etc/fstab* are checked.

- **-c** *32* \| *64*

  Before performing its checks, **quotacheck** will convert the quota file to the specified word size. A conversion size of 64 is given to request conversion to the new 64-bit quota file format. A conversion size of 32 is given to request conversion back to the old 32-bit quota file format. The original quota file is left unchanged and moved aside with an underscore and its format size plus a *.orig* extension added to its name. Thus, the original 32-bit *quota.user* quota file converted to the 64-bit format quota file will be renamed to *quota.user\_32.orig*.

- **-g**

  Only group quotas listed in */etc/fstab* are to be checked.

- **-l** *maxrun*

  Specifies the maximum number of concurrent file systems to check in parallel. If this option is omitted, or if *maxrun* is zero, parallel passes are run as per [fsck(8)](/fsck/8.md). This option is deprecated and parallel passes are always run as per [fsck(8)](/fsck/8.md).

- **-u**

  Only user quotas listed in */etc/fstab* are to be checked.

- **-v**

  Report discrepancies between the calculated and recorded disk quotas and other additional diagnostic messages.

Specifying both **-g** and **-u** is equivalent to the default. Parallel passes are run on the file systems required, using the pass numbers in */etc/fstab* in an identical fashion to [fsck(8)](/fsck/8.md).

Normally, **quotacheck** operates silently.

The **quotacheck** utility expects each file system to be checked to have a quota files named *quota.user* and *quota.group* which are located at the root of the associated file system. These defaults may be overridden in */etc/fstab*. If a file is not present, **quotacheck** will create it. These files should be edited with the [edquota(8)](/edquota/8.md) utility.

The **quotacheck** utility is normally run at boot time from the */etc/rc* file. The rc startup procedure is controlled by the */etc/rc.conf* variable *check\_quotas*. Note that to enable this functionality in */etc/rc* you also need to enable startup quota procedures with the variable *enable\_quotas* in */etc/rc.conf*. The kernel must also be built with **options QUOTA**.

The **quotacheck** utility accesses the raw device in calculating the actual disk usage for each user. Thus, the file systems checked should be quiescent while **quotacheck** is running.

## FILES

- *quota.user*

  at the file system root with user quotas

- *quota.group*

  at the file system root with group quotas

- */etc/fstab*

  default file systems

## SEE ALSO

[quota(1)](/quota/1.md), [quotactl(2)](/quotactl/2.md), [fstab(5)](/fstab/5.md), [rc.conf(5)](/rc.conf/5.md), [edquota(8)](/edquota/8.md), [fsck(8)](/fsck/8.md), [quotaon(8)](/quotaon/8.md), [repquota(8)](/repquota/8.md)

## HISTORY

The **quotacheck** utility appeared in 4.2BSD.

## BUGS

The quota system will ignore UIDs or GIDs that would be negative when evaluated as a signed value. Typically those types of ids can appear in the file system from NFS mounts or archive files from other operating systems. Extremely large UIDs or GIDs will cause **quotacheck** to run for an unreasonable amount of time and also produce extremely large quota data files.
