Как перенести пользовательские настройки и данные на новый компьютер?

52

Я новичок в Ubuntu и недавно начал использовать его на моем ПК. Я собираюсь заменить этот компьютер на новую машину. Я хочу перенести свои данные и настройки в неттоп. Какие аспекты я должен рассмотреть?

Очевидно, я хочу переместить мои данные. Что я пропускаю, если копирую только домашнюю папку?

Это домашний компьютер (не корпоративный), поэтому права пользователей и другие вопросы безопасности не имеют значения, за исключением того, что файлы должны быть доступны на новом компьютере!

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

Торбен Гундтофте-Бруун
источник

Ответы:

43

Пользовательские настройки хранятся в папке Home по своему усмотрению. Итак, если вы скопируете свой /home/your-usernameна новый компьютер, у вас все будет хорошо ...

... но есть предостережения:

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

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

Поскольку безопасность не является проблемой, и вы хотите, чтобы копирование выполнялось как можно быстрее, я предлагаю комбинацию программ netcat и tar. Оба приложения установлены по умолчанию. Убедитесь, что брандмауэры на обоих компьютерах позволяют входить на порт назначения 8888 (исходный компьютер) и исходить на порт назначения 8888 (целевой компьютер). Разместите неттоп рядом с компьютером, чтобы вы могли быстро запускать команды.

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

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: выход из netcat через 10 секунд тишины. Вы должны подключиться к этому исходному компьютеру в течение этого времени.

Теперь перейдите к целевому компьютеру (неттоп). Чтобы добавить файлы на целевой компьютер, введите (пока не запускайте):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2это IP-адрес исходного компьютера. Чтобы получить его IP-адрес, запустите: ifconfigна исходном компьютере
  • 8888 номер порта, введенный на исходном компьютере
  • xzp: e x обрабатывает сжатый ip-архив G Z с сохранением прав доступа.
  • -C/home: извлекает your-usernameпапку в/home/your-username
  • При желании добавьте -vпереключатель в команду tar для подробного извлечения, чтобы вы могли получить представление о прогрессе. Это может замедлить процесс копирования, поскольку каждый файл должен быть напечатан.

Теперь перейдите на исходный компьютер, нажмите Enter, чтобы запустить команду сервера. Быстро переключитесь на ваш неттоп и нажмите Enter, чтобы запустить команду клиента.

Если у вас есть какие-либо вопросы, просто используйте поле для комментариев ниже.

Lekensteyn
источник
1
Абсолютно отличный обзор! Спасибо также за подробное объяснение команд. Учитывая, что у меня только один монитор, я хотел бы установить обе машины рядом друг с другом и использовать какой-то VNC для доступа к старой машине. Я уверен, что могу быстро найти отличное руководство для чайников, но, может быть, вы порекомендуете его?
Торбен Гундтофте-Бруун
Я не использовал другой VNC, кроме поставляемого приложения с Kubuntu (Krdc). Если вам не нужен графический интерфейс (например, процесс копирования), просто установите, openssh-serverи вы сможете подключиться к вашей машине, запустив ее ssh your-username@192.168.1.2. Для удаленного доступа через графический интерфейс я не использую VNC, так как он мучительно медленный, даже в (беспроводной) сети. Я рекомендую X2go для удаленного управления графическим интерфейсом ( руководство по установке ).
Лекенштейн
Исходный компьютер говорит мне: «Это nc из пакета netcat-openbsd. Альтернативный nc доступен в традиционном пакете netcat. Использование: nc [-46DdhklnrStUuvzC] [-i интервал] [-P имя-прокси-пользователя] [-p source_port ] [-s source_ip_address] [-T ToS] [-w тайм-аут] [-X proxy_protocol] [-x proxy_address [: порт]] [имя хоста] [порт [s]] "", приглашение терминала снова отображается, и целевая машина ничего не получает. Я делаю что-то неправильно?
Даниил
@ Даниель: Единственное, что вы делаете неправильно, это опубликовать свой вопрос в качестве комментария. Откройте новый вопрос и ссылку на него.
Торбен Гундтофте-Бруун
Привет @Lekensteyn, я получаю много сообщений "Cannot open" и "Cannot mkdir: нет такого файла или каталога" ... Применимо ли это при попытке сделать это на виртуальной машине (в качестве гостя)?
Джордж Кацанос
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

С настройками и данными это немного сложнее :-( Большинство настроек хранятся в вашей домашней папке, поэтому создание резервной копии вашего HOME может помочь ... Но тогда, конечно, это не распространяется на систему приложения, чьи настройки хранятся в / etc ...

Маленькая Джава
источник
newmachine$ sudo apt-get --show-upgraded dselect-upgradeвыдает ошибкуE: Command line option --show-upgrade is not understood
frepie
12

Большинство всех настроек для приложений по умолчанию скрыты в вашей домашней папке. Если вы нажмете Ctrl+hна Наутилус, вы увидите эти папки. Я обнаружил, что самый простой способ - просто 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

Разработчики Ubuntu работают над этим, он называется OneConf .

akshatj
источник
О, это верно - я забыл об этом. Вот ссылка: 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. Настройте новый диск :
    • Если диски имеют одинаковый размер: запустите инструмент раздела (Система / Администрирование / GParted, пакет gparted) и скопируйте весь старый диск на новый.
      • Вы должны дать копиям файловых систем новые уникальные идентификаторы, чтобы избежать путаницы, если вы когда-нибудь подключите диск одной машины к другой машине позже. Для файловой системы ext2 / ext3 / ext4 используйте команду наподобие sudo tune2fs -U $(uuidgen) /dev/sdz1где sdzновый диск и 1номер раздела.
      • Если вы назначили имена своим томам, вы можете назначить разные имена.
    • В противном случае настройте разделы на новом диске с помощью GParted или System / Administration / Disk Utility и отформатируйте их. Если у вас есть разделы одинакового размера на обоих дисках, вы можете скопировать их в GParted.
  4. Смонтируйте корневой раздел новой установки, которая должна появиться в Places.
  5. (Пропустите этот шаг, если вы скопировали весь диск.) Скопируйте данные из корневого раздела старой установки в новый. Обратите внимание, что на этом этапе крайне важно сохранить права доступа и владение файлами, а это означает, что вы должны делать это как суперпользователь (root). Я не знаю, что такое Ubuntu 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, иначе вы не сможете загрузить графический интерфейс на новой машине.
  8. Переместите диск с новой установкой обратно на законный компьютер.
  9. Если вы не клонировали диск целиком, вставьте live CD / USB и восстановите загрузчик .
  10. Загрузитесь с новой установки и выполните все необходимые шаги перехода:
    • Возможно, вам потребуется установить новые проприетарные драйверы ( драйверы системы / администрирования / аппаратного обеспечения).
    • Если вы настроили статический IP-адрес через Network Manager, настройте сеть для новой машины.
    • Если вы запускаете 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
@tvn Вам на самом деле не нужно удалять этот файл. Это предотвратит повторное использование одних и тех же имен интерфейсов и дисков, но это не обязательно плохо.
Жиль "ТАК - перестань быть злым"
6

Все ваши данные и настройки живут у вас дома.

Если вы только скопируете его, вы потеряете:

  • Установленные программы. Но посмотрите ответ Сабакона на этот вопрос .
  • Общесистемные конфигурации, в домашнем компьютере, это обычно просто дополнительные PPA.
  • Данные общесистемных программ (обычно демонов) (например, базы данных MySQL).

Я чувствую, что самый простой способ сделать сетевую копию это:

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

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

Хавьер Ривера
источник
4

Dropbox.

Это то, как я копирую свои настройки с одной машины на другую, и если я полностью потеряю свой жесткий диск, это не имеет значения.

Dropbox - это онлайн-сервис резервного копирования и синхронизации, который запускает большую добычу, и вы можете получить его бесплатно. Он доступен в Ubuntu Karmic и в репозиториях Partner. Вы ищете пакет под названием nautilus-dropbox. Или вы можете просто загрузить его с сайта: https://www.dropbox.com/downloading?os=lnx

Как уже упоминалось выше, большинство ваших соответствующих настроек сохраняются в /home/yourname/.whatever

Например, настройки конфигурации gnome сохраняются в

/home/username/.gnome2

Итак, чтобы сделать синхронизацию:

Часть первая: резервное копирование настроек конфигурации в Dropbox. (Это все на «старой» машине, где у вас есть ваши настройки / конфигурации, как вы хотите.)

  1. Перейдите в свой домашний каталог и найдите как можно больше «точечных файлов» и каталогов. Почти все они будут иметь отношение к личным настройкам конфигурации (нажмите «Control» + «H» в Nautilus, чтобы просмотреть скрытые файлы).
  2. Вы хотите скопировать эти файлы конфигурации в папку Dropbox. Сделайте резервную копию, если вы боитесь потерять их.
  3. Удалите исходные файлы из вашего домашнего каталога, затем создайте ссылку из файла в новом домашнем каталоге (в папке вашего Dropbox) на домашний каталог. Вы можете сделать это, перетащив файл / папку на имя вашего домашнего каталога, удерживая клавишу «Alt», и выберите «создать ссылку».

Часть вторая: (На новом компьютере.) Создание ссылок из настроек конфигурации синхронизированных с Dropbox.

  1. На твоей "новой" машине, т.е. только что установив Ubuntu, удалите ( И СОЗДАЙТЕ РЕЗЕРВ. В случае необходимости ) ваши старые файлы конфигурации домашнего каталога. Установите Dropbox на новую машину. Позвольте ему синхронизироваться, AKA загрузит ваши старые настройки машины.
  2. Повторите шаг 3 выше на новом компьютере - скопируйте ссылки из синхронизированных с Dropbox папок в домашний каталог.

Вуаля. Теперь у вас есть интернет-резервное копирование и миграция настроек.

э.д.с.
источник
2

Посмотрите на Стиппл, выглядит интересно для меня:

«Сохраните список установленных приложений, файлов .config и других настроек на couchDB. Синхронизируйте эту БД с другими компьютерами с помощью Ubuntu One. Это приложение также поможет вам установить эти пакеты и файлы .config на других компьютерах».

https://launchpad.net/stipple

Sabacon
источник
Ubuntu One больше не является опцией, так как служба была закрыта.
Томислав Накич-Альфиревич
0

Mackup может создавать резервные копии многих приложений в облаке или контроля версий. Это легко расширить, например, так выглядит плагин ssh

ivotron
источник