[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