SLV Migrate Linux - Quickstart
🚚 SLV Migrate Linux
Migrate your entire Linux disk to a new server over SSH using rsync. This is a full-disk migration — everything from the source server is copied to the destination, including user data, configurations, installed packages, and SLV node setup.
Note: This is different fromslv v switch(validator identity migration).slv migrate linuxcopies the entire filesystem, whileslv v switchswaps validator identity between two already-running nodes.
Prerequisites
- SLV CLI installed on the source node
sudo/ root access on both source and destination- SSH access from source to destination (password or key-based)
- Destination server should be a fresh install (SLV will warn if it detects existing data)
Basic Usage
Run on the source server:
bash
sudo slv migrate linux --to root@new-server-ipsudo slv migrate linux --to root@new-server-iptext
🚚 SLV Linux Migration
Source: ubuntu (this machine)
Destination: [email protected]
📋 Exclude list:
• /dev/*
• /proc/*
• /sys/*
• /tmp/*
• /run/*
• /mnt/*
• /media/*
• /lost+found
• /swapfile
• /snap/*
• /var/log/*
? Start migration? This will overwrite data on the destination. › Yes
Syncing... (this may take a while depending on disk size)
√ Migration complete
Rebooting destination...🚚 SLV Linux Migration
Source: ubuntu (this machine)
Destination: [email protected]
📋 Exclude list:
• /dev/*
• /proc/*
• /sys/*
• /tmp/*
• /run/*
• /mnt/*
• /media/*
• /lost+found
• /swapfile
• /snap/*
• /var/log/*
? Start migration? This will overwrite data on the destination. › Yes
Syncing... (this may take a while depending on disk size)
√ Migration complete
Rebooting destination...Options
| Option | Description |
|---|---|
-t, --to <ssh> | SSH destination (e.g. root@new-server) |
-p, --port <port> | SSH port (default: 22) |
--skip-reboot | Skip automatic reboot after migration |
--exclude <path> | Additional rsync exclude pattern (repeatable) |
--include <path> | Remove from default excludes (repeatable) |
--list-excludes | Show current exclude list and exit |
-y, --yes | Skip confirmation prompt |
Custom SSH Port
If the destination uses a non-standard SSH port:
bash
sudo slv migrate linux --to root@new-server-ip --port 2222sudo slv migrate linux --to root@new-server-ip --port 2222Customize Excludes
View what will be excluded:
bash
slv migrate linux --list-excludesslv migrate linux --list-excludesExclude additional paths (e.g., skip ledger data for faster migration):
bash
sudo slv migrate linux --to root@new-server-ip --exclude /home/solv/ledgersudo slv migrate linux --to root@new-server-ip --exclude /home/solv/ledgerNon-Interactive Mode
For scripting:
bash
sudo slv migrate linux --to root@new-server-ip --skip-reboot --yessudo slv migrate linux --to root@new-server-ip --skip-reboot --yesHow It Works
- Pre-flight checks — Verifies SSH connectivity, warns if destination has existing data
- rsync — Copies entire filesystem (excluding system pseudo-filesystems) over SSH
- Post-migration — Automatically reboots the destination server (unless
--skip-reboot)
The migration uses rsync with
--archive --hard-links --acls --xattrs to preserve all file attributes, permissions, and special files.⚠️ Important Notes
- Run as root (or with
sudo). Non-root migration will miss system files. - The destination should be a fresh server. Existing data will be overwritten.
- rsync exit codes 23/24 (partial transfer) are treated as warnings, not errors. Some files (like active logs) may not transfer perfectly.
- After migration, verify the node is working correctly before decommissioning the source.
- For validator identity migration (zero-downtime swap between two running validators), use
slv v switchinstead. See Mainnet Validator Migration.