Способ подходит для полного переноса данных с одного VPS-сервера на другой. Копирование выполняется в rescue-режиме, то есть без загрузки самой операционной системы, поэтому все данные копируются в неизменном виде, без риска повредить файлы или базу данных во время копирования.
Перед началом
Создайте новый VPS-сервер, на который будете переносить данные.
Чтобы узнать версии операционной системы на обоих серверах, используйте следующую команду:
cat /etc/os-releaseЗатем на обоих серверах проверьте место на диске одной и той же командой:
df -h /На исходном сервере проверьте колонку Used — сколько места занято данными. На новом сервере проверьте колонку Avail — сколько места свободно. Свободного места на новом сервере должно быть больше, чем занято на исходном.
Шаг 1. Переведите оба сервера в rescue-режим
После создания сервера с нужной конфигурацией включите rescue-режим для исходного и нового сервера в ПУ.
Для этого напротив имени каждого сервера нажмите на 3 точки и выберите Rescue-режим:

Подтвердите включение rescue-режима:

После включения rescue-режима перезагрузите оба сервера через reset. Для этого вновь нажмите на 3 точки и выберите Перезагрузить:

В появившемся окне выберите Reset:

Дождитесь, пока оба сервера перезагрузятся и запустятся в rescue-режиме. У сервера появится статус Rescue-режим:

