Как перенести конфигурацию между компьютерами с различным оборудованием?

9

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

редактировать: это переход от x86 к x86-64.

user4745
источник
@ Жиль: Думаю, «другое оборудование» заслуживает другого вопроса, особенно перехода с x86 на x86-64.
phunehehe
Для более простого случая, когда архитектура процессора одинакова, см. Перемещение установки linux на новый компьютер . @phunehehe: Вопрос изначально не упоминал различия в архитектуре.
Жиль "ТАК - перестань быть злым"

Ответы:

7

Во-первых, если вы собираетесь продолжать работать с 32-разрядными двоичными файлами, вы на самом деле не меняете архитектуру процессора: вы все равно будете использовать процессор x86, даже если он также способен выполнять другие задачи. В этом случае я рекомендую клонировать вашу установку или просто переместить жесткий диск, как описано в разделе Перенос установки Linux на новый компьютер .

С другой стороны, если вы хотите иметь 64-битную систему (в терминах Ubuntu: amd64архитектура), вам нужно переустановить ее, потому что вы не можете устанавливать amd64пакеты в i386системе или наоборот. (Это изменится, когда появится Multiarch ).

Многие настройки находятся в вашем домашнем каталоге, и вы можете скопировать их на новый компьютер. Системные настройки не могут быть скопированы так легко из-за изменения архитектуры процессора.

На Ubuntu 10.10 и выше попробуйте OneConf .

OneConf - это механизм для записи информации о программном обеспечении в Ubuntu One и синхронизации с другими компьютерами по мере необходимости. В Maverick хранится список установленного программного обеспечения. Это может в конечном итоге расширить, чтобы включить некоторые параметры приложения и состояние приложения. Другие инструменты, такие как Stipple, могут предоставить более расширенные настройки / контроль.

Одной из основных вещей, которые вы хотите воспроизвести в новой установке, является набор установленных пакетов. В дистрибутивах на основе APT вы можете использовать aptitude-create-state-bundleкоманду (часть aptitudeпакета) для создания архива, содержащего список установленных пакетов и их конфигурацию debconf , а также aptitude-run-state-bundleна новом компьютере. (Спасибо интуитивно за то, что рассказал мне aptitude-create-state-bundle.) См. Также список явно установленных пакетов Ubuntu, а также процитированные там вопросы Super User и Ask Ubuntu, особенно ответ Telemachus , о том, как выполнить эту часть вручную.

Для вещей, которые вы изменили /etc, вам нужно просмотреть их. Многие из них связаны с конкретными настройками оборудования или сети и не должны копироваться. Другие имеют отношение к личным предпочтениям - но вы должны устанавливать личные предпочтения для каждого пользователя, когда это возможно, чтобы настройки сохранялись в вашем домашнем каталоге.

Если вы планируете заранее, вы можете использовать etckeeper Установить etckeeper для /etcконтроля версий ( быстрый запуск etckeeper ). Вам не нужно ничего знать о контроле версий, чтобы использовать etckeeper, вам нужно только начать обучение, если вы хотите воспользоваться этим, чтобы делать причудливые вещи.

Жиль "ТАК - перестань быть злым"
источник
Можете ли вы объяснить часть о проблемах с аркой процессора. Я ожидаю, что не должно быть проблем, поскольку он переходит с x86-32 на x86-64.
Чепанг
1
@Tshepang: До тех пор , пока вы не меняя архитектуры, то проще скопировать всю установку ( /home, /etc, /var, /usrи все) и просто изменить несколько файлов в etcредактируемой. Это не вариант, если вы переходите на другую архитектуру, потому что вам нужно переустановить все двоичные пакеты.
Жиль "ТАК - перестань быть злым"
1
@ user4745: в идеале вы должны фиксировать каждое изменение в /etcотдельности с помощью значимого сообщения о фиксации (в отличие от использования ловушек автокоммитов) и фиксировать изменения, относящиеся к компьютеру, в другой ветке, отличной от настроек sysadmin или конфигурации всего сайта. Но даже простое использование помогает отслеживать изменения, которые вы внесли /etc, так что вы можете повторить их на новом компьютере.
Жиль "ТАК - перестань быть злым"
1
Как это по сравнению с использованием aptitude-create-state-bundle?
интуитивно
1
@intuited: я не знал о aptitude-create-state-bundle. Спасибо, это автоматический способ воспроизведения состояния, управляемого APT (лучше, чем ручной способ, который не воспроизводил источники APT или настройки debconf). Вы также можете добавить ответ на соответствующие вопросы .
Жиль "ТАК - перестань быть злым"
3

