Дублирующая установка ОС
Я пытаюсь скопировать мою установленную операционную систему сервера локально на компьютер, поэтому, если что-то пойдет не так, у нас будет резервная копия. Я уже установил ту же версию ОС, что и в нашей действующей системе, на этом сервере, но я хочу убедиться, что смогу скопировать все те же пакеты и максимально дублировать среду. Это быстрое решение, а не постоянное решение.
У меня есть резервные копии всех файлов конфигурации Jungle Disk
а также файлы сайта и все такое. Но я хочу отразить также и пакеты, которые установлены, и хотел бы иметь возможность выполнять как можно меньше работы. Любой совет?
Обновить
Импорт настроек debconf Было показано 3 ошибки...
warning: Unknown type terminal, skipping line 56
warning: Unknown type error, skipping line 76
warning: Unknown type detect-keyboard, skipping line 252
Вот некоторые фрагменты из моего файла:
#
tasksel tasksel/terminal terminal
# Detecting your keyboard layout
console-setup console-setup/detect detect-keyboard
# Failure restarting some services for PAM upgrade
libpam0g libpam0g/restart-failed error
На самом деле я получил около 8 других ошибок, все были Unknown type error
и обеспокоен стабильностью этого зеркала, если я продолжу
3 ответа
В системах на основе Debian, таких как Ubuntu, можно очень близко дублировать установку программного обеспечения с одного компьютера на другой, используя инструменты управления пакетами. Допустим, что MachineA - это исходный сервер, который вы хотите зеркалировать, а MachineB - это сервер, который вы хотите стать зеркалом для MachineA. (Все команды, указанные здесь, должны быть выполнены как root
.)
Во-первых, убедитесь, что debconf-utils
Пакет установлен как на MachineA, так и на MachineB (выполните следующие действия на обоих серверах):
aptitude update && aptitude install debconf-utils
Затем на MachineA возьмите копию текущего состояния пакета и базы данных debconf:
dpkg --get-selections > /root/dpkg-selections.txt
debconf-get-selections > /root/debconf-selections.txt
Скопируйте два файла с MachineA на MachineB, например:
scp /root/{dpkg,debconf}-selections.txt MachineB:
Теперь на MachineB загрузите файл выбора debconf
debconf-set-selections /root/debconf-selections.txt
загрузить файл выбора пакетов
dpkg --clear-selections && dpkg --set-selections < /root/dpkg-selections.txt
и наконец, запустите менеджер пакетов, чтобы обновить установки программного обеспечения вашей системы
aptitude install
Теперь все, что осталось, это переместить все необходимые файлы конфигурации из /etc
на машине от А до машины. Лучше всего это делать вручную, потому что есть определенные файлы, которые должны различаться на двух машинах, даже если они должны быть зеркалами друг друга. Например, файлы типа /etc/hostname
, /etc/network/interfaces
, а также /etc/fstab
отражать вещи об их соответствующих локальных системах, которые могут (или должны) отличаться на другой машине. Чтобы сгенерировать список файлов конфигурации, чтобы рассмотреть возможность копирования с MachineA на MachineB, вы можете использовать rsync
в режиме "пробного запуска", где на самом деле ничего не копируется, но перечислены файлы, которые были бы скопированы, например (из MachineB):
rsync -rplgoDvn MachineA:/etc/ /etc
ДОПОЛНЕНИЕ
Обычно предупреждения и сообщения об ошибках генерируются debconf-set-selections
, Я сам видел их много раз, и я не знаю, почему они происходят, но я не помню, чтобы когда-либо обнаружил, что они указывают на фактический случай сломанной конфигурации.
Если вы скептически настроены и хотите развеять свои страхи, вы можете проверить, все ли конфигурации пакетов в порядке, с помощью следующей процедуры: создайте список всех пакетов, для которых были сгенерированы предупреждения / ошибки, а затем запустите вручную dpkg-reconfigure package
для каждого пакета в этом списке. Если есть какие-либо подлинные проблемы с пакетом, они должны быть обнаружены и / или исправлены операцией перенастройки.
Лично я бы воспринял это как возможность резервного копирования, а не пытался копировать систему на другую работающую систему. Просто скопируйте всю новую систему в старую, используя rsync или rdiff-backup. Преимущество rdiff-backup заключается в том, что вы можете легко иметь несколько копий данных.
Пример команды rsync, похожей на резервную, может быть на исходном сервере:
rsync -a --exclude=/proc/ --exclude=/dev/ --exclude=/sys/ / root@backup:/path/to/backups/origin-root/
Это сделает полную копию системы в месте назначения. Оттуда вы всегда можете восстановить любую нужную вам конфигурацию, не беспокоясь о перезаписи конфигураций, которые необходимо сохранить на новом сервере (например: fstab, hosts, hostname, network, правила постоянной сети udev и т. Д...).
На старой машине:
dpkg --get-selections >/tmp/mypackagelist
Скопируйте файл на резервную машину и:
cat mypackagelist | xargs apt-get -y install
(Это должно быть сделано как суперпользователь).
Больше можно найти на этот старый вопрос.