A free migration tool by XServer

Move your server with one command. Everything included.

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 | bash
Runs on the new server, booted into XServer Live OS. The old server is only read — nothing on it changes.

How it works

This 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.

1Inventory

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.

2Plan

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.

3Partitioning

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.

4Transfer

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.

5Fix-up

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.

6Verify and cut over

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.

Install and quick start

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

What the tool never does

  • Never writes to the old server — no fsck, no resize. It stays your rollback.
  • Never wipes a disk before you have read what is on it now and typed its name and size from the screen.
  • Never formats with defaults: every filesystem is created with the source's features and verified right after mkfs.
  • Never reboots the new server without a green verify.
  • Never touches the other disks of the new server — they are read-only while it works.

Migration guide

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 codeMeaning
0done
1runtime failure — see /run/reloca.to/log
2environment: not the full Live, apt or ssh failed, the donor is this very machine
3verify failed: the disk is written, do not reboot; fix and re-run verify
4the 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.

What is supported

Moving “as is” between different hardware — from software RAID to a hardware controller, from big disks to smaller ones, from physical to virtual.

FromToStatus
Debian 10–13, Ubuntu 18.04–24.04any XServer server: dedicated with a hardware RAID, a single disk, a VPSready
CentOS 7, Rocky / Alma / RHEL 8–9the samein progress
md RAID of any level, LVM, LVM on md, plain MBR/GPT partitionsone disk or a controller's RAID volume, GPT above 2 TBready
ext2/3/4, XFS; swap partitions, LVs and swap files; ESPblock clone or file copy with the same UUIDs and featuresready
BIOS → BIOS, UEFI → UEFIUEFI → BIOS and BIOS → UEFI for Debian/Ubuntu (physical → VM)ready
source disk bigger or smaller than the new onethe root grows or is copied file by fileready
ifupdown, netplan, systemd-networkd, ifcfg, NetworkManagerthe interface becomes eth0, the MAC is updatedready
Windows—separate tool

Why move to XServer

We built reloca.to for our own moves between data centres — and give it away for free to everyone moving to us.

Free, and no weekend-long downtime

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 server, new hardware

The same UUIDs, fstab, packages, configs and services. Only what has to change does: controller drivers, the bootloader, the network interface name.

Transparent and verifiable

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.

Help with anything unusual

Exotic layouts, old distributions, custom scripts — write to us and we will sort it out together. The tool grows on real customer moves.