fsfreeze - Linux


Overview

fsfreeze is a command-line utility used to freeze and thaw the file system of a given mount point. It is primarily useful in conjunction with file system snapshots for creating consistent backups or performing system-level upgrades and migrations.

Syntax

fsfreeze mount_point [command]

Options/Flags

  • -f, –force: Force the operation even if the file system is busy.
  • -t, –timeout: Specify a timeout in seconds before forcibly unfreezing the file system. Defaults to 0 (no timeout).

Examples

Freeze a file system:

fsfreeze /mnt/data

Thaw a file system:

fsfreeze -t 10 /mnt/data

Create a snapshot after freezing a file system:

bash
fsfreeze /mnt/data
btrfs subvolume snapshot /mnt/data /mnt/backup
fsfreeze -u /mnt/data

Upgrade the system while a file system is frozen:

bash
fsfreeze -t 900 /
apt-get update && apt-get upgrade
fsfreeze -u /

Common Issues

  • "Permission denied" error: Ensure that the user running the command has sufficient privileges (e.g., root or sudo).
  • "File system is busy" error: Use -f flag to forcibly freeze even if the file system is busy, or wait for I/O to settle.
  • Timeout issues: Adjust the timeout value with -t flag if the operation takes longer than expected.

Integration

Combine fsfreeze with other commands for advanced tasks:

  • Create snapshots after freezing: Use with cp, rsync, or tar to create backups from a consistent file system state.
  • Perform system-level upgrades: Freeze the root file system to minimize system downtime during major upgrades.
  • Write protection: Use fsfreeze to prevent accidental file system modifications or deletions during maintenance tasks.

Related Commands

  • btrfs: File system that supports snapshots and freezing.
  • LVM snapshot: Logical Volume Manager tool for creating snapshots of block devices.