Попытка сделать это уже три раза, но не увенчалась успехом, так что надеялся ли кто-нибудь здесь направить меня в правильном направлении?

Я пытаюсь переместить мой сервер Ubuntu 14.04 с одной физической машины на другую. Я использую следующую команду rsync для достижения этой цели:

rsync -aAXvP --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} root@iphere:/* /

rsync правильно перемещает файлы, и без перезагрузки я могу запустить некоторые службы с исходного сервера, однако после перезагрузки (для запуска других служб) у меня теперь появляется бесконечный экран загрузки Ubuntu. Вы знаете тот, у которого точка движется вправо каждую секунду.

Первоначально проблема заключалась в том, что загрузочное устройство не было найдено, поэтому после rysnc я сменил UUID с предыдущего сервера. Это привело к тому, что Ubuntu не загружается; так что шаг вперед. Однако сейчас я немного растерялся, поскольку сообщений об ошибках нет, и я не могу ничего сделать физически с машиной, поскольку это VPS от Vultr.

И теперь, думая об этом, когда я, наконец, получу дело, Сеть будет совсем не в порядке.

Я очень плохо знаком с Linux и командной строкой, поэтому любая помощь будет чрезвычайно цениться.

Стоит также отметить, что я выбрал этот подход, потому что я хочу сохранить новый сервер точно таким же, как мой старый / текущий, о восстановлении сервера не может быть и речи. У меня просто нет времени.

2 ответа2

2

Это не методология, которую вы использовали - и я считаю эту технику «наивной», но она надежно сработала для меня. Вы, возможно, должны настроить вещи с некоторым пониманием того, как работает Linux, конечно. Я адаптировал это из ответа SF с небольшими изменениями

Проблема этого метода в том, что некоторые конфигурационные файлы лучше не дублировать - нет практической причины для копирования через конфигурацию grub или /etc/networks .

То, что я считаю правильным способом сделать это, это использовать dpkg --get-selections, чтобы выгрузить список установленных пакетов, и установить их с помощью dpkg --set-selections. При необходимости создайте тех же пользователей, что и в исходной системе - cat /etc/passwd должен перечислить их, и вы можете проверить с помощью diff, чтобы увидеть, идентичны ли эти два списка. Затем используйте rsync для дублирования вашей папки /etc/ для настроек (хотя, если вы используете проверку статического IP-адреса или пропустите /etc /networks), различные папки /home/ для пользователей (и проверьте разрешения здесь) и другие папки, такие как /var/www/ .

Я рекомендую подготовить /etc /, а затем скопировать файлы конфигурации на место, тем более что это возможная точка поломки.

Проверьте, убедитесь, что все есть, и все готово. У меня уходит меньше времени, чем на настройку свежего сервера.

Здесь есть несколько «хороших» вещей. Вы гарантируете, что вещи, которые не должны быть выполнены вручную, не являются - управление пакетами, и такие вещи, как grub, остаются согласованными. Это позволяет вам перемещать минимум файлов - быть исключительным, не включая то, что вы перемещаете.

1

Изменение UUID - хороший план. Но дело в том, что хотя сейчас система может быть технически пригодна для использования, вам нужно убедиться в нескольких вещах. Все эти заметки основаны на моих заметках по настройке сервера с использованием Ubuntu 12.04:

Настройки сети: не уверены, что сетевые настройки старой установки сравнивались с тем, какими они должны быть на Vultr, но велики шансы, что их следует отрегулировать. Если вы можете войти на компьютер, я бы порекомендовал запустить ifconfig чтобы получить необработанные показания данных интерфейса. Что касается сетевых настроек, это может произойти в /etc/network/interfaces который можно просмотреть / отредактировать следующим образом:

sudo nano /etc/network/interfaces

Тем не менее, если вы можете добраться до машины, есть вероятность, что есть настройка DHCP? В любом случае, я бы посмотрел туда, чтобы что-то изменить, и если вы не знаете, как это сделать, обратитесь в службу поддержки Vultr, расскажите им, что именно вы сделали и что вам нужно изменить. Я уверен, что они сразу же ответят вам небольшим списком сетевых настроек, которые вы должны изменить.

Обновить Grub: это может быть или не быть проблемой, но вы должны войти в систему и выполнить следующую команду:

sudo update-grub2

Это заставит систему обновить настройки загрузчика Grub. Но если вы заметите задержку, это может быть тайм-аут в самой настройке загрузчика Grub. Иногда - и, честно говоря, мне было трудно определить, когда и как - Grub зависает, казалось бы, вечно, ожидая взаимодействия с пользователем при выборе загрузочного устройства. Если вы на 100% уверены, что вам не нужно загружаться ни на что, кроме имеющегося у вас ядра Ubuntu, я бы порекомендовал изменить настройки Grub по умолчанию в этом файле:

sudo nano /etc/default/grub

Найдите эту строку:

GRUB_TIMEOUT=2

Теперь закомментируйте это - или удалите его - и затем замените его этим новым параметром, а также дополнительным параметром для GRUB_RECORDFAIL_TIMEOUT например так:

GRUB_TIMEOUT=0
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

Теперь снова запустите команду обновления Grub:

sudo update-grub2

И посмотрим, что происходит при перезагрузке. Если это было этой проблемой, перезагрузка должна быть довольно быстрой по сравнению с предыдущей.

И после всего этого вы заявляете:

Стоит также отметить, что я выбрал этот подход, потому что я хочу сохранить новый сервер точно таким же, как мой старый / текущий, о восстановлении сервера не может быть и речи. У меня просто нет времени.

Ну, сколько времени вы на самом деле сэкономили между миграцией, путаницей в настройках и теперь хэшированием здесь? Является ли это воспринимаемой проблемой экономии времени, которая на самом деле не составляет в целом экономию времени?

Не пойми меня неправильно; Я рад помочь. Но в целом способ, которым я настраиваю серверы Linux - и я в основном работаю в Ubuntu - это то, что у меня есть очень хорошо проверенная формула для создания надежного базового сервера с нуля. Теперь это занимает у меня около 1 часа; может занять больше времени в зависимости от скорости системы и тому подобное. Но после того, как я заложил эту прочную основу, конфигурация приложений и пользователей становится запоздалой мыслью.

Таким образом, восприятие сэкономленного времени может столкнуться с неизвестными реалиями чистого клонирования, например, так: установив из чистого дистрибутива Linux для начала, а затем заложив прочную основу, вы в основном делаете все свои системы Linux более переносимыми без непредвиденных «ошибок» такого процесса клонирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .