Moving a server over to a RAID

Mike A. Leonetti mikealeonetti at gmail.com
Sat Aug 21 18:45:52 UTC 2010


 (2010年08月20日 19:08), Luis Paulo wrote:
> On Fri, Aug 20, 2010 at 4:40 AM, Mike A. Leonetti
> <mikealeonetti at gmail.com> wrote:
>> Not to knock your idea, but it actually made me a bit confused reading
>> it lol. It seems like more work than just copying it straight up and
>> then modifying the boot stuff afterwards.
>>
> lol. No problem :)
> Give it a try your away and tell us about it.
>
> I think "modifying the boot stuff" will be, at least, grub and boot
> image with a mdadm array. My point was that an install will do most of
> it for you.
>
> And you did ask "Also, would anybody else handle the situation differently" :)
>
> Best wishes
> Luis
>
Well. I thank everybody for the feedback. This is what I ended up doing.
A lot of this was taken from the guide that Preston Hagar gave me
(http://www.tolaris.com/2008/10/01/moving-your-linux-root-partition-to-raid/).

1) Booted up to a Gentoo LiveCD
2) Formatted the two new drives (which showed up as /dev/sda and /dev/sdb)

using fdisk /dev/sda and then creating two partitions, sda1 which took
up everything on the drive except swap space near the end. Then sda2
which was the rest of the swap space. I set the partition 1 (sda1) to
active and the type to fd (autodetect raid) and then sda2 to 82 (Linux
swap).

Then I sfdisk -d /dev/sda | sfdisk /dev/sdb to copy that to the other drive.

Of course ran mkswap on both /dev/sdb2 and /dev/sda2

3) Created the RAID:
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda1
/dev/sdb1

Then formatted /dev/md1 ext3.

4) Mounted the new RAID and the old drives to /mnt/copyfrom and /mnt/copyto
5) Copied the data using cp -va

cp -va /mnt/copyfrom/. /mnt/copyto/.

6) Prepared my chroot

mount -o bind /dev /mnt/copyto/dev
mount -t proc none /mnt/copyto/proc

7) Chrooted into /mnt/copyto

chroot /mnt/copyto /bin/bash

8) Set up grub properly.

Edit /boot/grub/device.map to contain both:
(hd0) /dev/sda
(hd1) /dev/sdb

Then I ran this:
tune2fs -l /dev/md1 | grep UUID

to get the UUID of the RAID array then modified that value to what was
already in /boot/grub/menu.list. It seems that Ubuntu boots off the
drive's UUID and not /dev/md1. I guess you could add /dev/md1 instead
but I didn't.

Ran
update-grub
grub-install /dev/sda
grub-install /dev/sdb

9) At this point I had to install mdadm to my system because it wasn't
in there already. Since the Gentoo livecd had me on the internet I was
able to:
apt-get update
apt-get install mdadm dmsetup

10) Edited /etc/fstab

/lib/udev/vol_id /dev/md1
Gets the volume ID again. Then replaced my / mount drive with that UUID
instead. Then deleted what was in there for swap and added /dev/sda2 and
/dev/sdb2 as swap.

11) At this point you should probably run:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u

But when I installed mdadm in step 9 it actually created everything for
me so I didn't have to.

12) Lastly I just shut down the system, took out the old drive and
booted it back up. Worked like a charm.




More information about the ubuntu-users mailing list