Як перенести конфігурацію між комп'ютерами з різним обладнанням?


9

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

редагувати: це перехід від x86 до x86-64.


@Gilles Я думаю, що "інше обладнання" заслуговує на інше питання, особливо перехід від x86 до x86-64.
phunehehe

Для більш простого випадку, коли архітектура процесора однакова, див. Переміщення установки Linux на новий комп'ютер . @phunehehe: Спочатку питання не згадувало різницю в архітектурі.
Жил 'ТАК - перестань бути злим'

Відповіді:


7

По-перше, якщо ви збираєтеся продовжувати працювати 32-бітні бінарні файли, ви фактично не змінюєте архітектуру процесора: ви все одно будете працювати з процесором x86, навіть якщо він також здатний робити інші речі. У такому випадку я рекомендую клонувати встановлення або просто перемістити жорсткий диск, як описано в " Переміщення установки Linux на новий комп'ютер" .

З іншого боку, якщо ви хочете мати 64-бітну систему (в термінах Ubuntu: amd64архітектура), вам потрібно перевстановити, тому що ви не можете встановити amd64пакети в i386системі або навпаки. (Це зміниться, коли з'явиться мультиарх ).

Багато налаштувань зберігаються у вашому домашньому каталозі, і ви можете скопіювати це на нову машину. Налаштування системи неможливо скопіювати так легко через зміну архітектури процесора.

На 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 quickstart ). Вам не потрібно нічого знати про контроль версій, щоб використовувати etckeeper, вам потрібно почати вчитися лише в тому випадку, якщо ви хочете скористатися цим, щоб робити фантазії.


Чи можете ви пояснити частину проблем із аркою процесора. Я думаю, що не повинно виникнути проблем, оскільки він переходить від x86-32 до x86-64.
thepang

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). Ви можете додати відповідь на пов'язані з питаннями , а також.
Жил 'SO- перестань бути злим'

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 тощо).


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 буде мають проблеми.

Якщо графічний процесор однаковий, контролер накопичувача того ж типу, і у вас немає купі домашніх сценаріїв, залежних від імен мережевих інтерфейсів, я не забуваю про основні проблеми.


Апаратне забезпечення буде не дуже схожим, більший диск, різний розділ, різний GPU. Я не думаю, що копіювання ієрархії файлів буде працювати без різкого втручання, оскільки це буде перехід x86-> x64.
user4745

До цього списку слід додати параметри завантаження (зберігаються /etc/default/grubяк значення GRUB_CMDLINE_LINUX_DEFAULT).
інтуїтивно

0

[додавання до цієї чудової відповіді ]

Я бачу, що ви згадуєте стурбованість встановленими пакетами. Цим я думаю, ви маєте на увазі, що ви будете переводити диск з однієї машини на іншу. Якщо припустити, що ваші дві машини є архітектурою x86, я можу подумати, що це може статися, якщо ваша установка 64-бітна, а ваша нова машина - ні. Якщо все навпаки, проблем не повинно бути.


Я не переношу диск, але можу скопіювати весь диск, якщо це буде простіше. Припускаючи, що я здійснив чисту установку, я хотів знову встановити ті самі пакети, опускаючи апаратні чи системні залежні.
user4745

Також це буде перехід x86-> x64.
user4745
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.