Шаг 2. Подключитесь к серверам и настройте доступ для переноса
Подключиться к серверу в rescue-режиме можно через веб-консоль VNC в ПУ — этот способ работает всегда, независимо от того, поднялась ли сеть.
Как подключиться по SSH
При подключении по SSH, в отличие от VNC, работает вставка текста из буфера обмена. Чтобы подключиться по SSH:
- Через VNC войдите на нужный сервер и задайте временный пароль
root:
passwdЭтот пароль действует только на время работы в rescue-режиме и не меняет пароль в обычной системе (при условии, что вы не выполняли chroot /mnt — этого делать не нужно).
- Узнайте IP-адрес сервера — его можно посмотреть в ПУ в блоке Реквизиты доступа, либо командой
ip aв консоли. - Подключитесь с вашего устройства, заменив
ip_серверана реальный IP-адрес сервера:
ssh root@ip_сервераКак настроить SSH-ключ для переноса данных
Пароль, заданный выше на новом сервере, пригодится позже — для передачи данных через rsync (шаг 5). Вместо пароля можно настроить вход по SSH-ключу — для этого выполните следующие шаги:
- На исходном сервере проверьте, есть ли уже готовый ключ:
cat ~/.ssh/id_ed25519.pubЕсли файл не найден — сгенерируйте новый ключ (на все вопросы можно нажимать Enter, оставляя значения по умолчанию):
ssh-keygen -t ed25519- На исходном сервере передайте ключ на новый сервер одной командой:
ssh-copy-id root@ip_нового_сервераКоманда добавит ключ в файл /root/.ssh/authorized_keys на новом сервере. Когда команда запросит пароль, введите пароль root, заданный выше при помощи passwd.
Шаг 3. Определите корневой раздел на обоих серверах
Имя диска и раздела может отличаться в зависимости от конфигурации сервера (/dev/vda1, /dev/sda1 и т. п.) — определите его сами на каждом сервере одной из команд:
lsblk
fdisk -lРаздел, смонтированный в / (корень), в выводе lsblk указан в колонке MOUNTPOINTS. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 30G 0 disk
└─sda1 8:1 0 29G 0 part /sda1. Далее в статье используется /dev/vda1 как условное обозначение, вместо него указывайте раздел, который вы определили на этом шаге.Шаг 4. Смонтируйте раздел на обоих серверах
Выполните команду для монтирования раздела на исходном и на новом сервере, указав в каждом случае раздел, определённый на шаге 3.
mount /dev/vda1 /mntШаг 5. Запустите копирование файлов
Узнайте IP-адрес нового сервера. IP-адрес можно посмотреть в ПУ в блоке Реквизиты доступа, либо командой на новом сервере:
ip aПо этой причине прежде чем запускать rsync, на исходном сервере откройте сессию tmux — она продолжит работать в фоне, даже если соединение прервется:
tmux new -s cloneУбедившись, что вы находитесь внутри сессии tmux, запустите копирование на исходном сервере:
rsync -aAHP /mnt/ root@new_ip:/mnt/В команде требуется заменить new_ip на реальный IP-адрес нового сервера.
После введите пароль, заданный на шаге 2 (если используете вход по паролю, а не по ключу).
Отключиться от сессии, не прерывая копирование, можно комбинацией Ctrl+B, затем D; вернуться и проверить прогресс — tmux attach -t clone. Полностью закрыть сессию (после того как копирование завершилось), не заходя в неё, можно командой tmux kill-session -t clone.
Проверьте, что копирование завершилось без ошибок
Как только rsync закончит работу, выполните команду в той же сессии tmux, где запускали копирование (если вы отключались от неё — сначала вернитесь командой tmux attach -t clone), не вводя перед этим никаких других команд:
echo $?0 означает, что копирование прошло без ошибок. Любое другое число — при копировании были проблемы: пролистайте вывод rsync вверх и посмотрите, на каких файлах возникли ошибки, прежде чем переходить к следующим шагам.
Как редактировать файлы через vim
На следующих шагах потребуется править файлы внутри /mnt на новом сервере — используйте для этого vim:
- Откройте файл:
vim /путь/к/файлу - Нажмите
i, чтобы войти в режим редактирования (внизу экрана появится-- INSERT --) - Внесите нужные изменения
- Нажмите
Esc, чтобы выйти из режима редактирования - Сохраните и закройте файл: наберите
:wqи нажмитеEnter
Если нужно выйти без сохранения (например, при ошибке) — вместо :wq наберите :q! и нажмите Enter.
Шаг 6. Замените MAC-адрес
Посмотрите актуальный MAC-адрес сетевого интерфейса на новом сервере:
ip linkЗатем на новом сервере проверьте скопированный файл:
cat /mnt/etc/udev/rules.d/70-persistent-net.rulesПример содержимого:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:10:61:a7:ad:96", NAME="eth0"Откройте файл через vim и замените значение ATTR{address} на MAC-адрес, который ранее вы получили командой ip link.
Шаг 7. Замените старый IP-адрес во всех конфигурациях
На новом сервере сначала проверьте, в каких файлах встречается старый IP:
grep -rl old_ip /mnt/etc/В команде требуется заменить old_ip на реальный IP-адрес исходного сервера.
Если команда нашла вхождения — список файлов появится на экране. Просмотрите его: если IP-адрес является подстрокой другого адреса (например, 192.168.1.1 и 192.168.1.10), замена может задеть лишние строки — в таких случаях лучше проверить и поправить такие файлы вручную через vim, не используя автозамену.
Если список выглядит корректным, замените старый IP на новый IP во всех найденных файлах:
grep -rl old_ip /mnt/etc/ | xargs sed -i 's#old_ip#new_ip#g'В команде требуется заменить old_ip и new_ip на реальные IP-адреса исходного и нового сервера соответственно.
grep -rl old_ip /mnt/etc/ ничего не нашла (пустой вывод), не запускайте команду с sed. Команда попытается прочитать данные из терминала и «зависнет» в ожидании ввода. Если так уже произошло, нажмите Ctrl+C, чтобы прервать её.Если на сервере используется панель управления, проверьте и её каталог конфигурации отдельно, так как старый IP может быть прописан и там.
Шаг 8. Замените UUID в grub-загрузчике
Посмотрите текущий UUID раздела на новом сервере:
blkid | grep vda1:Если ваш раздел называется иначе (например, sda1, как определили на шаге 3) — используйте blkid | grep sda1:.
Сравните его с UUID, прописанным в скопированной конфигурации grub. Файл обычно находится по пути /mnt/boot/grub/grub.cfg:
cat /mnt/boot/grub/grub.cfg | grep UUIDЕсли значения UUID различаются, то откройте файл через vim и замените все вхождения старого UUID на новый (посмотренный выше). Если UUID совпадают, тогда менять ничего не нужно.
Шаг 9. Отмонтируйте разделы
На обоих серверах выполните команду:
umount /mntШаг 10. Включите оба сервера
Отключите rescue-режим на обоих серверах через ПУ и перезагрузите их.
Для этого напротив имени каждого сервера нажмите на 3 точки и выберите Rescue-режим:

В появившемся окне нажмите на Выключить Rescue-режим:

После выключения rescue-режима перезагрузите оба сервера через Reset. Для этого вновь нажмите на 3 точки и выберите Перезагрузить:

В появившемся окне выберите Reset и нажмите Перезагрузить:

Шаг 11. Проверьте, что новый сервер работает корректно
После отключения rescue-режима и перезагрузки сервера подключитесь к новому серверу и убедитесь, что:
- сервер загрузился нормально — отображается обычное приглашение к входу, а не аварийный режим;
- сеть настроена верно, MAC-адрес заменен;
- ключевые сервисы запускаются и работают без ошибок;
- панель управления, если она используется, открывается, а сайты отвечают.
Заключение
Вы перенесли данные с одного VPS на другой в rescue-режиме — этот способ сохраняет исходную файловую структуру и данные без риска повредить их во время копирования.