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
>
>