Вот как можно получить все, кроме того, что вы настроили вручную:

dpkg --get-selections > packages.txt
debconf-get-selections > debconf.txt

Отредактируйте эти файлы по мере необходимости для всего, что зависит от арки (например, linux-image), но я не думаю, что будет много.

Скопируйте эти файлы в новую систему и запустите:

debconf-set-selections < debconf.txt
dpkg --set-selections < packages.txt
apt-get dselect-upgrade

Вы также захотите скопировать (желательно с rsync) / home и любые другие каталоги данных в новую систему.

Единственное, что осталось - это файлы конфигурации из основных пакетов (например, apache, bind, cronjobs и др.).

bahamat
источник
2
+1 за упоминание debconf, но -1 за восстановление настроек dpkg. Это помечает все пакеты как установленные вручную на новом компьютере. Используйте aptitude search '~i !~M'для сохранения списка установленных вручную пакетов; см. этот ответ для получения дополнительной информации.
Жиль "ТАК - перестань быть злым"
1

На самом деле многие проблемы с драйверами, реестром и чувствительностью к изменениям материнской платы в Windows менее серьезны в Linux, если вы используете общее ядро ​​со всеми драйверами в качестве модулей, что является обычной ситуацией для Ubuntu. Это единственные вещи в / etc, которые зависят от оборудования, о котором я знаю:

  • Если у вас установлены проприетарные графические драйверы, я думаю, это может быть проблемой.
  • Я сменил жесткий диск с установленным Debian со старого HP Pavilion (500 МГц, довольно старый) на немного более новую плату MSI KT4V. Единственными проблемами, которые у меня были, были имена моих сетевых интерфейсов. Но это затронуло меня больше, чем обычный пользователь, потому что эта установка была явно для использования в качестве маршрутизатора.
  • Еще одна вещь, которая может повлиять на это lm-сенсоры, если вы используете его. Это зависит от материнской платы, но вы можете просто запустить датчик обнаружения, чтобы это исправить.
  • Если вы меняете устройство, которое Linux ожидает от корневого раздела, или если какое-либо устройство / разделы, указанные в / etc / fstab, изменяются, т.е. вы переходите с диска PATA на SATA, то вы должны обновить это, иначе Linux будет Есть проблемы.

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

LawrenceC
источник
Аппаратное обеспечение будет не очень похожим, больший диск, разные разделы, разные графические процессоры. Я не думаю, что копирование файловой иерархии будет работать без значительного вмешательства, потому что это будет переход x86-> x64.
user4745
/etc/default/grubПараметры загрузки (сохраняются в качестве значения GRUB_CMDLINE_LINUX_DEFAULT) должны быть добавлены в этот список.
интуитивно
0

[добавив на этот отличный ответ ]

Я вижу, что вы упоминаете заботу об установленных пакетах. Под этим я предполагаю, что вы имеете в виду, что собираетесь переносить диск с одной машины на другую. Если предположить, что ваши две машины имеют архитектуру x86, единственная проблема, о которой я могу подумать, может произойти, если ваша установка 64-битная, а ваша новая - нет. Если все вокруг, проблемы не должно быть.

tshepang
источник
Я не переношу диск, но могу скопировать весь диск, если это будет проще. Предполагая, что я сделал чистую установку, я хотел переустановить те же пакеты, исключая аппаратные или системные зависимости.
user4745
Кроме того, это будет переход x86-> x64.
user4745