PDA

View Full Version : LVM2 to ext2



galaxian
16th August 2007, 11:08 PM
Is it possible to convert an LVM2 volume back to ext2 filesystem ?

I would like to use some space on a disk for something else.

Could I shrink the volume maybe ?

Thanks,
Colin.

SlowJet
16th August 2007, 11:22 PM
LVM is a volume Mannger, not a file system.
You put several f/s type on a LVM LV but you probably should stick with ext3.

Yes, you cam shrink the a f/s with the tools set, reduce the LV to make more free space on the VG.

No, you can not reduce a PV which is the size of a partition or a whole disk.

Don't be afaid to re-intall and learn to use the partition disk druid.

As of today, a new F7 install with one
yum update enablerepo=updates-testing
followed by a hour of configuring
will make a great system and you by pass all the bugs of Jun, Jul.

The only way to change the default partitioning scheme is to re-install.
(Same as it has been on any OS for about 45 years.)

SJ

Paulinux
2nd October 2007, 10:35 PM
I have been trying for four days to convert my system from ext3/LVM to just plain LVM. I've tried mounting /dev/VolGroup00/LogVol00 and CP-ing everything off of it onto a non-LVM device, then modifying grub.conf, menu.lst, device.map, and fstab. It wouldn't work because the FC6 installation still looks for LVs at bootup. I don't know how to change that.

I've also tried a clean FC6 install onto another drive without LVM option, and then CP-ing (in rescue mode) stuff from LVM to non-LVM. Unfortunately I don't know exactly what needs to be copied to bring all my stuff over from what needs to be left behind, so as not to mess up the clean FC6 installation.

Does anybody know how to remove LVM from an otherwise "just how I want it" system ????

SlowJet
2nd October 2007, 11:03 PM
The default LVM is the plain LVM.
It has a VG (volume group) named VolGroup00 on a PV (Physical Volume) containing 2 LV (Logical Volumes)
name LogVol00 and LogVol01. 00 is / (root) an 01 is the swap. The / is formated with ext3 and the swap is swap.
On hda1 is the regular Linux partition formated as ext3 for the /boot.

Now what is the real issue if the system is configured "just how I want it" ?


SJ

Dies
2nd October 2007, 11:37 PM
I've also tried a clean FC6 install onto another drive without LVM option, and then CP-ing (in rescue mode) stuff from LVM to non-LVM. Unfortunately I don't know exactly what needs to be copied to bring all my stuff over from what needs to be left behind, so as not to mess up the clean FC6 installation.


What I would try is what you did, but I would just make an empty partition on the second drive with enough room then copy everything over, edit fstab to reflect the new file system then from rescue mode I would generate a new initrd and cross my fingers.

Of course.....maybe an hour later when I found it didn't work I would just re-install. :D

But hey what the hell, it's not like you have to call someone for permission, right ?


BTW I have used Gparted to re-arrange my drives, change layouts, move installs from one drive to another, backup and restore Windows, etc, etc. successfully many times. Only once did I lose an install and that was my fault.

Of course that doesn't help you at all with your LVM issue, but just something to keep in mind.

Paulinux
3rd October 2007, 01:40 AM
SloJet,
Sorry, hand not type what head think:
I meant to say: ". . .convert my system from ext3/LVM to just plain ext3."
I know all about VG, PV, LV, root, swap, ext3, and boot; Thanks for the refresher, though!
My issue is that the system is not configured "just how I want it" -It uses LVM.
This places serious restrictions on my use of the dd command, among other things.

Dies,
Aha! Something new! I haven't come upon "generate a new initrd" yet. I'll look into it. I'm also considering re-installing, but I'm not familiar with the process. Do you mean a fresh install of the OS on a wiped disk followed by hours of installing my software? I know how to do that, but it's what I'm trying to avoid !!

