Як перемістити налаштування та дані користувачів на нову машину?


52

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

Очевидно, я хочу перенести свої дані. Що мені не вистачає, якщо я копіюю лише всю домашню папку?

Це домашній ПК (не корпоративний), тому права користувачів та інші проблеми безпеки не викликають особливих проблем, за винятком того, що файли повинні бути доступними на новій машині!

Будь ласка, врахуйте, що нова машина - це неттоп, який не має оптичного приводу і не дозволяє мені підключити старий диск SATA до нього, тому будь-яка передача даних повинна оброблятися через домашню мережу (я можу мати як старий і новий автомат увімкнено і підключено до домашньої локальної мережі), і у мене є накопичувач USB з обмеженою ємністю (2 Гб).
Це здається, що це може обмежити загальну застосовність, але насправді зробить це більш загальним.

Відповіді:


43

Налаштування користувача зберігаються в домашній папці за задумом. Тож, якщо ви скопіюєте свій /home/your-usernameновий комп’ютер, у вас все буде добре ...

... але є застереження:

  • Дозволи. Поширено, що "програми" (оболонки, спеціальні програми побудови) поміщаються в домашню папку. Щоб зберегти дозволи, використовуйте --preserve=modeперемикач (використовуючи cp) або -p(використовуючи tar)
  • UserID / GroupID. Навіть якщо імена користувачів в обох системах рівні, ідентифікатор користувача не повинен. Зазвичай це не проблема, але якщо у вас є сценарії / програми / налаштування, що ретранслюються на UserID, слід переконатися, що ідентифікатор користувача та ідентифікатор групи повинні бути однаковими для цільової системи.
    Ви можете знайти поточний userID та groupID, виконавши id. Наприклад, щоб змінити userID користувача "ваше-ім'я користувача", запустіть sudo usermod --uid 1234 your-username. Щоб змінити групуID, потрібно запустити sudo groupmod --gid 1234 your-username.

Налаштування (профіль Firefox, зовнішній вигляд, ...) часто зберігаються у прихованих папках (або файлах). Приховані папки / файли мають префікс крапкою, як .mozillaу Firefox (та інших програмах Mozilla).

