Автор Тема: Перенос системы на новое железо (Clonezilla)  (Прочитано 34950 раз)

Оффлайн zaga

  • Начинающий
  • *
  • Сообщений: 7
К модераторам
Если данная тема где-то уже была, то, пожалуйста, сначала просмотрите полностью, потом уже решайте, удалять или нет.

Зачастую возникает необходимость переноса (клонирования) системы с одного системного блока на другой, да и в этом отношении линукс позволяет творить чудеса, зачастую ограниченные тем, что:
1. учителю в школе проще перекатить систему заново, что по моему мнению является ошибочным да и трудоёмким
2. загрузка системы  "из коробки" осуществляется при помощи initrd - виртуальный диск используемый для запуска ядра и монтирования файловых систем и запуска хитрых модулей нужных для загрузки
3. компьютерный парк в компании (образовательном учреждении, гос-конторе и пр) может состоять из динозавров приводящих в благоговейный трепет от их вида (прикоснись к истории  ;) ) и вместе с тем можно встретить ультрапортативные нетбуки или многопроцессорные/многоядерные рабочие станции
Ну и вот откуда и куда "срочно, аж вчера" нужно переставить систему, это уже как начальство захочет.

Ну или вариант, когда клонирование очень выручает - это развёртывание парка машин с типовым набором софта.
Да и иногда нужно просто срочно переставить жёсткий диск из одного ящика в другой.

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

Первое, нам понадобится софт для клонирования, я использую для этих целей дистрибутив Clonezilla - из его преимуществ, свободен, умеет клонировать машины по сети.
минусы - иногда нужно вручную (заранее) удалить все разделы на диске - приёмнике, если это не сделать, то в зависимости от фазы луны процесс клонирования выпадает в осадок :(
При загрузке с LiveCD, есть возможность выбрать русский в качестве языка, дальше всё становится "интуитивно понятно" ну или иногда нужно всё-таки включить голову и подумать, какой из дисков будет образцом, а кто - приемником.

Второе, предположим, что мы с задачей переноса (клонирования) системы справились и после попытки загрузить систему на новом месте видим красивые сообщения типа:

Gave up waiting for root device. Common problems:

-Boot args (cat /proc/cmdline)
-Check rootdelay= (did the system wait long enough?)
-Check root= (did the system wait for the right device?)
-Missing modules (cat /proc/modules; ls /dev)


или

/dev/sda9 does not exist ...

или

/dev/disk/by-uuid/34e5c1 ... does not exist ...

это значит - приплыли! всю ночь гребли, а отвязать забыли  :P
а если точнее, то различия в железе у ящиков оказались значительными, надо чего-то делать.  ???

берём опять любимую Clonezill'у LiveCD - грузимся, оставляем язык английским и раскладку клавиатуры не трогаем (Don't toch keymap), в первом же меню выбираем запустить консоль.
дальше уже делаем всё очень аккуратно и потихоньку
первое:
вводим sudo su - (вместе с минусом, это нужно, чтоб и переменные окружения для root были доступны и актуальны)
дальше, смотрим где наш диск, какие разделы нам нужны и прочее (необходимо понимать, что мы вообще делаем)
предположим, что у нас только один жёсткий диск.
вводим ls /dev/
sda1, sda2, 3 и т.д. - это наши разделы на жёстком диске
ещё можно дать комманду ls -l /dev/disk/by-id/
тогда сразу видно какой у нас диск и какие на нём есть разделы
нам нужно найти корневой раздел, для этого можно сидеть и подмонтировать их по очереди и смотреть, что примонтировали - т.е. методом научного тыканья  :D
для примера, пусть sda1 - это свап раздел, sda2 - корневой и sda5 это /user на логическом диске (sda4)
тогда mount /dev/sda1 /mnt нам сообщит о том, что нужно явно указать файловую систему т.е. нам это не наш раздел )))
далее mount /dev/sda2 /mnt - подмонтирует нашу корневую систему в каталог /mnt
ls /mnt - увидим знакомы нам etc, bin, dev и прочее
далее, нам нужно перейти в эту систему, для этого вводим:
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys

и переходим в систему: chroot /mnt
вот мы и перешли из Clonezill'ы в ALT  ;)
дальше, вводим опять ls -l /dev/disk/by-id/ и сравниваем то, что видим с тем, что есть в /etc/lilo.conf
строчка boot="/dev/disk/by-id/ata-QUANTUM_FIREBALL..." На вашей системе строчка будет отличаться!!!
меняем её так, чтоб название диска совпадало с тем, что нам пишет  ls -l /dev/disk/by-id/ для этого пользуемся любым редактором работающим в консоли и имеющимся в системе (nano, vi etc.)

так, теперь нам нужно ещё на всякий случай проверить названия дисков указанные в /etc/lilo.conf в строчках вида:
root="UUID=4a944504-52aa-4f23-9e28-e4da96345154"
корректные наименования можно посмотреть введя blkid или ls -l /dev/disk/by-uuid/

так, теперь нужно "слепить" новый initrd.img, вводим cd /boot
далее, нам нужно посмотреть, что у нас за ядро, лучше всего сделать это введя ls /lib/modules
либо введя ls
посмотрели название ядра, для альта школьного из 5.0.2 Будет похоже на 2.6.32-alt-бла-бла-бла
вводим mkinitrd newtrd.img 2.6.32-alt-название-ядра ящик похрустев жестким диском "слепит" нам новый виртуальный диск
теперь осталось прописать его в /etc/lilo.conf заменив строчку
initrd="/boot/initrd.img"
на
initrd="/boot/newtrd.img"

теперь вводим
exit
cd
sync
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc
reboot


тем самым, возвращаемся в Сlonezill'у, переходим в домашний каталог суперпользователя, синхронизируем диски, отмонтируем разделы с альтом и перегружаемся

если всё сделали верно, то система загрузится.. если после загрузки нет любимого графического приглашения, а есть унылая консоль, то заходим под root'ом, вводим
cp -v /etc/X11/xorg.conf ~/xorg.conf.backup
Xorg -configure
cp -v ~/xorg.conf.new /etc/X11/xorg.conf
reboot


тем самым создадим на "автопилоте" новый конфигурационный файл для X-сервера и перезагрузимся уже со включенным графическим режимом.

Заранее хочу оговориться, что изложенный выше материал не панацея, а один из способов "быстро решить вопрос", потом всё равно надо будет "допиливать", если есть какие-то опечатки или ещё, что - прошу прощения, пишу по памяти на чужом ноутбуке  ;D

С уважением, zaga

Заметка сильно устарела и требует к себе критического подхода
                                                                                                        Ruslandh

« Последнее редактирование: 23.04.2016 14:20:15 от ruslandh »

Оффлайн greyzy

  • Завсегдатай
  • *
  • Сообщений: 277
    • http://samba-doc.ru
Re: Перенос системы на новое железо
« Ответ #1 : 14.03.2011 21:53:42 »
хорошая статья, много интересного:)

Оффлайн XBM

  • Давно тут
  • **
  • Сообщений: 478
  • Бэкап - акт проявления трусости.
    • Email
Re: Перенос системы на новое железо
« Ответ #2 : 24.03.2011 09:41:26 »
Осмелюсь добавить, что после редактирования lilo.conf в консоли надо выполнить команду
lilo

Сам на этой мелочи потерял часа три.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Перенос системы на новое железо
« Ответ #3 : 08.09.2011 18:41:33 »
/dev/disk/by-uuid/34e5c1 ... does not exist ...

это значит - приплыли! всю ночь гребли, а отвязать забыли  :P
Нет. :-)
а если точнее, то различия в железе у ящиков оказались значительными, надо чего-то делать.  ???
Это означает только то, что не подгрузился нужный модуль для монтирования ФС. UUID именно для того и предназначен, чтобы не зависить от железа/порядка hdd/разное. Как правило, это, банально, драйвер дискового контроллера. В общем-то, можно заранее прикинуть список модулей, какие могут понадобиться, по парку компьютеров и по текущим производимым (и предпочитаемым) железкам и дописать список в /etc/initrd.mk (это в ALT доступно, начиная с 6.0). Сильно initrd это не увеличит, думаю.
если всё сделали верно, то система загрузится.. если после загрузки нет любимого графического приглашения, а есть унылая консоль, то заходим под root'ом, вводим
cp -v /etc/X11/xorg.conf ~/xorg.conf.backup
В общем-то, этого достаточно: современный xorg вполне способен генерировать себе конфигурацию при загрузке самостоятельно. В p5/5.1 уже такой xorg.
« Последнее редактирование: 08.09.2011 18:43:18 от asy »

Оффлайн alspay

  • Завсегдатай
  • *
  • Сообщений: 149
