Ключевые слова:freebsd, disk, clone, (найти похожие документы)
From: Roman Shramko <http://dormestmass.blogspot.com>
Date: Mon, 3 Jan 2008 14:31:37 +0000 (UTC)
Subject: FreeBSD: Перенос рабочей системы
Оригинал: http://dormestmass.blogspot.com/2007/07/freebsd.html
Сегодня в моей жизни свершилось радостное событие. Наконец-то
выклянчил себе новехонький системный блок для своего десктопа. И сразу
столкнулся с проблемой переноса ОС со старого компутера на новую
железку.
Вообщем-то вариантов приглянулось два. В обеих случаях, если
аппаратное обеспечение новой системы не аналогично текущему, то весьма
желательно предварительно собрать ядро с поддержкой нового железа.
Также после переноса скорее всего придется подкорявить файлы
конфигурации.
Итак, первый вариант - прицепить винчестер с нового компа к старому
системнику и зазеркалить винчестер.
Дело, в общем-то, нехитрое. Прицепив новый жесткий диск нужно
предварительно его разбить. Сама процедура разбивки хорошо описана в
хэндбуке.
После того, как на новом винчестере созданы слайсы, создадим временное
поддерево в файловой системе и монтируем их туда (в данном случае
новый hdd у нас /dev/ad1):
oldhost# mkdir /newhdd
oldhost# mkdir /newhdd/root
oldhost# mkdir /newhdd/usr
oldhost# mkdir /newhdd/var
oldhost# mount /dev/ad1s1a /newhdd/root
oldhost# mount /dev/ad1s1f /newhdd/usr
oldhost# mount /dev/ad1s1d /newhdd/var
Далее осуществляем непосредственный перенос данных:
oldhost# rdump -0f - / (cd /newhdd/root && rrestore -uyrf - )
oldhost# rm /newhdd/root/restoresymtable
oldhost# rdump -0f - /usr (cd /newhdd/usr && rrestore -uyrf - )
oldhost# rm /newhdd/usr/restoresymtable
oldhost# rdump -0f - /var (cd /newhdd/var && rrestore -uyrf - )
oldhost# rm /newhdd/var/restoresymtable
Выключаем систему, цепляем новый винчестер в новый системный блок (или
просто отключаем старый, в зависимости от наших целей), и наслаждаемся
жизнью.
Второй вариант немного сложнее и продолжительнее по времени. Но в ряде
случаев, как-раз он и будет предпочтительным. Например, мы имеем
опломбированный системный блок или хотим перенести систему на
SCSI-диск, а в старом системнике нет контроллера.
В данном случае нам понадобится предустановленная система на новой
железке. Заводим на ней пользователя и поднимаем sshd.
Далее выполняем дамп файловых систем по сети. Предварительно на новом
хосте нужно создать файлы, в которые будет писаться дамп.
srn@newhost >> touch root.dump usr.dump var.dump
oldhost# setenv RSH /usr/bin/ssh
oldhost# rdump -0uLB 104857600 -f srn@newhost.domain.com:/home/srn/root.dump /
oldhost# rdump -0uLB 104857600 -f srn@newhost.domain.com:/home/srn/usr.dump /usr
oldhost# rdump -0uLB 104857600 -f srn@newhost.domain.com:/home/srn/var.dump /var
Маленькое замечание. Ключ -B служит для указания размера ленты на
удаленном хосте (в килобайтах). В нашем случае необходимо указать
размер, заведомо больший, чем файл дампа.
Далее восстанавливаем систему из созданных файлов.
newhost# cd / ; rrestore -uyrf /home/srn/root.dump ; rm /restoresymtable
newhost# cd /usr ; rrestore -uyrf /home/srn/usr.dump ; rm /restoresymtable
newhost# cd /var ; rrestore -uyrf /home/srn/var.dump ; rm /restoresymtable
Если нужно, то корректируем файлы конфигурации системы и
перезагружаемся.