Introduction
This procedure was originally used on cercis, which had two disks but now only has one. It’s presented in a very rough format. Should I use it again, then I’ll tidy it up.
Procedure
# see http://linuxadministration.us/?p=154 dd if=/dev/sda of=/dev/sdb bs=10240 count=1 pvcreate /dev/sdb # create smallest possible fs on second disk for copy of OS lvcreate --size=2g --name=roottmp /dev/vg0 /dev/sdb2 mkfs -t ext4 /dev/vg0/roottmp mount /dev/vg0/roottmp /mnt rsync -ax / /mnt/ # change device for / from /dev/vg0/root to /dev/vg0/roottmp vi /mnt/fstab # device map is out of date grub-mkdevicemap # write grub info to /dev/sda and /dev/sdb LANG=C dpkg-reconfigure grub-pc # change vg0-root to vg0-roottmp on boot disk vi /boot/grub/grub.cfg reboot # verify that roottmp is open and that root is not open lvs # not needed now and space is needed for *mirrored* root # vol, which we're about to create lvremove /dev/vg0/root # determine how big a volume you can create for root pvs lvcreate --name=root --size=13g --mirrors 1 \ --mirrorlog mirrored /dev/vg0 /dev/sda2 /dev/sdb2 # wait for mirroring to complete watch lvs -a -o +devices mkfs -t ext4 /dev/vg0/root mount /dev/vg0/root /mnt rsync -ax / /mnt/ # change device for / from /dev/vg0/roottmp to /dev/vg0/root vi /etc/fstab # change vg0-roottmp to vg0-root (this is not needed; # rsync/vi order above means not needed) vi /boot/grub/grub.cfg reboot # verify that root is open and that roottmp is not open lvs # no longer needed lvremove /dev/vg0/roottmp # not needed now and space is needed for *mirrored* swap vol, # which we're about to create swapoff /dev/vg0/swap lvremove /dev/vg0/swap lvcreate --name=swap --size=476m --mirrors=1 \ --mirrorlog=mirrored /dev/vg0 /dev/sda2 /dev/sdb2 # wait for mirroring to complete watch lvs -a -o +devices mkswap /dev/vg0/swap swapon -s # device map is out of date (rsync/vi order above means # previous updated device map lost) grub-mkdevicemap # write grub info to /dev/sda and /dev/sdb LANG=C dpkg-reconfigure grub-pc