man > eatmydata(1)

eatmydata(1) General Commands Manual eatmydata(1)

📝 NAME

eatmydata — transparently disable fsync() and other data-to-disk synchronization calls

🚀 Quick Reference

Use CaseCommandDescription
Run a command with sync disabledeatmydata -- command [args]Execute command in a no-sync environment
Symlink mode for automatic wrappingln -s /usr/bin/eatmydata /usr/local/bin/aptitudeRun aptitude (or any program) always through eatmydata
Manual environment setup (chroot-safe)LD_LIBRARY_PATH=...
LD_PRELOAD=...libeatmydata.so
Load libeatmydata without wrapper script, cross-architecture

🔧 SYNOPSIS

eatmydata [--] command [ command arguments ... ]

📖 DESCRIPTION

eatmydata runs a command in the environment where data-to-disk synchronization calls (like fsync(), fdatasync(), sync(), msync() and open() O_SYNC / O_DSYNC flags) have no effect. LD_PRELOAD library libeatmydata overrides respective C library calls with custom functions that don't trigger synchronization but return success nevertheless.

You may use eatmydata in two ways. In normal mode, just execute eatmydata directly and pass a command-to-be-run and its arguments via command line. In order to use symlink mode, create a symlink to /usr/bin/eatmydata with the filename (a.k.a basename) of another program in the PATH and execute eatmydata via that symlink. Then eatmydata will find that program in the PATH and run it in the libeatmydata environment repassing all command line options.

🎛️ OPTIONS

Please note that eatmydata does not process any command line options in symlink mode. All command line options will be repassed to the underlying executable as-is.

💡 EXAMPLES

Given PATH is /usr/bin and both /usr/bin/aptitude and /usr/bin/eatmydata are installed, the following:

$ ln -s /usr/bin/eatmydata ./aptitude
$ ./aptitude moo

is equivalent to:

$ eatmydata -- aptitude moo

Therefore, you may use symlink mode to automatically run specific programs in the libeatmydata environment whenever you run them from PATH. For example, given standard PATH settings, just do:

# ln -s /usr/bin/eatmydata /usr/local/bin/aptitude

and enjoy sync-free aptitude system-wide.

⚠️ CAVEAT

When using eatmydata with setarch (including alias such as linux32), or anyway with chroots with a different architectures than the host's, make sure to install the matching architecture of libeatmydata1 both in the setarch environment and host's.

Trying to load libeatmydata manually (without using the wrapper script) and using it through a chroot, especially if the eatmydata version differ between outside and inside, is probably going to fail due to the different position of the library on the file system.

The safest way to manually load libeatmydata is by setting the following two environment variables (shell syntax):

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+"$LD_LIBRARY_PATH:"}/usr/lib/libeatmydata
LD_PRELOAD=${LD_PRELOAD:+"$LD_PRELOAD "}libeatmydata.so

These two variables account for the case of a Debian Jessie host with a Debian Wheezy chroot, where the position of the library changed.

November 2014 eatmydata(1)

eatmydata(1)
📝 NAME 🚀 Quick Reference 🔧 SYNOPSIS 📖 DESCRIPTION 🎛️ OPTIONS 💡 EXAMPLES ⚠️ CAVEAT

Generated by phpman v4.10.0-7-g98e9fd5 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-09-03 14:38 @216.73.216.75
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!