On Sat, 03 Dec 2011 01:05:31 -0500, Thomas Backlund <t...@mageia.org> wrote:

Fyi. On one of my cauldron installs, I have /usr in a lvm
logical volume.  In order to get this to be bootable, I
modified /etc/dracut.conf to have
add_drivers+="dm_mod dm_crypt"
and
install_items+=(/bin/grep /lib/libpcre.so.0.0.1 /lib/libpcre.so.0 
/lib/libdevmapper-event.so.1.02 /lib/libdevmapper.so.1.02 /lib/libreadline.so.6 
/lib/libncurses.so.5 /sbin/lvm 
/lib/modules/3.1.4-server-1.mga2/kernel/drivers/md/dm-crypt.ko.gz 
/lib/modules/3.1.4-server-1.mga2/kernel/drivers/md/dm-mod.ko.gz /sbin/dmsetup 
/sbin/lsmod )

I modified /usr/share/dracut/modules.d/98usrmount/mount-usr.sh to have ...
#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh

type info >/dev/null 2>&1 || . /lib/dracut-lib.sh
type fsck_single >/dev/null 2>&1 || . /lib/fs-lib.sh

mount_usr()
{
    local _dev _mp _fs _opts _rest _fs_found _ret _mount_point
    if ! __fgrep "device-mapper" /proc/devices >/dev/null 2>&1 ; then
       modprobe dm-mod >/dev/null 2>&1
    fi
    /sbin/lvm vgchange -a y --sysinit
fsck_mount()
(
    # check, if we have to mount the filesystem
    _fs_found=""
    while read _dev _mp _fs _opts _rest; do
        if [ "$_mp" = "/$_mount_point" ]; then
            echo "$_dev $NEWROOT/$_mp $_fs ${_opts} $_rest"
            _fs_found="1"
            break
        fi
    done < "$NEWROOT/etc/fstab" >> /etc/fstab
    if [ "x$_fs_found" != "x" ]; then
        # we have to mount it
        fsck_single "$_dev" "$_fs"
        _ret=$?
        echo $_ret >/run/initramfs/$_mount_point-fsck
        if [ $_ret -ne 255 ]; then
            info "Mounting /$_mount_point"
            mount "$NEWROOT/$_mount_point" 2>&1 | vinfo
        fi
    fi
)
    _mount_point="usr"; fsck_mount
    _mount_point="var"; fsck_mount
    _mount_point="var/mnt"; fsck_mount
    _mount_point="opt"; fsck_mount
    _mount_point="tmp"; fsck_mount
    _mount_point="home"; fsck_mount
}

mount_usr

I initially only had the /usr being mounted, but found that when it
got around to trying to mount the next lv, it would report that the
mount timed out due to a dependency failure, but with no indication
of why.  I ended up modifying the script to mount all of my lvm
partitions, in the initramfs, to get it to work.

Regards, Dave Hodgins

Reply via email to