Оскільки безпека не є проблемою, і ви хочете, щоб робота з копіювання була виконана якомога швидше, я пропоную комбінацію програм netcat та tar. Обидва програми встановлені за замовчуванням. Переконайтесь, що міжмережеві стіни на обох комп'ютерах дозволяють вхідний доступ до порту призначення 8888 (джерело комп'ютера) та вихідний порт порту 8888 (цільовий комп'ютер). Покладіть неттоп поруч із комп'ютером, щоб ви могли швидко виконувати команди.

На комп'ютері-джерелі потрібно встановити традиційну програму netcat (він же швейцарський армійський ніж, а не BSD). Для цього встановіть netcat-traditionalпакет. Ви також можете налаштувати традиційну програму netcat за замовчуванням. Команди встановити netcat-tradicional і використовувати його за замовчуванням:

sudo apt-get install netcat-traditional 
sudo update-alternatives --set nc /bin/nc.traditional

На комп'ютері-джерелі введіть наступну команду в терміналі (ще не натискайте Enter):

 tar cz -C/home $(whoami) | nc -l -p 8888 -w 10

Пояснення:

  • tar - це утиліта для упаковки файлів
  • cz c реагує на такий запакований файл ("tarball")
  • Тарбол стискається за допомогою алгоритму G Z ip для зменшення розміру файлу.
  • -C/home $(whoami)змінює робочий каталог /homeі додає папку вашого імені користувача. Крім того, ви можете ввести свою your-usernameпапку в тарболі
  • nc (netcat) використовується для легкого налаштування з'єднань між машинами
  • -l: Режим прослуховування, дозволяє іншим машинам підключатися до поточної машини
  • -p 8888: Слухає порт 8888 (випадковим чином обране число, це може бути будь-яке інше число, що перевищує 1024)
  • -w 10: киньте мережу після 10 секунд тиші. Ви повинні підключитися до цього вихідного комп'ютера протягом цього часу.

Тепер перейдіть до цільового комп’ютера (неттопа). Щоб додати файли до цільової машини, введіть (ще не запустіть):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2- IP-адреса комп'ютера-джерела. Щоб отримати його IP-адресу, запустіть: ifconfigна вихідній машині
  • 8888 - номер порту, введений у вихідній машині
  • xzp: Е х тракти на G Z IP-стиснений тарболл той час як р дозволу RESERVING.
  • -C/home: витягує your-usernameпапку в/home/your-username
  • Необов’язково додайте -vперемикач у команду tar для детального вилучення, щоб ви могли уявити про хід. Це може уповільнити процес копіювання, оскільки кожен файл повинен бути надрукований.

Тепер перейдіть до вихідного комп'ютера, натисніть Enter, щоб запустити серверну команду. Швидко перейдіть на ваш nettop і натисніть Enter, щоб запустити команду клієнта.

Якщо у вас виникли запитання, просто скористайтеся полем для коментарів нижче.


1
Абсолютно відмінний огляд! Дякую також за детальне пояснення команд. Зважаючи на те, що у мене є лише один монітор, я хотів би встановити обидва машини поруч і використовувати якийсь VNC для доступу до старої машини. Я впевнений, що зможу швидко на Google отримати чудовий посібник для муляжів - але, можливо, ви можете порекомендувати його?
Torben Gundtofte-Bruun

Я не використовував іншого VNC, окрім доданої програми з Kubuntu (Krdc). Якщо вам не потрібен графічний інтерфейс (наприклад, цей процес копіювання), просто встановіть його, openssh-serverі ви зможете підключитися до машини, запустивши ssh your-username@192.168.1.2. Для віддаленого доступу до GUI я не використовую VNC, оскільки він болісно повільний, навіть через (бездротову) мережу. Я рекомендую X2go для дистанційного керування графічним інтерфейсом ( керівництво по установці ).
Лекенштейн

Машина-джерело каже мені: "Це nc від пакета netcat-openbsd. Альтернативний nc доступний у традиційному пакеті netcat. Використання: nc [-46DdhklnrStUuvzC] [-i інтервал] [-P proxy_username] [-p source_port ] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address [: port]] [ім'я хоста] [port [s]] ", підказка термінала знову видно, і цільова машина не отримує нічого. Я щось роблю не так?
Даніель

@Daniel: Єдине, що ви робите не так, це опублікувати своє запитання як коментар. Відкрийте нове запитання та посилання на це.
Torben Gundtofte-Bruun

Привіт @Lekensteyn, я отримую багато "Не вдається відкрити" та "Не можу mkdir: немає такого файлу чи каталогу" ... Чи те ж саме застосовується при спробі зробити це на VM (як гість)?
Джордж Кацанос

16

Для програмних пакетів слід прочитати наступне: http://www.omgubuntu.co.uk/2010/05/transfer-your-packages-to-a-clean-install/

oldmachine$ sudo dpkg --get-selections > installedsoftware
newmachine$ sudo dpkg --set-selections < installedsoftware
newmachine$ sudo apt-get --show-upgraded dselect-upgrade

Що стосується налаштувань та даних, це трохи складніше :-( Більшість налаштувань зберігаються у вашій домашній папці, тому створення резервної копії вашого ДОМАШНЯ може зробити трюк ... Але, звичайно, це не стосується системи програми, у яких конфігурація зберігається в / тощо ...


newmachine$ sudo apt-get --show-upgraded dselect-upgradeдає помилкуE: Command line option --show-upgrade is not understood
frepie

12

Більшість налаштувань програм у домашній папці за замовчуванням приховано. Якщо ви натиснете Ctrl+hна Nautilus, ви побачите ці папки. Я знайшов найпростіший спосіб - це просто rsync папки, які вам потрібні для конфігурацій. Щось на зразок цього:

rsync -avz me@remote:/home/me/.foo me@remote:/home/me/.var me@remote:/home/me/.ack me@remote:/home/me/.bar /home/me/

Ви також можете - просто розгорнути всю домашню папку на нову машину - але це може спричинити проблеми залежно від налаштувань.



12

Над ним працюють debus Ubuntu, він називається OneConf .


О, так - я забув про це. Ось посилання: omgubuntu.co.uk/2010/06/oneconf-to-reinstall-applications.html
eugenemarshall

Сьогодні він приземлився, але мало що вивчити.
akshatj

1
все ще виглядають як незавершена робота. Чи упакований цей пакет?
lenzai

2
Останнє оновлення 2015 року згідно code.launchpad.net/oneconf, тому вже не активний проект
Грег Брей

8

Якщо у вас є інсталяція, яка вам подобається на одній машині, ви можете просто її клонувати. Не має значення, чи машини мають інше обладнання, якщо вони мають однакову архітектуру (32-бітну або 64-бітну, тобто i386 або amd64 або ...).

Ось спосіб це зробити. Це трохи довго, але досить низькотехнологічно. Можливе багато варіацій.

  1. Підключіть диск нової машини до існуючої машини (або навпаки).
  2. Завантаження з існуючої установки.
  3. Налаштування нового диска :
    • Якщо диски мають однаковий розмір: запустіть інструмент розділів (System / Administration / GParted, package gparted) та скопіюйте весь старий диск на новий диск.
      • Ви повинні надати копіям файлових систем нові унікальні ідентифікатори, щоб уникнути плутанини, якщо ви коли-небудь зможете встановити диск однієї машини на інший. Для файлової системи ext2 / ext3 / ext4 використовуйте таку команду, як, sudo tune2fs -U $(uuidgen) /dev/sdz1де sdzновий диск, і 1номер розділу.
      • Якщо ви присвоїли імена своїм томам, ви можете призначити різні імена.
    • В іншому випадку налаштуйте розділи на новому диску за допомогою GParted або System / Administration / Disk Utility та відформатуйте їх. Якщо у вас є розділи, які мають однаковий розмір на обох дисках, ви можете скопіювати їх у GParted.
  4. Змонтуйте кореневий розділ нової інсталяції, який тепер повинен з’являтися в Місцях.
  5. (Пропустіть цей крок, якщо ви скопіювали весь диск.) Скопіюйте дані з кореневого розділу старої установки в новий. Зауважте, що на цьому кроці важливо зберегти дозволи та права власності на файли, а це означає, що ви повинні зробити це як суперпользователь (root). Я не знаю, який спосіб UUntu GUI це робити. У командному рядку запустіть sudo cp -ax / /media/disk9(замініть /media/disk9місце, де встановлений новий кореневий розділ).
  6. Повторіть попередні два кроки для будь-якого іншого розділу, який у вас може бути (наприклад, окремий домашній розділ), якщо ви не скопіювали цей розділ (або диск) у цілому на кроці 3.
  7. Налаштуйте нову установку (якщо її встановити /media/disk9; adjust as needed):
    • Змінити, щоб встановити ім'я нової машини. Перевірте файли в інших входжень імені хоста - це може з'явитися в , і т.д./media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • Якщо ви працюєте на ssh-сервері , видаліть /media/disk9/etc/ssh/ssh_host_*_key*. Під час завантаження нової установки сервер генерує нові ключі.
    • Якщо ви налаштували мережу шляхом редагування /etc/network/interfaces, відредагуйте /media/disk9/etc/network/interfacesнову установку.
    • При необхідності, видалити файли , /etc/udev/rules.d/70-persistent-*.rulesякщо присутній, так що ваші диски і мережеві інтерфейси повторно використовувати одні і ті ж імена ( sda, eth0, ...) на новій машині.
    • Якщо ви використовуєте власні драйвери відео (ATI або Nvidia), а нова машина не повинна використовувати той самий драйвер, перейдіть /media/disk9/etc/X11/xorg.confдо програми /media/disk9/etc/X11/xorg.conf.old-machine, інакше ви не зможете завантажитися на GUI на новій машині.
  8. Перемістіть диск з новою інсталяцією назад на належну йому машину.
  9. Якщо ви не клонували диск в цілому, перейдіть на живий CD / USB та відремонтуйте завантажувач .
  10. Завантажтеся з нової установки та виконайте всі необхідні кроки переходу, що залишилися:
    • Можливо, вам доведеться встановити нові фірмові драйвери (системні / адміністративні / апаратні драйвери).
    • Якщо у вас була встановлена статична IP-адреса через Менеджер мережі, налаштуйте мережу для нової машини.
    • Якщо ви запускаєте ssh-сервер , запустіть dpkg-reconfigure openssh-serverдля створення нового хост-ключа.

Привіт з 2013 року. Ви впевнені, що різні апаратури не важливі? Навіть якщо я перейду з якогось китайського ноутбука на Mac Air?
scythargon

@scythargon Поки це один і той же тип процесора (x86 в обох випадках), немає великої різниці, просто, можливо, деякі драйвери для установки та файли конфігурації, які я згадую. На відміну від Windows, Linux концентрує свої апаратні залежності в декількох файлах, які легко визначити.
Жил "ТАК - перестань бути злим"

1
Ви можете поглянути на цей (подібний) посібник, який я написав: positon.org/clone-a-linux-system-install-to-another-computer
Marc M

Дякую за резюме. Мені б подобалося, якщо ви можете додати видалення /etc/udev/rules.d/70-persistent-net.rulesякого з автогенерованого файлу udev, він використовується для гарантії того, що нові мережеві пристрої не отримають те саме ім'я, як раніше встановлені.
Твн

@tvn Фактично не потрібно видаляти цей файл. Це запобігає повторному використанню тих же імен інтерфейсу / диска, але це не обов'язково погано.
Жил "ТАК - перестань бути злим"

6

Усі ваші дані та налаштування живуть у вашому домі.

Якщо ви лише скопіюєте його, ви втратите:

  • Встановлені програми. Але дивіться відповідь Сабакона на це питання .
  • В системних конфігураціях в домашньому комп’ютері це, як правило, лише додаткові PPA.
  • Загальносистемні дані програм (як правило, демони) (наприклад, бази даних MySQL).

Я вважаю, що найпростіший спосіб зробити мережеву копію:

  • Встановіть OpenSSH Server Завантажити Gwibber на старий комп'ютер.
  • Переконайтесь, що обидва комп'ютери підключені до мережі.
  • Відкрийте Nautilus (браузер файлів) на новому комп’ютері.
  • У меню Перегляд поставте прапорець "Показати приховані файли".
  • Натисніть CTRL + L у типі адресного рядка ssh://ip-of-old-computer/home/
  • Вам слід запитати своє ім’я користувача та пароль на старому комп’ютері.
  • Скопіюйте все, що потрібно за допомогою графічного інтерфейсу.

введіть тут опис зображення


4

Dropbox.

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

Dropbox - це онлайн-сервіс резервного копіювання / синхронізації, і він запускає основну здобич, і ви можете отримати її безкоштовно. Він доступний під ubuntu Karmic та вище у сховищах партнера. Ви шукаєте пакет під назвою nautilus-dropbox. Або ви можете просто завантажити його з сайту: https://www.dropbox.com/downloading?os=lnx

Як було сказано вище, більшість ваших відповідних налаштувань зберігаються під /home/yourname/.whatever

Наприклад, параметри конфігурації gnome зберігаються під

/home/username/.gnome2

Отже, щоб зробити синхронізацію:

Частина перша: Резервне копіювання налаштувань конфігурації на Dropbox. (Це все на "старій" машині, де ви маєте свої налаштування / конфігурацію, як ви хочете.)

  1. Зайдіть у свій домашній каталог і знайдіть стільки «точкових файлів» та каталогів, скільки зможете. Майже все це буде відповідати персональним налаштуванням конфігурації. (Hit Control + H у Nautilus для перегляду прихованих файлів.)
  2. Ви захочете скопіювати ці файли конфігураційних файлів у свою папку Dropbox. Зробіть резерв, якщо ви боїтесь втратити їх.
  3. Видаліть оригінальні файли з домашнього каталогу, а потім створіть посилання з файлу в його новому домі (під папкою випадаючої скриньки) на домашній каталог. Це можна зробити, перетягнувши файл і папку до імені домашнього каталогу, утримуючи клавішу «Alt», і виберіть «створити посилання».

Частина друга: (На новій машині.) Створіть посилання з налаштувань конфігурації, синхронізованої Dropbox.

  1. На вашій "новій" машині, тобто. свіжий Ubuntu, встановіть, видаліть ( І ПОВЕРНІТЬСЯ, якщо потрібно ) файли конфігурації старого домашнього каталогу. Встановіть dropbox на новій машині. Дозвольте йому синхронізуватися, AKA завантажить свої старі налаштування машини.
  2. Повторіть крок 3 вище на новій машині - скопіюйте посилання з папок, синхронізованих Dropbox, у домашній каталог.

Вуаля. Тепер у вас є резервне копіювання та переміщення налаштувань на базі Інтернету.


2

Погляньте на Стіппл, мені виглядає цікаво:

"Збережіть список встановлених програм, файлів .config та інших налаштувань на couchDB. Синхронізуйте цей БД на інших комп'ютерах з Ubuntu One. Ця програма також допомагає встановити ці пакети та .config файли на інших комп'ютерах."

https://launchpad.net/stipple


Ubuntu One більше не є варіантом, оскільки послуга була закрита.
Томіслав Накіч-Альфіревич

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