[Mageia-dev] RFC: Drop mkinitrd completely in favour of dracut.

Colin Guthrie mageia at colin.guthr.ie
Sat Dec 3 10:56:06 CET 2011


'Twas brillig, and David W. Hodgins at 03/12/11 09:21 did gyre and gimble:
> On Sat, 03 Dec 2011 01:05:31 -0500, Thomas Backlund <tmb at 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.

Cheers Dave. I'll speak to Harald to see how best to handle this in a
more official way.

Col


-- 

Colin Guthrie
colin(at)mageia.org
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited http://www.tribalogic.net/
Open Source:
  Mageia Contributor http://www.mageia.org/
  PulseAudio Hacker http://www.pulseaudio.org/
  Trac Hacker http://trac.edgewall.org/


More information about the Mageia-dev mailing list