Как перенести Ubuntu систему на другой компьютер?

Gaishnik

Есть компьютер с установленной убунтой. Надо целиком скопировать систему, включая все программы и настройки, на другой компьютер с другой конфигурацией. Как это сделать? Гугл не доставляет ничего путного.

klyv

а что если целиком скопировать систему?

darin06

Ключевые слова: dump, restore, linux.
И как результат например, вот.

yroslavasako

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

banderon

Делал клонирование системы с одного компа на два других с примерно такой же конфигурацией. В моём случае хватило связки dd + md5sum + scp + md5sum + dd + grub-install + выборочная правка конфигов в /etc. Заодно md5sum выявил на одном из компов битую память :)

Gaishnik

а что если целиком скопировать систему?

Какой-нибудь /home можно скопировать без проблем, а как насчет /boot и /dev? Эти каталоги, наверное, как-нибудь могут-быть завязаны на железо, и в результате на другом компьютере не будет ничего работать.
Ключевые слова: dump, restore, linux.
И как результат например, вот.
Там написано:
There are several methods to move running Linux to another hard drive at the same server. But I used Unix dump/restore utility to perform this…

Это совершенно не то, что нужно.

Gaishnik

а что если целиком скопировать систему?
Я думаю, что можно сделать чистую инсталляцию и поверху накатить часть системы. Вопрос в том, какую именно часть.

Bibi

с /dev ничего делать не надо
для /boot --- grub-install

Gaishnik

То есть достаточно на чистую инсталляцию накатить все кроме dev и boot?

fufa58

ну как вариант могут ещё возникнуть проблемы например fstab-ом, если там всё по uuid монтируется.

tokuchu

Легче всего будет, если есть LiveCD
1) Создаёшь разделы на новом винте.
2) Юзаешь dump/restore, чтобы перенести файлы со старого винта на новый.
2.5) (чуть не забыл) Правишь пару файлов на новом (в зависимости от того, что изменилось) - fstab, grub.conf.
3) Устанавливаешь загрузчик на новый винт, это можно даже загрузиться уже на новый с помощью LiveCD (там вроде есть такая опция) и от туда восстановить загрузчик.
4) Могут быть некоторые проблемы с изменившимися устройствами, нужно будет немного перенастроить. Самое большое западло - initrd не содержит драйвер контроллера дисков, хз как это в убунте делается.

dgaf

неужели только гентушники умеют обходиться tar-ом при переносе ОС.
загрузиться с livecd, разбить диск как надо, примонтировть, поднять sshd, дать пароль руту.
tar -cz / --exclude=/proc/* --exclude=/sys/* | ssh -cblowfish ip "tar -zx -C /mnt/root/"
пересобрать ядро, если оно самосброное, или initrd, если дистрибутивное (тут я не знаю все они модули засовывают в него или только нужные установить grub, убедиться что всё правильно в /etc/fstab и параметре root= в grub.conf.

tokuchu

умеют обходиться tar-ом при переносе ОС
В данном случае оно те же самые функции будет выполнять, что и dump/restore. Т.е. в принципе пофиг чем пользоваться.

dgaf

хотел ман почитать, но в system нету dump :crazy:
Я имел ввиду dd. Редко когда имеет смысл его использовать для такой миграции.

AlexV769

dump -0 -f - | (cd bla=bla; restore -rf -)
Это же из области *BSD.
В линуксе вроде этого и не было никогда

dgaf

тогда и не факт что в минимальной убунте есть

tokuchu

В линуксе вроде этого и не было никогда
Да не, есть что-то такое. Но там возомжно есть ограничение на тип файловой системы.
Ну в общем там где я писал dump/restore можно с таким же успехом применять tar. Или любую другую утилиту, совершающую подобные действия. Возможно, даже, "cp -a" может подойти. :)

conv3rsje

find / | cpio -o вместо dump
cpio -idv вместо restore (если хочется не в корень, то с --no-absolute-filenames или вместо find / использовать cd /; find .)
при переносе - сразу cpio -pdv /новый/корень
есть [практически] в любой системе
еще полезно делать find с флагом -ev чтоб он искал только по одному девайсу
тогда он не полезет в proc, sys и другие
естественно, надо будет сделать ручками для каждого раздела

conv3rsje

cp -a коряво работает с хитрыми файлами (девайсы и прочая)

klyv

девайсы и прочая
а зачем их копировать?

conv3rsje

прочая - пайпы, сокеты итыды
девайсы могут создаваться всякими мерзкими приблудами типа нвидишных драйверов (в какой-то древней версии вроде как было, но мне может и казаться)
с всеобщим распространением удева это уже неактуально, но раньше было весьма полезно
пайпы могут создаваться при установке пакета (например, cndrvcups-capt а корявый демон не проверит его наличия при старте
собственно говоря, в идеальной системе с удевом/девфсом копирование такого барахла не нужно, но если речь идет о _переносе_ системы, то почему бы этого не сделать?

tokuchu

cp -a коряво работает с хитрыми файлами (девайсы и прочая)
Разве? Я не утверждаю, что им можно пользоваться взамен нормальных утилит. Но вроде файлы девайсов и пайпы по крайней мере он нормально копирует. Я думаю, что у него с хардлинками проблемы будут.

vall

небольшой статический /dev всё-же нужен для инита и старта udev
а devfs умер, забудьте о нём.

Marinavo_0507

cp -a коряво работает с хитрыми файлами (девайсы и прочая)
да ну, много раз переносил систему таким образом, ни разу не было проблем
ещё использовал rsync -arHx с тем же результатом (в том числе на BSD, где cp -a не было)
по сети на другой комп переносил с помощью tar - там только нужен волшебный параметр --numeric-id или как-то так

Schilas

для твоего случая скорее всего хватит следующей схемы:
- ставишь на новый комп ту же убунту что на старом,
- доставляешь apt-get install [весь набор нужных пакетов]
- а потом вливаешь туда /home со старой машины
Оставить комментарий
Имя или ник:
Комментарий: