reloca.to migrates a running Linux server from any provider to XServer over the network: partitions, RAID and LVM, filesystems, the bootloader and the network configuration. You run one command and get the same server on new hardware.
curl -fsSL reloca.to | bashThis is not a disk image. reloca.to understands what is on the server, plans the layout for the new hardware and brings the system to a bootable state by itself.
Both machines are booted into the Live OS. The tool records disks, partitions, md RAID, LVM, filesystems with their features, fstab, kernels, bootloader and network — on both sides.
Two inventories become a text plan: the new layout, what is copied block by block and what file by file, which UUIDs are kept. You can read and edit it before anything is written.
The new disk is laid out from the plan; swap and filesystems are created with the same UUIDs, labels and feature sets as the source, so fstab and grub keep working.
Volumes stream over the network with partclone and tar, lz4-compressed, over an encrypted channel, with progress and ETA. If one volume fails, only that one is retried.
Inside a chroot: fstab, mdadm, an initramfs with the drivers of the new controller, grub for BIOS or UEFI; the network interface is renamed to eth0.
Dozens of checks before the reboot: boot entry, initramfs, cmdline, network. Only after a green verify does the old server leave the network and the new one boots.
Both servers are booted into XServer Live OS. On the new server (the recipient), over ssh:
# install the tool (it fetches missing packages itself) curl -fsSL reloca.to | bash # dry run: the plan and every command, nothing is written reloca.to -l 123:456 -n all 10.0.0.12 auto # full migration: plan → gate → partition → transfer → fix-up → verify → cutover reloca.to -l 123:456 all 10.0.0.12 auto
10.0.0.12 is the old server's address in the Live, auto the only disk of the new one. -l 123:456 names the machines from-XS-123 and to-XS-456 so the logs can never confuse them.
Install and run in one go: curl -fsSL reloca.to | bash -s -- plan 10.0.0.12 auto
The full cycle, phase by phase. Each phase can be run on its own — finished work is skipped by markers, and a dropped ssh session costs nothing (the tool lives in tmux: reloca.to attach).
# 1. inventory of both sides and the plan → /run/reloca.to/plan reloca.to -l 123:456 plan 10.0.0.12 auto $EDITOR /run/reloca.to/plan # edit if you like reloca.to check # re-validate the edits # 2. partitioning, LVM, swap, mkfs — after the “what is on the disk” gate reloca.to apply # 3. transfer the volumes (retry a failed one: -o redo=4) reloca.to transfer # 4. chroot: fstab, mdadm, initramfs, grub, network (-n shows the diffs only) reloca.to postfix # 5. checks before the reboot; exit 3 = do not reboot, fix first reloca.to verify # 6. old server off the network, new one into the migrated OS reloca.to cutover kexec # or netdown | poweroff | none
| Exit code | Meaning |
|---|---|
0 | done |
1 | runtime failure — see /run/reloca.to/log |
2 | environment: not the full Live, apt or ssh failed, the donor is this very machine |
3 | verify failed: the disk is written, do not reboot; fix and re-run verify |
4 | the plan is infeasible or was rejected — nothing was written |
Useful options: -o root=files copies the root file by file when it does not fit; -o compress=none for 10 GbE; -o nic=eth1 for another interface name; -y -i KEY -o callback=URL for unattended runs from a panel task.
Moving “as is” between different hardware — from software RAID to a hardware controller, from big disks to smaller ones, from physical to virtual.
| From | To | Status |
|---|---|---|
| Debian 10–13, Ubuntu 18.04–24.04 | any XServer server: dedicated with a hardware RAID, a single disk, a VPS | ready |
| CentOS 7, Rocky / Alma / RHEL 8–9 | the same | in progress |
| md RAID of any level, LVM, LVM on md, plain MBR/GPT partitions | one disk or a controller's RAID volume, GPT above 2 TB | ready |
| ext2/3/4, XFS; swap partitions, LVs and swap files; ESP | block clone or file copy with the same UUIDs and features | ready |
| BIOS → BIOS, UEFI → UEFI | UEFI → BIOS and BIOS → UEFI for Debian/Ubuntu (physical → VM) | ready |
| source disk bigger or smaller than the new one | the root grows or is copied file by file | ready |
| ifupdown, netplan, systemd-networkd, ifcfg, NetworkManager | the interface becomes eth0, the MAC is updated | ready |
| Windows | — | separate tool |
We built reloca.to for our own moves between data centres — and give it away for free to everyone moving to us.
A move takes from half an hour to a few hours depending on the data. The old server keeps working right until the cutover.
The same UUIDs, fstab, packages, configs and services. Only what has to change does: controller drivers, the bootloader, the network interface name.
Every command is printed and logged — the plan is the runbook. Dozens of checks before the reboot, and the old server stays untouched for a rollback.
Exotic layouts, old distributions, custom scripts — write to us and we will sort it out together. The tool grows on real customer moves.