I'm under the impression that, if directory structure is maintained in the copy destination, Linux will find everything it needs at start up and load things properly. Is this correct or, in addition to the MBR, must certain bits of code (pun intended) live on certain sectors in order to be recognized as loadable ?

If I do as you suggest, will the new OS know to load my software because of the names of the copied directories, or is it told what to do by initrd?

I like GParted too, but LVM doesn't (as you know).

Dies
3rd October 2007, 04:45 AM
If you move the entire file system over to a new drive, unless you get corruption, permissions change or you miss important files, the system itself should still be just like it was *in theory*, all your settings and programs should be intact. The MBR isn't even an issue you can just grub-install to the new drive.

Problem you're going to have is getting the kernel to boot, it will likely panic unless you rebuild the initrd and edit your fstab to reflect the major changes you just made. There may also be other issues that just don't come to mind right now.

Migrating a system like that is nothing new, except for the whole LVM complication, now at the same time you have to ask yourself is it going to take more effort or even wasted effort and time to do this or just re-install.

Me I would probably just consider it a challenge and keep at it until I felt it just wasn't going to happen, but I definitely wouldn't do it just to save my settings. With a backup of my /home folder and a few other things I can be back up and running just like before in a couple of hours, assuming the update servers cooperate.

If you decide to do it for fun, keep us posted.

gogalago
3rd October 2007, 06:47 AM
EDIT: OOPS! THINK I MADE THE SAME MISTAKE TWICE. JUST IGNORE THIS, IT DOESNT GET RID OF THE LVM. THERE ARE SOME LINKS IN THE OTHER THREAD THAT MIGHT HELP...

Funny, was just trying to answer this on another thread (http://forums.fedoraforum.org/showthread.php?p=874972#post874972)

try this:
http://linux.web.cern.ch/linux/scientific4/docs/rhel-sag-en-4/s1-filesystem-ext2-revert.html

brr872002
3rd October 2007, 11:16 AM
Is it possible to convert an LVM2 volume back to ext2 filesystem ?

I would like to use some space on a disk for something else.

Could I shrink the volume maybe ?

Thanks,
Colin.
If you are using dual boot go for custom partitions ,
You have to back up files and reinstall.

you want resize and get some free space for partitions please
look into this http://forums.fedoraforum.org/showthread.php?t=154874.

wmakowski
9th October 2007, 08:19 PM
There is no easy way to resize a physical volume once it has been allocated to a volume group. I have not yet tried converting from LVM to standard partitions myself, but have a few ideas on how it could be accomplished. Without knowing the exact layout of your hard drive and how LVM is setup it is difficult to give exact instructions. You will need space on the current drive or another drive to move things around. For example, if you want to remove a logical volume or remove a physical volume from a volume group it would be necessary to copy the contents to another location. An NFS mount would do the trick or perhaps you could just make some extra space by getting rid of that Windows partition :) .

The directions could easily become a multipage HOWTO so I'm going to just give you a few commands to look at and basic procedures. First thing would be to backup anything you can't afford to lose. It is not difficult to make a fatal mistake when workiing with hard drive partitions. After backing up you would need to boot using a live CD or the rescue CD since you will be actively working with LVM on filesystems and partitions. Do not mount the regular filesystems read/write or read only. They need to be offline in order to use some of the commands involved.

I suspect there is no freespace on the drive you are working with. In this case you will need to copy the contents of your logical volumes to a second drive or an nfs mount. If there is enough freespace on the drive, you can make another partition and copy it to there. Start by creating a mount point such as /mnt/logical. Then locate the VG/LV using lvscan. You'll probably have to make it available using lvchange. Then mount it read only to the mount point you created. After that you can use cp -ax /mnt/logical /mnt/root_cp to copy the contents of the volume. Repeat for any other LV's that you have. You probably already know this, but there is no need to copy the LV for swap.

Now you should unmount the VG/LV from /mnt/logical. Next would be to remove the LV's, VG's, and PV's with lvremove, vgremove, and pvremove respectively to keep the kernel from thinking it should use LVM. Then use fdisk to change the partition type to 83 on the partition that use to be the physical volume. Once that is done you can use parted to resize the partition and create any others you may need. Follow that by using mkfs to ready the partitions for your old data. If you wanted to you could use parted to make the filesystem. The swap partition type is 82 and you use mkswap to initialize it. At this point you should consider using tune2fs or e2label to label your new partitions so it will be easy to make the changes in fstab.

Now the partitions should be ready to copy back your old system. Mount the partitions read-write, then use cp -ax to copy them back. Once the copying is completed you'll need to adjust fstab and grub.conf to use the new partitions. I think I have all the steps required. If someone thinks I missed something or feels it won't work, please post your findings.

The man pages have most of the particulars on using these commands. Some other good references are the Parted User's Manual (http://www.gnu.org/software/parted/manual/html_chapter/parted_toc.html) from GNU, and LVM HOWTO (http://www.tldp.org/HOWTO/LVM-HOWTO/index.html) from The Linux Documentation Project.

Paulinux you should take a look at the Hard Disk Upgrade Mini How-To (http://www.tldp.org/HOWTO/Hard-Disk-Upgrade/index.html). It will give you some great advice on what to cp. The cp -ax command is key along with manipulating /etc/fstab and grub.conf. If you are using F7 be sure to label your partitions and use labels in your fstab, see Upgrade Related Issues (http://docs.fedoraproject.org/release-notes/f7/en_US/sn-Installer.html#Upgrade-Related-Issues) in the release notes for details. The FC6 kernel will continue to look for LVs at boot up. You will need to remove the LV's, VG's, and PV's with lvremove, vgremove, and pvremove respectively to keep it from finding anything resembling LVM.

Bill

Paulinux
10th October 2007, 03:00 PM
wmakowski,
Thanks for the link. I already knew about it, but it didn't give me the necessary info that I think I just got from you. The closest I got to getting my system to non-LVM status was by installing a new non-LVM FC6 on another drive (/mnt/new), and cp-ing everything I recognized as desirable onto it. It could boot, and the new system gradually started resembling my old one: "Desktop" looked the same, firefox had all my bookmarks, etc. Then I noticed that, even though their directories existed on the new disk and links to them appeared in my desktop's pulldowns, a few programs wouldn't run. This made me copy still more directories until I copied the one that must have contained the instructions to look for LVMs at boot-up. When the LVMs weren't found at boot up, there was a panic. I then gave up and rebuilt my server from scratch.

Being that I am very stubborn (and that I still haven't wiped the old system), I will experiment with your suggestions.

After cp-ing the entire disk contents to a non-LVM drive, was this the only step I missed:
Manually edit grub.conf and change this (example from the totally unrelated system I'm on now):
kernel /vmlinuz-2.6.12-1.1381_FC3smp ro root=/dev/VolGroup00/LogVol00 rhgb quiet
to this:
kernel /vmlinuz-2.6.12-1.1381_FC3smp ro root=/dev/NonLvmDeviceWhereVmlinuzNowResides rhgb quiet ?

Did I even need to cp everything, or would lvremove, vgremove, and pvremove have made my system non-LVM and then the kernel would default to booting non-LVM after the grub.conf edit?

wmakowski
10th October 2007, 06:16 PM
Paulinux,

I will need to know a little more about the way things are setup on your LVM drive and non-LVM drives to offer specific advice. I'm going to assume that you have a standard FC6 install with LVM. If that is the case you probably have something like...


/dev/hda1 = boot partition
/dev/hda2 = physical volume for VolGroup00
/dev/VolGroup00/LogVol00 = root
/dev/VolGroup00/LogVol01 = swap
The FC6 delivered kernel will always look for volume groups even if you are not using LVM. This functionality is built into the kernel so that it will recognize booting either with or without volume groups. You will not be able to change from LVM to standard partitions just by using lvremove, vgremove, and pvremove. Your physical volume actually has both ext2 and swap filesystems on it. As I understand it the way LVM stores things is based on a combination of metadata and standard filesystem conventions. The contents of the root LV would need to be copied to another location and then you could convert the partitions using the method described in my last post.


After cp-ing the entire disk contents to a non-LVM drive, was this the only step I missed:
Manually edit grub.conf and change this (example from the totally unrelated system I'm on now):
kernel /vmlinuz-2.6.12-1.1381_FC3smp ro root=/dev/VolGroup00/LogVol00 rhgb quiet
to this:
kernel /vmlinuz-2.6.12-1.1381_FC3smp ro root=/dev/NonLvmDeviceWhereVmlinuzNowResides rhgb quiet ?
For the non-LVM drive I'm going to guess that the problem is a combination of not getting the right things from the old system and the entries in grub.conf. There are a couple changes to grub. First is to make sure the root (hd0,0) is pointing to the right place. If you have a boot partition it should point to that partition. In my example it is the first partition on the first drive. The boot partition can be the same as the root partition, but it doesn't have to be. In your example, it is obvious that the boot and root partitions are different and the changes you made would not work. root= on the command line should not be confused with root (hd0,0). The root= entry should point to the root partition.

Since F7 I have started using labels and really like how simple life can be. On my root partition I use the label /, on my boot partition I use /boot, and home is /home. This makes things easy in fstab and grub. The entry in grub would be root=LABEL=/. I don't have to remember device names/numbers, just the label I gave it. Same goes for fstab where the entry would be LABEL=/ / ext3 defaults 1 1. I've even found this a simple way to change things around. For example, if I wanted to move /home to a partition on another drive all I do is copy the contents and change the labels on the old and new partitions. Done! Don't even have to mess with fstab.

Hope this helps. If you still run into problems post your partition or LVM info and the steps you did when copying from LVM to non-LVM drive. Post grub.conf too if you still can't boot.

Bill

Paulinux
10th October 2007, 09:11 PM
Bill,
Thanks for all the input.
You're right, I have the standard FC6 configuration for a single drive system.
Based on your suggestions, here's what I'll try tonight on a clone of the LVM system:

1) Start FC6 LVM, mount and format new drive, creating "/boot", "/", "swap", and "/home" directories.
2) Stash copies of grub.conf and menu.lst on LVM, replacing all "root=/dev/VolGroup00/LogVol00" with "root=/dev/hda2"
3) Boot into linux rescue (no file access related cp problems)
4) Mount LVM and non-LVM drives, "cp -ax" all contents from LVM to non-LVM.
5) cp stashed grub.conf and menu.lst from non-LVM/home to non-LVM/boot, overwriting existing files.
6) Shut down, reboot with new drive, write you a thank you note.

Paul.

Paulinux
11th October 2007, 07:17 PM
Bill,
Well, no thank you note yet, just a "thanks" for getting me a bit closer:

hda1 is my /boot partition - hda2 is my / partition - hda3 is my swap partition (/home is on /)

I did all the steps listed previously, with this for grub.conf:
************************************************** ************************************************** ***************
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.22.9-61.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.22.9-61.fc6 ro root=/dev/hda2 rhgb quiet
initrd /initrd-2.6.22.9-61.fc6.img
title Fedora Core (2.6.22.7-57.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.22.7-57.fc6 ro root=/dev/hda2 rhgb quiet
initrd /initrd-2.6.22.7-57.fc6.img
************************************************** ************************************************** ***************

and this for fstab:
************************************************** ************************************************** ***************
#/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
/dev/hda2 / ext3 defaults 1 1
#LABEL=/boot /boot ext3 defaults 1 2
/dev/hda1 /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
#/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/hda3 swap swap defaults 0 0
************************************************** ************************************************** ***************

As the system boots, it says this (as I remember):
************************************************** ************************************************** ***************
booting the kernel
reading all physical volumes
volume group "VolGroup00" not found
unable to access resume device (/dev/VolGroup00/LogVol01)
************************************************** ************************************************** ***************

It then pops up the login screen where, with a big smile on my face, I enter login and password.

Then this shows up:
************************************************** ************************************************** ***************
cannot start the session due to some internal error
************************************************** ************************************************** ***************

Clicking on "details" button, I get:
************************************************** ************************************************** ***************
session-child-run: could not exec /etc/X11/init/xsession default
************************************************** ************************************************** ***************

It seems still to be looking for swap in LogVol01,where it used to be, rather than in /dev/hda3, where fstab now says it is.
I can't find where LogVol01 is referenced in any of my configuration files.
I remember reading on a forum (ubuntu?) that a "resume=" statement exists in a linux configuration file, and that it assigns the swap location, but I lost the link.

Any thoughts?

Paul.
PS: How can I pause the display at boot time ?

Paulinux
11th October 2007, 08:44 PM
I just found the thread and tried "resume=" in grub.conf:
************************************************** ************************************************** ******
title Fedora Core (2.6.22.9-61.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.22.9-61.fc6 ro root=/dev/hda2 resume=/dev/hda3 rhgb quiet
initrd /initrd-2.6.22.9-61.fc6.img
************************************************** ************************************************** ******

Startup message still says
************************************************** ************************************************** ******
booting the kernel
reading all physical volumes
volume group "VolGroup00" not found
************************************************** ************************************************** ******

but this line no longer appears
************************************************** ************************************************** ******
unable to access resume device (/dev/VolGroup00/LogVol01)
************************************************** ************************************************** ******

All other errors remain; System is non functional.
Maybe I should start playing with initrd parameters?
Dazed and confused.

wmakowski
11th October 2007, 09:32 PM
It looks like you made significant progress. I especially like the big smile on my face part. Sorry it didn't stay there after login.

I suspect that the LVM drive is in the machine on startup. The kernel will try its best to locate any LVM related PV, VG, and LV on startup. You may be able to keep the drive there and just make LVM inactive using lvchange -a n /dev/VolGroup00/LogVol00, lvchange -a n /dev/VolGroup00/LogVol01, and vgchange -a n /dev/VolGroup00. Nothing will be lost and I'm pretty sure it will see them and just say 'whatever'. Another option would be to disconnect the drive.

Both grub.conf and /etc/fstab look good to me. I don't believe it is trying to make /dev/VolGroup/LogVol01 as swap. You can look at the very end of /var/log/dmesg to see what was mounted. You can also see any swaps by using cat /proc/swaps. I never heard of the resume= config you mentioned so I did a little googling and believe it has to do with suspending a laptop.

The real problem now appears to be getting your Xsession to startup. I remember having a similar problem in an earlier version of Gnome. Turned out that one of my user files became corrupted. Try first to create a new user and see if X comes up when you login with that user. If that works then you know it is the user files. I resolved my problem by removing the .gnome* and .x* directories/files in the /home/username/ directory. They will be recreated when you start a new session.

Bill

ps - If I remember right cntl+S will pause the screen at boot. cntl+Q will allow it to resume.

Paulinux
11th October 2007, 10:45 PM
Hi Bill,
Nope, no LVM drive on startup. I have two rack mounts in the case. All my drives are set to cable select, with none mounted in the case. Each drive is an independent OS. I boot with LVM in the master slot and non-LVM in the slave. After boot up, I mount the non-LVM as hdb1 and hdb2. I can then modify the config files on hdb1 (/boot/grub) and hdb2 (etc/fstab). I then shutdown, remove the master LVM drive, and put the former slave (now master) in its place, see how it boots, experiment, and eventually report back to the forum. Occasionally I screw things up so badly that I have to boot the master/slave setup with a rescue disk and put things back in the slave the way they were.

Yup, I saw the connection between laptops and "resume=" too, "but the resume=/hda3" did stop the boot message saying that LogVol01 couldn't be found, so I thought it was a step in the right direction.

I'm on the wrong drive right now (FC3), but I will look at dmesg when I put the FC6 non LVM back in. How can I create a new user without logging in as root? Also, looking at the FC3 that I'm on now, there is no ".x" file under "/home/username/", only a ".gnome" file. Maybe I'll see ".x" in FC6.

Thanks for the pause/resume commands. I'm about to try them.

Paulinux
12th October 2007, 01:00 AM
You got the pause/resume right. Now I can read the messages without booting over and over. THANK YOU!
I booted the non LVM installation, but I can't create a user at the login prompt.
There are no ".x" files under /home/username/ to delete (only .gnome).

This is the tail end of dmesg:
************************************************** ************************************************** ********
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
device-mapper: multipath: version 1.0.5 loaded
EXT3 FS on hda2, internal journal
kjournald starting. Commit interval 5 seconds
EXT3 FS on hda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
SELinux: initialized (dev hda1, type ext3), uses xattr
SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
Adding 2096472k swap on /dev/hda3. Priority:-1 extents:1 across:2096472k
SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts
************************************************** ************************************************** ********

The only thing that might be worth trying is to make sure that I formatted swap on /dev/hda3 to a value equal to or greater than tne 2096472k that is being looked for. In other words, did I format to 2000000 bytes or 2097152 bytes? Even though the swap isn't fully used doesn't mean that some check isn't failing during boot and causing part of the problem.

I've been doing this mostly as a learning experience. I had already given up and rebuilt my server on a non LVM drive, but curiosity and stubbornness took over. I also came across many other users who had a similar desire to "undo" an LVM installation, and thought that I could lead them out of the tunnel if I managed to do it for myself. If you can think of anything else, I'm open, but I think the horse is dead !!

wmakowski
12th October 2007, 08:19 PM
You have to be root to be able to add a new user. Either that or have the correct permissions and use sudo. The command at the CLI is useradd. You could also use usermod and give yourself a new home directory for a little bit. I be interested to know if you can get into an X session with a new user.

At home I was successful with installing and removing LVM on one of my drives using most everything in the procedure I wrote above. I didn't migrate an entire install though. I used freespace on the drive and set up my /home partition as an LV, ran it for a while, and then migrated it back to a standard partition. The only hitch was with parted and I ended up using resize2fs to resize the partition. Turns out there are some filesystem features that parted is a little behind on.

I don't have many ideas left. Has the non-LVM drive ever had LVM installed on it? pvdisplay would be able to tell you if there are any attributes on the drive. If so, perhaps some remnants are still being found during boot. If not, we're definitely missing something. I took a look at /etc/lvm.conf, but didn't find any entries that looked promising. I have an F7 with LVM and an FC6 with standard partitions to make comparisons. Did you use mkfs on the new partitions before copying the contents of the LVM to non-LVM. Another thing to check is the filesystem type in fdisk, it should be 83 for a regular Linux partition. Then again, you've probably run through all this yourself. Wish I could be of more help, it would be nice to put this issue to bed with the dead horse.

Bill

Paulinux
17th October 2007, 08:19 PM
Hi Bill,
I couldn't add a user at the CLI because even terminal mode gave me errors and quit. I didn't try using useradd in rescue mode because I forgot to try it before doing what I describe below.

The target drive had been written full of zeroes with the dd command and then reformatted with fdisk to type 83 before any cp-ing was done to it, so I think only sandpaper would have done a better prep job.

Anyhow, I FOUND A WAY TO MOVE A SYSTEM FROM LVM TO NON-LVM !!!!!

1) Get your source LVM drive. We'll call it "LVM-source".
2) Install FC6 on a new, clean drive with /hda1 non-LVM-formatted as /boot, /hda2 as SWAP, and /hda3 as everything else.
3) Reboot, finish installation, run update, go watch TV, come back in 3 hours. Call this drive "non-LVM-source".
4) Install FC6 on a new, clean drive with /hda1 non-LVM-formatted as /boot, /hda2 as SWAP, and /hda3 as everything else.
5) Reboot, finish installation, DO NOT RUN UPDATE !!! It takes too long, and we don't need it. Call this drive "non-LVM-destination".
6) Attach LVM-source as master, non-LVM-destination as slave
7) Boot with rescue disk and allow /dev/VolGroup00/LogVol00 to be mounted as /dev/sysimage so it will be recognized.
8) I got a "there were a few problems mounting image" message, so I mounted /dev/VolGroup00/LogVol00 as /mnt/here.
9) Mount /dev/hdb3 as /mnt/there
10) cd to /mnt/here, and cp -ax * /mnt/there -this will copy all your stuff from LVM to non-LVM drive. Unfortunately, it will also corrupt your non-LVM-destination with some LVM baggage.
11) Shut down and reboot in rescue mode with non-LVM-source as master and non-LVM-destination as slave.
12) Don't mount the sysimage, just mount /dev/hda3 as /mnt/here and /dev/hdb3 as /mnt/there.
13) cd to /mnt/here, and cp -ax * /mnt/there -this will write over LVM files which corrupted the non-LVM-destination in step 10 (at least, that's what I think it does).
14) Boot the non-LVM-destination and check that your stuff is all there. Mine was, with the exception that my monitor resolution changes were not carried over from my LVM-drive's settings (they were still at the default settings of the non-LVM-source), and VLC, though copied from LVM-source to non-LVM-destination directories, didn't run. So, I reinstalled it. Also, not all my repository information was copied over.

The system booted without a single error message about anything not being found. My Thunderbird settings were all intact, and many other programs also carried over well. I didn't bother checking everything because, as I said earlier in the thread, I had already reinstalled my server from scratch on a non-lvm drive.

Maybe I should put some search terms that I looked for here:
LVM to non LVM
LVM to ext3 (I know they're not mutually exclusive)
LVM sucks
I hate LVM
undo LVM
revert from LVM
don't want LVM
don't like LVM

Paul.

wmakowski
17th October 2007, 10:02 PM
I'm glad that you followed up on this and were able to find a way to make it work. With all those steps it looks like you were determined to find an answer. I've done a little research myself since we last talked this over. I haven't had a chance to test my findings yet, but plan on doing so in the near future. Since posting I have learned more about how the kernel handles LVM. At the end of my instructions I should have had a step to make a new initrd. Dies posted this in one of his earlier replies and I didn't catch it until later. This would have solved some of the problems that both you and I encountered.

In early LVM, the functionality had to be built into the kernel. Now it is handled entirely by using kernel modules. These modules are a part of the initial filesystem within initrd. The init script inside of initrd handles setting up swap and mounting the root filesystem amongst other things. Since the initrd was not rebuilt we encountered problems with resume and mounting the correct root filesystem.

I think you will find this interesting. There are a few steps to see what is inside of an initrd-x.x.x.x-x.fc6.img. This is all temporary, so for convenience I did it in my /root directory, but you can do it anywhere you like.

1) In /root mkdir myinitrd.
2) cp /boot/initrd-x.x.x.x-x.fc6.img to /root/myinitrd.
3) cd myinitrd
4) gunzip -S .img initrd-x.x.x.x-x.fc6.img
5) cpio -i < initrd-x.x.x.x-x.fc6

Step 5 extracts the archived filesystem contained in initrd to the current directory so you can look at the contents normally. Take a look at the init file. The resume command, which I have not found documented anywhere, obviously mounts the swap partition or file. Later on you'll see where init mounts the root filesystem. As I understand it the entries in Grub are only used to bring up the kernel. The system really gets rolling when init runs.

The initrd file can get built using mkinitrd. It also gets built during a post install step when a kernel is installed to the system via yum or rpm.

Bill