name: erigon-datadir user-invocable: false description: Reference for manipulating Erigon datadirs. Use this when the user wants to perform operations on Erigon data directories. allowed-tools: Bash, Read, Glob
Erigon Datadir Operations
Duplicating a Datadir
Given a source path and destination path, follow this procedure exactly.
Precondition Checks
All checks must pass before copying. Abort on the first failure.
- Source exists:
test -d <src>— abort if missing - Source is a valid Erigon datadir: verify all three exist:
<src>/nodekey(file)<src>/snapshots/(directory)<src>/chaindata/(directory)
- Destination does not exist:
test ! -e <dst>— abort if it already exists - Destination parent is writable:
test -w "$(dirname <dst>)"— abort if not - Report source size: run
du -sh <src>and always tell the user the size before proceeding - Detect APFS: find the mount device for the destination parent directory from
mountoutput. If the mount entry containsapfs, use the APFS CoW procedure below; otherwise use the full-copy procedure.
APFS Procedure (copy-on-write)
Use this when the destination is on an APFS volume.
- Run
cp -ac <src> <dst>— this creates a CoW clone that is near-instant and consumes no extra disk space. - No disk space check is needed for CoW clones.
- After the copy completes, delete chaindata from the destination:
rm -rf <dst>/chaindata
Other Filesystems Procedure (full copy)
Use this when the destination is NOT on APFS.
- Check disk space: run
df -h "$(dirname <dst>)"and compare available space to the source size. If available space is less than source size, abort and tell the user — do not proceed. - Run
cp -a <src> <dst>to recursively copy the entire datadir. This is a long-running operation for large datadirs — run in background.
Post-Copy
After either procedure completes, confirm success by listing the destination contents and comparing against the source (minus chaindata/ for APFS copies).