[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] mkinitrd problem when LVM volume group names differ between Dom0 and DomU



Hi Tim,

Thanks for the reply.

I was unable to find the "-k" option you mentioned. I'm running mkinitrd 5.0.32.

I think the main issue is a design assumption on the part of the mkinitrd script (at the time quite reasonable), that it (the script) would be running on the same system that the ramdisk will be running on. Xen (paravirtualized) violates this assumption.

I have also added to this mkinitrd bugzilla entry:

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=190274

- Mike



At 10/19/2006 03:21 PM  Thursday, Tim Post wrote:
Try mkinitrd -k (keep files used in creating in /tmp/mkinitrd.xxxx), go
edit as needed, and mkfs.cramfs using the initrd root left
in /tmp/mkinitrd.xxxx/initrd

HTH

Best,
-Tim


On Thu, 2006-10-19 at 14:54 -0500, Mike Freemon wrote:
> How can I make "mkinitrd" generate a correct ramdisk image when the LVM
> volume group names differ between the Dom0 and DomU?
>
> The details:
>
> In Dom0, the root filesystem is LVM in volume group "VGShark", as follows:
>
> # df -h
> Filesystem            Size  Used Avail Use% Mounted on
> /dev/mapper/VGShark-LogVol00
>                        450G  119G  308G  28% /
> /dev/sda1              99M   45M   49M  48% /boot
> tmpfs                 1.9G     0  1.9G   0% /dev/shm
>
> In the DomU, the root filesystem is LVM in volume group "VolGroup00".
>
> Back in Dom0, I run the following to create the initrd...
>
> #mkinitrd -f initrd-2.6.16.29-xen.img 2.6.16.29-xen
>
> ...which produces the following (snippet) in the generated "init" file in
> the ramdisk image:
>
> echo Making device-mapper control node
> mkdmnod
> mkblkdevs
> echo Scanning logical volumes
> lvm vgscan --ignorelockingfailure
> echo Activating logical volumes
> lvm vgchange -ay --ignorelockingfailure  VGShark
> resume /dev/VGShark/LogVol01
> echo Creating root device.
> mkrootdev -t ext3 -o defaults,ro /dev/VGShark/LogVol00
> echo Mounting root filesystem.
> mount /sysroot
> echo Setting up other filesystems.
> setuproot
> echo Switching to new root and running init.
> switchroot
>
> The DomU config file is:
>
> kernel = "/boot/vmlinuz-2.6.16.29-xen"
> ramdisk = "/boot/initrd-2.6.16.29-xen.img"
> root = "/dev/VolGroup00/LogVol00 ro"
> name = "minnow"
> memory = "512"
> disk = [ 'file:/var/vm/minnow/disk0.img,xvda,w' ]
> vif = [ 'mac=00:16:3e:00:e6:8f' ]
> uuid = "7e6aa8bb-37da-3a7f-e72e-63290fcf2713"
>
> ..which produces the following error at domU boot time:
>
> Making device-mapper control node
> Scanning logical volumes
>    Reading all physical volumes.  This may take a while...
>    Found volume group "VolGroup00" using metadata type lvm2
> Activating logical volumes
>    Unable to find volume group "VGShark"
> Creating root device.
> Mounting root filesystem.
> mount: could not find filesystem '/dev/root'
> Setting up other filesystems.
> Setting up new root fs
> setuproot: moving /dev failed: No such file or directory
> no fstab.sys, mounting internal defaults
> setuproot: error mounting /proc: No such file or directory
> setuproot: error mounting /sys: No such file or directory
> Switching to new root and running init.
> unmounting old /dev
> unmounting old /proc
> unmounting old /sys
> switchroot: mount failed: No such file or directory
> Kernel panic - not syncing: Attempted to kill init!
>
> So --
>
> Here is the /etc/fstab (in Dom0):
>
> #cat fstab
> /dev/VGShark/LogVol00   /                       ext3    defaults        1 1
> LABEL=/boot             /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/VGShark/LogVol01   swap                    swap    defaults        0 0
>
> I copy this file to create fstab.domU, and change the references to VGShark
> to VolGroup00, which is:
>
> #cat fstab.domU
> /dev/VolGroup00/LogVol00   /                    ext3    defaults        1 1
> LABEL=/boot             /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
>
> This matches exactly what DomU is expecting.
>
> I rebuild initrd with the following command:
>
> # mkinitrd -f --fstab=/etc/fstab.domU initrd-2.6.16.29-xen.img 2.6.16.29-xen
>
> ...which produces the following (snippet) in the generated "init" file in
> the ramdisk image:
>
> mkblkdevs
> resume /dev/VolGroup00/LogVol01
> echo Creating root device.
> mkrootdev -t ext3 -o defaults,ro /dev/VolGroup00/LogVol00
> echo Mounting root filesystem.
> mount /sysroot
> echo Setting up other filesystems.
> setuproot
> echo Switching to new root and running init.
> switchroot
>
> I try again to boot the DomU with the same config file listed above and I
> get this error:
>
> Creating root device.
> Mounting root filesystem.
> mount: could not find filesystem '/dev/root'
> Setting up other filesystems.
> Setting up new root fs
> setuproot: moving /dev failed: No such file or directory
> no fstab.sys, mounting internal defaults
> setuproot: error mounting /proc: No such file or directory
> setuproot: error mounting /sys: No such file or directory
> Switching to new root and running init.
> unmounting old /dev
> unmounting old /proc
> unmounting old /sys
> switchroot: mount failed: No such file or directory
> Kernel panic - not syncing: Attempted to kill init!
>
> Next --
>
> I modify the generated "init" file in the ramdisk image to the following
> (replace VGShark with VolGroup00):
>
> mkdmnod
> mkblkdevs
> echo Scanning logical volumes
> lvm vgscan --ignorelockingfailure
> echo Activating logical volumes
> lvm vgchange -ay --ignorelockingfailure  VolGroup00
> resume /dev/VolGroup00/LogVol01
> echo Creating root device.
> mkrootdev -t ext3 -o defaults,ro /dev/VolGroup/LogVol00
> echo Mounting root filesystem.
> mount /sysroot
> echo Setting up other filesystems.
> setuproot
> echo Switching to new root and running init.
> switchroot
>
> I rebuild the initrd image, and change the ramdisk line in the domU config to:
>
> kernel = "/boot/vmlinuz-2.6.16.29-xen"
> ramdisk = "/boot/initrdDomU.img"
> root = "/dev/VolGroup00/LogVol00 ro"
> name = "minnow"
> memory = "512"
> disk = [ 'file:/var/vm/minnow/disk0.img,xvda,w' ]
> vif = [ 'mac=00:16:3e:00:e6:8f' ]
> uuid = "7e6aa8bb-37da-3a7f-e72e-63290fcf2713"
>
> ...and the DomU boots up!
>
> The conclusion I draw is that mkinitrd is not creating a good ramdisk image.
>
> How can I make mkinitrd generate a correct ramdisk image when the volume
> group names differ between the Dom0 and DomU?
>
> TIA,
>
> - Mike
>
>
> _______________________________________________
> Xen-users mailing list
> Xen-users@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-users
>
>


_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.