1. Create a tar backup of your filesystem.
# tar czpf /root/redhat.tar –exclude=/var/tmp/portage/* –exclude=/root/* –exclude=/usr/portage/* –exclude=*.deb –exclude=/tmp/* –exclude=*.rpm –exclude=/sys/* –exclude=/proc/* –exclude=/dev/* –exclude=/mnt/* –exclude=/media/* –exclude=/home/* –exclude=/var/lib/libvirt/images/* –exclude=/oracle/* –exclude=redhat.tar
2. Use fdisk to create /boot and 1 LVM partition on the new disk.
/dev/sda1 * 1 100 803218+ 83 Linux
/dev/sda2 101121601 975956782+ 8e Linux LVM
3. Set /dev/sda1 to be bootable.
# parted /dev/sda set 1 boot on
4. Create the new LVM partition.
# pvcreate /dev/sda2
# vgcreate vg /dev/sda2
# lvcreate -L 200G /dev/vg -n root
# mkfs /dev/vg/root
# mkfs /dev/sda1
# mount /dev/vg/root /mnt
# mount /dev/sda1 /mnt/boot
5. Extract the tar file to /mnt
# tar xpf /root/redhat.tar -C /mnt/
6. Modify the following files:
/mnt/boot/grub/menu.list
Modify the kernel line to support LVM by adding the following LVM details:
rd_LVM_VG=vg rd_LVM_LV=root
Also ensure that initrd and kernel does not have /boot/ in the location.
Example:
kernel /vmlinuz-2.6.32-279.2.1.el6.x86_64 ro root=/dev/mapper/vg-root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=128M rd_LVM_VG=vg rd_LVM_LV=root rhgb quiet
initrd /initramfs-2.6.32-279.2.1.el6.x86_64.img
/mnt/etc/fstab:
Change the /boot and / entries to LVM:
/dev/sda1 /boot ext4 defaults 0 0
/dev/mapper/vg-root / ext4 defaults 1 1
7. Mount and configure the new environment:
# mount /dev/vg/root /mnt
# mount /dev/sda1 /mnt/boot
# mount -o bind /sys /mnt/sys
# mount -o bind /dev /mnt/dev
# mount -o bind /proc /mnt/proc
# grep -v rootfs /proc/mounts > /mnt/etc/mtab
Modify /mnt/etc/mtab and add:
/dev/sda1 /boot ext4 rw 0 0
# chroot /mnt
8. Install GRUB and reconfigure the ram disk image:
# grub-install –recheck /dev/sda
# dracut -force
9. Unmount and reboot:
Type exit to exit the chroot environment
# cd /
# umount /mnt/*
# umount /mnt
# reboot
Set your system to boot from the disk known as /dev/sda
10. Initialize and format your original boot disk.
Just like we did for /dev/sda. (1 bootable partition for /boot and 1 Linux LVM partition.
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 100 803218+ 83 Linux
/dev/sdc2 101 121601 975956782+ 8e Linux LVM
11. Add /dev/sdc to the volume group.
# vgextend /dev/vg /dev/sdc2
12. Format the boot partition on the drive and set it bootable:
# mkfs /dev/sdc1
# parted /dev/sdc set 1 boot on
13. Mirror the boot disk:
# lvconvert -m1 /dev/vg/root