Re: Перенос системы на новое железо
« Ответ #4 : 16.09.2011 08:52:37 »
попробовал клонировать KDesktop 6.0.... Clonezilla отчиталась что все в порядке....при попытке запустить на новом железе Груб выпал в минимальную консоль... пофиксил мбр с консоли восстановления системы с диска десктопа 6.0.... груб запустился но примерно на 70 %  загрузки системы выпал в осадок  - initrd ругнулся что не смог найти рута... зашел с консоли и посмотрел что прописано в grub.cfg ....UUID совпадает с тем что выдает blkid....
НО.... UUID в точности такие же как на материнской системе  хотя как я понимаю при копировании разделов  они должны поменяться...
или я ошибаюсь... попробовал создать новый initrd командой mrinitrd ...консоль ругнулась что такой команды не знает....
объясните "чайнику"  что делал не правильно .... и как восстановить загрузку рута в initrd или как по новому его собрать?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Перенос системы на новое железо
« Ответ #5 : 16.09.2011 10:58:40 »
НО.... UUID в точности такие же как на материнской системе  хотя как я понимаю при копировании разделов  они должны поменяться...
С чего бы им меняться ?
или я ошибаюсь... попробовал создать новый initrd командой mrinitrd ...консоль ругнулась что такой команды не знает....
make-initrd в 6.0.

Оффлайн alspay

  • Завсегдатай
  • *
  • Сообщений: 149
Re: Перенос системы на новое железо
« Ответ #6 : 16.09.2011 15:04:08 »
НО.... UUID в точности такие же как на материнской системе  хотя как я понимаю при копировании разделов  они должны поменяться...
С чего бы им меняться ?
или я ошибаюсь... попробовал создать новый initrd командой mrinitrd ...консоль ругнулась что такой команды не знает....
make-initrd в 6.0.
тоесть  если у меня 20 компов то на всех будет одинаковые UUID?
и почему тогда initrd ругается если все 1 к 1 скопированно?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Перенос системы на новое железо
« Ответ #7 : 16.09.2011 15:18:56 »
тоесть  если у меня 20 компов то на всех будет одинаковые UUID?
Я, на самом деле, за Clonezilla отвечать не могу, так как не пользовался, но после dd будет именно так. И сомневаюсь, что Clonezilla умеет UUID менять при копировании.
и почему тогда initrd ругается если все 1 к 1 скопированно?
Наверное, всё же, не initrd ? ;-) initrd - просто образ ФС с набором каких-то приложений и модулей. Может, в initrd нет нужного модуля ? Например, IDE-контролле ровсем другой. Или, вообще, ставилось на SATA, а переносится на IDE или SCSI...

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 969
Re: Перенос системы на новое железо
« Ответ #8 : 16.09.2011 19:14:57 »
попробовал клонировать KDesktop 6.0.... Clonezilla отчиталась что все в порядке....при попытке запустить на новом железе Груб выпал в минимальную консоль... пофиксил мбр с консоли восстановления системы с диска десктопа 6.0.... груб запустился но примерно на 70 %  загрузки системы выпал в осадок  - initrd ругнулся что не смог найти рута... зашел с консоли и посмотрел что прописано в grub.cfg ....UUID совпадает с тем что выдает blkid....
НО.... UUID в точности такие же как на материнской системе  хотя как я понимаю при копировании разделов  они должны поменяться...
До зелененьких "Ок" не доходит ?
А в /etc/fstab что ?

Оффлайн alspay

  • Завсегдатай
  • *
  • Сообщений: 149
Re: Перенос системы на новое железо
« Ответ #9 : 16.09.2011 20:28:18 »
Цитировать
До зелененьких "Ок" не доходит ?
еще раз только по-русски ...ч то за зелененькие "Ок"?
Цитировать
А в /etc/fstab что ?
если получится завтра гляну....а так не раньше четверга...

Оффлайн alspay

  • Завсегдатай
  • *
  • Сообщений: 149
Re: Перенос системы на новое железо
« Ответ #10 : 22.09.2011 09:11:20 »
Цитировать
make-initrd в 6.0.
make-initrd newtrd.img 3.0.4-std-def-alt0.M60P.1
ответ
/usr/share/make-initrd.mk:29:*** You MUST NOT call privete goals directly:  make-initrd newtrd.img 3.0.4-std-def-alt0.M60P.1
что не так делал?


Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Перенос системы на новое железо
« Ответ #11 : 22.09.2011 09:18:57 »
не получили прав root?

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 969
Re: Перенос системы на новое железо
« Ответ #12 : 22.09.2011 09:35:14 »
Цитировать
До зелененьких "Ок" не доходит ?
то за зелененькие "Ок"?
:)

Оффлайн alspay

  • Завсегдатай
  • *
  • Сообщений: 149
Re: Перенос системы на новое железо
« Ответ #13 : 22.09.2011 09:40:20 »
не получили прав root?
все действия от рута делал...хм.... chroot  /mnt /bin/bash

Оффлайн alspay

  • Завсегдатай
  • *
  • Сообщений: 149
Re: Перенос системы на новое железо
« Ответ #14 : 22.09.2011 09:43:27 »
Цитировать
До зелененьких "Ок" не доходит ?
то за зелененькие "Ок"?
:)
у меня после "пингвинов" сразу графическая загрузка идет...