Главный критерий данного переноса — чтобы размер файлов на отдающем сервере не превышал размер диска принимающего.
Предположим у нас есть два сервера — отдающий и принимающий со следующими дисками:
Для переноса мы:
Загружаем оба сервера с диска восстановления.
Для подключения по SSH потребуется отключить firewall и установить пароль для пользователя root:
systemctl stop iptables
passwd #дважды укажите новый пароль для root
Монтируем диски серверов в каталог mnt
:
mount /dev/sda1 /mnt
Команда выполняется на двух серверах.
Удаляем файлы на диске принимающего сервера:
rm -rf /mnt/*
Копируем файлы с отдающего на принимающий:
rsync -azvhP /mnt/ root@IP_ПРИНИМАЮЩЕГО:/mnt/
По окончанию копирования выполняем команды на принимающем сервере:
Ubuntu
Удалим привязку к статическому MAC-адресу
nano /etc/netplan/50-cloud-init.yaml
Найдем и закомментируем строки с привязкой к MAC-адресу, например:
match:
macaddress: 54:52:00:6e:6d:ba
После редактирования применяем изменения:
netplan apply
Проверьте, запущена ли служба ssh:
systemctl status ssh
Если служба не запущена, запустите ее:
systemctl enable ssh && systemctl start ssh
Выполним команды:
update-initramfs -u
grub-install /dev/sda
update-grub
exit
Centos
Войдем в окружение chroot
на смонтированном разделе:
arch-chroot /mnt
Установим GRUB на основной диск:
grub2-install /dev/sda
Создадим конфигурацию загрузчика:
grub2-mkconfig -o /boot/grub2/grub.cfg
Проверим UUID корневого раздела:
blkid /dev/sda1
Вы увидите примерно такой вывод:
/dev/sda1: UUID="90c1eed9-cfb3-4676-bcc9-fbf85f391246" TYPE="xfs"
Скопируйте UUID без кавычек — в нашем примере это:
90c1eed9-cfb3-4676-bcc9-fbf85f391246
Найдем файл загрузки ядра:
ls /boot/loader/entries
Пример вывода:
ff03bff452ba47cda441b4fde3632ef4-5.14.0-585.el9.x86_64.conf
Отредактируем найденный файл и укажем актуальный UUID:
vi /boot/loader/entries/ff03bff452ba47cda441b4fde3632ef4-5.14.0-585.el9.x86_64.conf
Найдите строку, начинающуюся с options root=UUID=...
и замените UUID на актуальный.
Выходим из chroot
:
exit
Запускаем принимающий сервер в стандартном режиме. Обратите внимание: для входа необходимо использовать учетные данные (имя пользователя и пароль) от исходного сервера, с которого выполнялся перенос. Пароль, указанный в панели управления для нового сервера, работать не будет.
Важные замечания к статье. Переносили машину на Centos9 с сервера 1 (отдающий) в сервер 2 (принимающий). Выполнили все шаги, новый сервер не запустился при стандартном запуске. Причина: в настройках grub2 в папке /boot/loader/entries в файлах *.cfg указан UUID от диска в отдающем сервере, а должен быть UUID диска принимающего сервера.
Добрый день!
Спасибо за замечание! Добавили недостающую информацию в инструкцию.
Важные замечания к статье: Выполнил все шаги, сервер запустился, но достучаться до него ни по SSH ни войти через консоль в панели Timeweb не получалось. Причины три:
Добрый день!
Спасибо за полезное замечание! Мы внесли правки в статью.