Date: Mon, 10 Dec 2007 20:13:29 -0800 From: Simon Gao <gao@schrodinger.com> To: DAve <dave.list@pixelhammer.com> Cc: 'User Questions' <freebsd-questions@freebsd.org> Subject: Re: Duplicate existing FreeBSD Server in VM Message-ID: <475E0E69.7090806@schrodinger.com> In-Reply-To: <472A9D99.7000102@pixelhammer.com> References: <003e01c81cf2$27ff3840$77fda8c0$@com> <472A9D99.7000102@pixelhammer.com>
next in thread | previous in thread | raw e-mail | index | archive | help
DAve wrote: > Terry Sposato wrote: > >> Hi, >> >> >> >> I have just installed a machine and have it setup running a web based CRM >> solution. I want to have an exact duplicate of this machine running as a VM >> for redundancy reasons. >> >> >> >> What is the best way to go about getting this exact machine transferred to >> the VM? Both machines exist on the same network and will be able to talk to >> each other, I have been thinking of a couple of different ways to get all my >> data across which is the easy part, but I want to match everything that is >> installed, base system, ports etc. >> >> >> >> Anyone have any ideas or point me into the right direction? >> >> > > You can use dump over ssh easily enough, here are my notes from using it > to create multiple production machines from a single test server. There > are better ways I am sure, but this is quick and easy if you are > familiar with FreeBSD installs. > > Note #1 In the first comment line I say to boot the live file system CD, > that is what you would do in the VM, just as you would normally boot an > installer CD, but use a Live filesystem CD instead. > > Note #2 I used several slices with sizes some may not agree with. It was > a choice we made for various reasons, the servers have been running for > three years. You may have more or less slices of varying sizes, adjust > the steps below to your preferences. > > Note #3 You will need to check and WRITE DOWN which slice is which mount > point, /, /var, /usr and so on. Your disks may be different if you > choose not to create a seperate /tmp, or /var. > > I'll be out of the office for a week, but you can try and adjust as > needed, it won't hurt anything and you can always overwrite and try > again. WRITE IT DOWN. > > Works for us, I've used it several times, adjusting as needed for the > system I am cloning. > > DAve > > ==================================================== > > # boot live filesystem cd > # use disklabel to check/create slices > /stand/sysinstall > /dev/ad0s1b 256mb swap > /dev/ad0s1a 256mb /mnt/ufs.1 softupdates > /dev/ad0s1e 256mb /mnt/ufs.2 softupdates > /dev/ad0s1d 256mb /mnt/ufs.3 softupdates > /dev/ad0s1f all /mnt/ufs.4 softupdates > /dev/ad1s1d 20000mb /mnt/ufs.5 > > # unmount the new slices > umount /mnt/ufs.1 > umount /mnt/ufs.2 > umount /mnt/ufs.3 > umount /mnt/ufs.4 > umount /mnt/ufs.5 > > # make newfs on each slice > newnfs /dev/ad0s1a > newnfs /dev/ad0s1e > newnfs /dev/ad0s1f > newnfs /dev/ad0s1d > newnfs /dev/ad1s1d > > # remount the slices > mount -t ufs -o rw /dev/ad0s1a /mnt/ufs.1 > mount -t ufs -o rw /dev/ad0s1e /mnt/ufs.2 > mount -t ufs -o rw /dev/ad0s1d /mnt/ufs.3 > mount -t ufs -o rw /dev/ad0s1f /mnt/ufs.4 > > # fetch the filesystems from the test server > # you will need to enable root ssh access on the test server for this. > cd /mnt/ufs.1 > ssh root@10.0.240.130 dump -0L -f - /dev/ad0s1a | restore -rf - /dev/ad0s1a > cd /mnt/ufs.2 > ssh root@10.0.240.130 dump -0L -f - /dev/ad0s1e | restore -rf - /dev/ad0s1e > cd /mnt/ufs.3 > ssh root@10.0.240.130 dump -0L -f - /dev/ad0s1f | restore -rf - /dev/ad0s1f > cd /mnt/ufs.4 > ssh root@10.0.240.130 dump -0L -f - /dev/ad0s1d | restore -rf - /dev/ad0s1d > > # change the following entries in rc.conf, remember everything is > mounted under /mnt! > # X = the ecluster number 1,2,3,4,5,6,7,8, etc. > hostname="new_server_X" > ifconfig_em0="inet 10.0.240.13X netmask 255.255.255.0" > > Reboot the new server, it should come up just fine. > > > Your instructions is very helpful. When using on 4.11, "-L" seems not working with dump. Also I have one question, I clone file system from one machine to another different type of machine. The source machine's file system is on /dev/da0s1, but destination's is on /dev/ad0s1. Then I run following to update boot loader: fdisk -B -b /boot/boot0 /dev/ad0 bsdlabel -B /dev/ad0s1 However, the cloned system can't find kernel on reboot. What am I missing? Simon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?475E0E69.7090806>