К модераторам
Если данная тема где-то уже была, то, пожалуйста, сначала просмотрите полностью, потом уже решайте, удалять или нет.
Зачастую возникает необходимость переноса (клонирования) системы с одного системного блока на другой, да и в этом отношении линукс позволяет творить чудеса, зачастую ограниченные тем, что:
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