Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 408971 - Migration guide to sys-fs/udev-181 and initramfs, respectively?
Summary: Migration guide to sys-fs/udev-181 and initramfs, respectively?
Status: RESOLVED FIXED
Alias: None
Product: [OLD] Docs on www.gentoo.org
Classification: Unclassified
Component: Other documents (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Sven Vermeulen (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 407959
  Show dependency tree
 
Reported: 2012-03-20 09:48 UTC by Juergen Rose
Modified: 2012-04-05 21:37 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Juergen Rose 2012-03-20 09:48:11 UTC
Because my /usr directories are on seperate partitions I have to switch to booting via initramfs.

A typical configuration at a desktop system looks like:

root@caiman:/root(38)# df
Filesystem               1K-blocks      Used Available Use% Mounted on
rootfs                     4127040   1396868   2520528  36% /
/dev/root                  4127040   1396868   2520528  36% /
devtmpfs                   8056352       632   8055720   1% /dev
rc-svcdir                     1024       140       884  14% /lib64/rc/init.d
cgroup_root                  10240         0     10240   0% /sys/fs/cgroup
tmpfs                      8089644        80   8089564   1% /dev/shm
/dev/mapper/vg0-usr      134032968  23506040 103816044  19% /usr
/dev/mapper/vg0-home     268127560  89378392 165327396  36% /home_caiman
/dev/mapper/vg0-tmp       16776700     33352  16743348   1% /tmp
/dev/mapper/vg0-var        4128448   2031608   1887128  52% /var
/dev/mapper/vg0-vtmp      33553404   5806376  27747028  18% /var/tmp
/dev/mapper/vg0-opt        4128448    851760   3066976  22% /opt
/dev/mapper/vg0-ftp      134152192   1262388 132889804   1% /home_caiman/ftp
/dev/mapper/vg0-src       67106812   1353212  65753600   3% /usr/src_caiman
/dev/mapper/vg0-portage    4141576    313721   3618140   8% /usr/portage_caiman
/dev/sda6                 25641868   9398236  14958032  39% /usr/portage_caiman/distfiles
/dev/sdb6                 25308412   2205752  21817060  10% /mnt/test2
/dev/mapper/vg0-data    1188164184 264104868 864592564  24% /data_caiman
/dev/md127                  254654    199721     41685  83% /boot

root@caiman:/root(39)# cat /proc/mdstat 
Personalities : [raid1] [raid6] [raid5] [raid4] 
md2 : active raid1 sda5[0] sdb5[1]
      1873009126 blocks super 1.2 [2/2] [UU]
      
md127 : active raid1 sda1[0] sdb1[1]
      264960 blocks [2/2] [UU]
      
md125 : active raid1 sda3[0] sdb3[1]
      4192896 blocks [2/2] [UU]
      
unused devices: <none>
root@caiman:/root(40)# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg0" using metadata type lvm2
root@caiman:/root(41)# pvscan
  PV /dev/md2   VG vg0   lvm2 [1.74 TiB / 0    free]
  Total: 1 [1.74 TiB] / in use: 1 [1.74 TiB] / in no VG: 0 [0   ]
root@caiman:/root(42)# lvscan
  ACTIVE            '/dev/vg0/usr' [128.00 GiB] inherit
  ACTIVE            '/dev/vg0/var' [4.00 GiB] inherit
  ACTIVE            '/dev/vg0/vtmp' [32.00 GiB] inherit
  ACTIVE            '/dev/vg0/portage' [4.00 GiB] inherit
  ACTIVE            '/dev/vg0/distfiles' [16.00 GiB] inherit
  ACTIVE            '/dev/vg0/opt' [4.00 GiB] inherit
  ACTIVE            '/dev/vg0/home' [256.00 GiB] inherit
  ACTIVE            '/dev/vg0/tmp' [16.00 GiB] inherit
  ACTIVE            '/dev/vg0/ftp' [128.00 GiB] inherit
  ACTIVE            '/dev/vg0/src' [64.00 GiB] inherit
  ACTIVE            '/dev/vg0/data' [1.11 TiB] inherit



At a laptop it is:

root@condor:/root(6)# df
Filesystem                1K-blocks      Used Available Use% Mounted on
rootfs                      1976400   1133812    742188  61% /
/dev/root                   1976400   1133812    742188  61% /
rc-svcdir                      1024       176       848  18% /lib64/rc/init.d
cgroup_root                   10240         0     10240   0% /sys/fs/cgroup
udev                          10240       696      9544   7% /dev
none                        3535304         0   3535304   0% /dev/shm
/dev/mapper/vg1-usr       132111844  31742748  93658212  26% /usr
/dev/mapper/vg1-var         4128448   3238704    680032  83% /var
/dev/mapper/vg1-tmp        16513960     89896  15585204   1% /tmp
/dev/mapper/vg1-opt         4128448   1038260   2880476  27% /opt
/dev/mapper/vg1-home      536304444 447548648  61912252  88% /home_condor
/dev/mapper/vg1-ftp       134152192  38749448  95402744  29% /home_condor/ftp
/dev/mapper/vg1-vtmp       33027952   6629728  24720504  22% /var/tmp
/dev/mapper/vg1-portage     4142882    909413   3023754  24% /usr/portage_condor
/dev/mapper/vg1-distfiles  16772008  12652072   3281076  80% /usr/portage_condor/distfiles
/dev/mapper/vg1-src        64415820   7695348  56720472  12% /usr/src_condor
/dev/sda5                     23300       297     21800   2% /mnt/rescue
/dev/sdb5                     23300       200     21897   1% /scratch
/dev/md122                   132194     87257     38112  70% /boot
root@condor:/root(7)# pvscan 
  PV /dev/md5   VG vg1   lvm2 [905.43 GiB / 0    free]
  Total: 1 [905.43 GiB] / in use: 1 [905.43 GiB] / in no VG: 0 [0   ]
root@condor:/root(8)# vgscan 
  Reading all physical volumes.  This may take a while...
  Found volume group "vg1" using metadata type lvm2
root@condor:/root(9)# lvscan 
  ACTIVE            '/dev/vg1/usr' [128.00 GiB] inherit
  ACTIVE            '/dev/vg1/var' [4.00 GiB] inherit
  ACTIVE            '/dev/vg1/vtmp' [32.00 GiB] inherit
  ACTIVE            '/dev/vg1/portage' [4.00 GiB] inherit
  ACTIVE            '/dev/vg1/distfiles' [16.00 GiB] inherit
  ACTIVE            '/dev/vg1/opt' [4.00 GiB] inherit
  ACTIVE            '/dev/vg1/home' [512.00 GiB] inherit
  ACTIVE            '/dev/vg1/tmp' [16.00 GiB] inherit
  ACTIVE            '/dev/vg1/ftp' [128.00 GiB] inherit
  ACTIVE            '/dev/vg1/src' [61.43 GiB] inherit

So I masked >=sys-fs/udev-181, and tried to create booting configuration with initramfs.
If I try to create the initrd with dracut, booting fails with several errors and I drop to the dracut shell.
If I try to create the initrd with genkernel and boot with this initramfs and still with udev-171-r5, I get the message that /dev/mapper/vg1-usr could not be mount to /new_root/usr. But nevertheless booting continues and I come to a running system. I am afraid, if I switch to udev-181, booting will stop if /dev/mapper/vg1-usr can not be mounted at /new_root/usr.

Now I also have to mask >=sys-auth/consolekit-0.4.5-r3, because consolekit-0.4.5-r3 depends on >=udev-181.

I was searching in the web, found http://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html but I could not find the information which modules and driver I have to add (in /etc/dracut.conf), which command line options I should use running dracut, which options I should use in /boot/grub/grub.conf.  
So as a summary, a migration guide how to create the initramfs for similar configurations would be very helpfull.


Reproducible: Always
Comment 1 Juergen Rose 2012-03-20 09:50:46 UTC
Sorry, I did not posted a laptop configuration in the last posting. A laptop configuration would be:

root@lynx:/root(3)# df
Filesystem                1K-blocks      Used Available Use% Mounted on
rootfs                      2071384    747268   1218892  39% /
/dev/root                   2071384    747268   1218892  39% /
devtmpfs                    1994152      2576   1991576   1% /dev
rc-svcdir                      1024       160       864  16% /lib64/rc/init.d
cgroup_root                   10240         0     10240   0% /sys/fs/cgroup
shm                         1994384       344   1994040   1% /dev/shm
/dev/mapper/vg1-usr        49541936  31014992  16010364  66% /usr
/dev/mapper/vg1-tmp         8388348     32968   8355380   1% /tmp
/dev/mapper/vg1-var         6192704   4970300    907832  85% /var
/dev/mapper/vg1-vtmp        8388348   1725152   6663196  21% /var/tmp
/dev/mapper/vg1-portage     2046355    315780   1625718  17% /usr/portage_lynx
/dev/mapper/vg1-distfiles  16772008  14758172   1174976  93% /usr/portage_lynx/distfiles
/dev/mapper/vg1-opt         2064208   1244284    715068  64% /opt
/dev/mapper/vg1-home      198167796 184863084   3238384  99% /home_lynx
/dev/mapper/vg1-ftp       134152192  86903720  47248472  65% /home_lynx/ftp
/dev/mapper/vg1-src        16513960   4537500  11137600  29% /usr/src_lynx
/dev/mapper/vg1-data      104117472  83213768  15614744  85% /data_lynx
/dev/sda3                    521780    357236    138040  73% /boot
root@lynx:/root(4)# pvscan
  PV /dev/sda7   VG vg1   lvm2 [526.88 GiB / 0    free]
  Total: 1 [526.88 GiB] / in use: 1 [526.88 GiB] / in no VG: 0 [0   ]
root@lynx:/root(5)# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg1" using metadata type lvm2
root@lynx:/root(6)# lvscan
  ACTIVE            '/dev/vg1/usr' [48.00 GiB] inherit
  ACTIVE            '/dev/vg1/var' [6.00 GiB] inherit
  ACTIVE            '/dev/vg1/vtmp' [8.00 GiB] inherit
  ACTIVE            '/dev/vg1/portage' [2.00 GiB] inherit
  ACTIVE            '/dev/vg1/distfiles' [16.00 GiB] inherit
  ACTIVE            '/dev/vg1/opt' [2.00 GiB] inherit
  ACTIVE            '/dev/vg1/home' [192.00 GiB] inherit
  ACTIVE            '/dev/vg1/tmp' [8.00 GiB] inherit
  ACTIVE            '/dev/vg1/ftp' [128.00 GiB] inherit
  ACTIVE            '/dev/vg1/src' [16.00 GiB] inherit
  ACTIVE            '/dev/vg1/data' [100.88 GiB] inherit
Comment 2 jannis 2012-03-20 10:20:13 UTC
I used to have a custom initrd to do all the pre-mountroot-stuff (using cryptsetup-luks here) and that broke with udev-181.
Now I'm using genkernel to create an initramfs. For instructions see this document:
http://www.gentoo.org/doc/en/genkernel.xml
I still configure and compile my kernel manually.
Hope it helps.

However, a more explicit warning would've been nice. My /usr is on my root-partition (so I didn't see need for an action) and nevertheless gentoo broke my boot :/
Comment 3 Mark 2012-03-20 14:08:51 UTC
I too have /usr on a partition. I did an "emergency" initramfs modification. Creating the init-fs was simplified after I re-compiled my kernel to 1) use initramfs and 2) populate the /dev (mkdevfs). Also emerge binutils using only the static use flag.  

When finished my init script mounts only the root and usr which got me out to using the usual system init. I do not use a cryto file system, but cach0rr0 wrote a nice guide about how to do that if needs be. The guide is very handy as well as the gentoo wiki.


There was also a news item (eselect news) for this, but frankly, we would have to do it sooner or later. Another option would be to put /usr on the root for real if you have the room. I never liked the idea of initramfs, but it works fine.   


My only head scratcher now is that apcupsd won't run (pid file issue) and I am suspicious of udev.
Comment 4 Juergen Rose 2012-03-20 15:16:08 UTC
I tried now booting with initramfs at the second laptop. Dracut was emerged with the following flags:

root@lynx:/root(1)# emerge -pvD dracut
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R    ] sys-kernel/dracut-017-r1  USE="device-mapper -debug -net (-selinux)" DRACUT_MODULES="caps lvm syslog -biosdevname -btrfs -crypt -crypt-gpg -dmraid -dmsquash-live -gensplash -iscsi -livenet -mdraid -multipath -nbd -nfs -plymouth -ssh-client" 0 kB

root and /usr partitions have ext2 and ext3 filesystems:
root@lynx:/usr/src(14)# mount | grep "root\|/usr "
rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw,noatime,errors=continue)
cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
/dev/mapper/vg1-usr on /usr type ext3 (rw,noatime)

Current kernel in source tree is linux-3.3.0. ext2 und ext3 is hard compiled into the kernel:
root@lynx:/usr/src(16)# grep "EXT.*_FS"= linux-3.3.0/.config
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS=m

With respect to multiple devices I have the following options:
root@lynx:/usr/src(20)# grep  "_MD"= linux-3.3.0/.config
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m

and with respect to RAMFS:
root@lynx:/usr/src(5)# grep RAMFS linux-3.3.0/.config
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CRAMFS=m
root@lynx:/usr/src(6)# grep INITRD linux-3.3.0/.config
CONFIG_BLK_DEV_INITRD=y

If I run dracut it saus:
root@lynx:/usr/src(22)# dracut
I: *** Including module: dash ***
I: *** Including module: caps ***
I: *** Including module: i18n ***
I: *** Including module: dm ***
ln: failed to create symbolic link `/var/tmp/initramfs.gLdCnU//usr/lib64/libdevmapper-event.so': No such file or directory
ln: failed to create symbolic link `/var/tmp/initramfs.gLdCnU//usr/lib64/libdevmapper-event.so': No such file or directory
I: Skipping udev rule: 64-device-mapper.rules
I: *** Including module: kernel-modules ***
I: *** Including module: lvm ***
I: Skipping udev rule: 64-device-mapper.rules
I: *** Including module: resume ***
I: *** Including module: rootfs-block ***
I: *** Including module: terminfo ***
I: *** Including module: udev-rules ***
I: Skipping udev rule: 50-udev.rules
I: Skipping udev rule: 95-late.rules
I: *** Including module: usrmount ***
I: *** Including module: base ***
I: *** Including module: fs-lib ***
I: Skipping program jfs_fsck as it cannot be found and is flagged to be optional
I: Skipping program btrfsck as it cannot be found and is flagged to be optional
I: *** Including module: shutdown ***
I: Skipping program kexec as it cannot be found and is flagged to be optional
I: *** Including modules done ***
I: Wrote /boot/initramfs-3.3.0-gentoo.img:
I: -rw-r--r-- 1 root root 8018316 Mar 20 15:28 /boot/initramfs-3.3.0-gentoo.img


In /boot/grub/grub.conf I have these entries for booting without and with
initramfs:

title=Gentoo Linux 3.3.0_dvbm_vesa_without_initrd vga=872 (1680x1050-77)
root (hd0,2)
kernel (hd0,2)/vmlinuz-3.3.0_dvbm_vesa_without_initrd root=/dev/sda6 i915.i915_enable_rc6=1 video=vesa:ywrap,mtrr:3 vga=872

title=Gentoo Linux 3.3.0_dvbm_vesa_without_initrd vga=872 (1680x1050-77) with initramfs
root (hd0,2)
kernel (hd0,2)/vmlinuz-3.3.0_dvbm_vesa_without_initrd root=/dev/ram0 real_root=/dev/sda6 i915.i915_enable_rc6=1 video=vesa:ywrap,mtrr:3 vga=872
initrd /boot/initramfs-3.3.0-gentoo.img

Is the configuration for booting with an dracut initramfs correct? Do I need this option root=/dev/ram0? Booting without initramfs works perfectly. Booting with initramfs fails with:

[  ] udevd[1236]: starting version 171
[  ] udevadm used greatest stack depth: 5648 bytes left
[  ] ata_id used greatest stack depth: 4856 bytes left
[  ] dracut: Scanning devices sda7 for LVM volume groups
[  ] dracut: Reading all physical volume(s). This make take a while...
[  ] dracut: Found volume group "vg1" using metadata type lvm
[  ] dracut: 11 logical volume(s) in volume group 'vg1" now active
[  ] dracut: Scanning devices sda7 for LVM volume groups
[  ] dracut: Reading all physical volume(s). This make take a while...
[  ] dracut: Found volume group "vg1" using metadata type lvm
[  ] dracut: Partial mode. Incomplete logical volumes will be processed.
[  ] dracut: 11 logical volume(s) in volume group 'vg1" now active

[40.453564] dracut Warning: Unable to process initqueue
 dracut Warning: Unable to process initqueue
[40.483326] dracut Warning: /dev/ram0 does not exist
 dracut Warning: /dev/ram0 does not exist

Dropping to debug shell

sh: cannot set terminal process group (-1): Inappropriate ioct for device
sh: no job control in this shell
dracutL/# [302.220167] kworker/u:3 used greatest stack depth: 4568 bytes left

dracut:/# ls /dev/r*
/dev/random  /dev/rtc  /dev/rtc0

/dev/raw:
rawctl
dracut:/#

Why there is not any /dev/ram*? Or again do I need a /dev/ram0? Any hint is appreciated.
Comment 5 Sven Vermeulen (RETIRED) gentoo-dev 2012-03-25 17:51:32 UTC
Amadeusz, adding you as one of the dracut maintainers. Does the above issues ring a bell?
Comment 6 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-03-25 18:16:26 UTC
(In reply to comment #4)
> I: *** Including module: dm ***
> ln: failed to create symbolic link
> `/var/tmp/initramfs.gLdCnU//usr/lib64/libdevmapper-event.so': No such file or directory
> ln: failed to create symbolic link
> `/var/tmp/initramfs.gLdCnU//usr/lib64/libdevmapper-event.so': No such file or directory

This is already reported bug I need to fix.  I'll try today/tomorrow.


> title=Gentoo Linux 3.3.0_dvbm_vesa_without_initrd vga=872 (1680x1050-77) with initramfs
> root (hd0,2)
> kernel (hd0,2)/vmlinuz-3.3.0_dvbm_vesa_without_initrd root=/dev/ram0 real_root=/dev/sda6 i915.i915_enable_rc6=1 video=vesa:ywrap,mtrr:3 vga=872
> initrd /boot/initramfs-3.3.0-gentoo.img
>
> Is the configuration for booting with an dracut initramfs correct? Do I need
> this option root=/dev/ram0? Booting without initramfs works perfectly.

It's not correct.  Please read man dracut.cmdline (in older versions it's
dracut.kernel) which explains what and how args should be specified at kernel
command line.  In this case you need to remove real_root=/dev/sda6 and replace
root=/dev/ram0 with root=/dev/sda6.  Dracut is smarter than Genkernel. ;-)


> Booting with initramfs fails with:
> 
> [  ] udevd[1236]: starting version 171
> [  ] udevadm used greatest stack depth: 5648 bytes left
> [  ] ata_id used greatest stack depth: 4856 bytes left
> [  ] dracut: Scanning devices sda7 for LVM volume groups
> [  ] dracut: Reading all physical volume(s). This make take a while...
> [  ] dracut: Found volume group "vg1" using metadata type lvm
> [  ] dracut: 11 logical volume(s) in volume group 'vg1" now active
> [  ] dracut: Scanning devices sda7 for LVM volume groups
> [  ] dracut: Reading all physical volume(s). This make take a while...
> [  ] dracut: Found volume group "vg1" using metadata type lvm
> [  ] dracut: Partial mode. Incomplete logical volumes will be processed.
> [  ] dracut: 11 logical volume(s) in volume group 'vg1" now active
> 
> [40.453564] dracut Warning: Unable to process initqueue
>  dracut Warning: Unable to process initqueue
> [40.483326] dracut Warning: /dev/ram0 does not exist
>  dracut Warning: /dev/ram0 does not exist

Dracut has detected your LVM volumes correctly, but failed to switch to
/dev/ram0 which is probably not your target rootfs. :-)  Btw, from what I have
read you don't even need lvm module, because your rootfs resides on plain
partition.
Comment 7 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-03-25 18:23:27 UTC
(In reply to comment #5)
> Amadeusz, adding you as one of the dracut maintainers. Does the above issues
> ring a bell?

Yes, I have been already bothered by various people. Documentation on this is really required. :-)

Quick hints:

For working intramfsless installations root= remains the same and only path to generated initrd is required. The dracut can be emerged without any modules specified by DRACUT_MODULES use expand nor it requires any other useflags enabled. Initramfs should be generated as follows:

dracut -H '' <$(uname -r) of target kernel>

or

dracut -H --no-kernel

if all modules all built into kernel.

If openrc is old enough it may fail on trying to fsck /usr device, so it needs to be set to 0 0 in fstab. Dracut does fsck of "/" and "/usr" so check in openrc is not required.
Comment 8 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-03-25 18:26:51 UTC
This is example of successful output:

[    2.097491] dracut: Checking ext3: /dev/sda5
[    2.099813] dracut: issuing e2fsck -a -f  /dev/sda5
[   10.641541] dracut: /dev/sda5: 10315/655360 files (2.1% non-contiguous), 257465/2620595 blocks
[   10.644266] dracut: Remounting /dev/sda5 with -o noatime,ro
[   10.708243] dracut: Mounted root filesystem /dev/sda5
[   10.749509] dracut: Mounting /usr
[   10.926392] dracut: Switching root
Comment 9 Juergen Rose 2012-03-25 21:23:23 UTC
Now I get the same result, if boot with an initramfs created with sys-kernel/genkernel-3.4.27:

>> Hint: Use parameter scandelay[=seconds] if you need waiting here
>> Activating mdev
>> Mounting /dev/sda3 as root
>> Mounting /dev/vg0/usr as /usr: mount -t ext4 -o noatime,ro /dev/vg0/usr /newroot/usr failed: No such file or directory
!! Unable to mount /dev/vg0/usr for /usr
>> Booting (initramfs)...
INIT: version 2.88 booting
[...] init-early.sh uses greatest stack depth: 4624 bytes left



Am I right, that booting will stop here, if I update to >=udev-181?
Comment 10 Sven Vermeulen (RETIRED) gentoo-dev 2012-03-29 18:30:42 UTC
Initial draft for initramfs-guide on http://dev.gentoo.org/~swift/docs/previews/initramfs-guide.xml (working document)
Comment 11 Amadeusz Żołnowski (RETIRED) gentoo-dev 2012-03-30 07:47:45 UTC
Sven, I've read dracut section. It's ok. Just add that users should look for help in following manpages:

dracut(8) - create initial ramdisk images for preloading modules
dracut.cmdline(7) - dracut kernel command line options
Comment 12 Mathieu Z 2012-03-30 14:14:11 UTC
(In reply to comment #9)
> Now I get the same result, if boot with an initramfs created with
> sys-kernel/genkernel-3.4.27:
> 
> >> Hint: Use parameter scandelay[=seconds] if you need waiting here
> >> Activating mdev
> >> Mounting /dev/sda3 as root
> >> Mounting /dev/vg0/usr as /usr: mount -t ext4 -o noatime,ro /dev/vg0/usr /newroot/usr failed: No such file or directory
> !! Unable to mount /dev/vg0/usr for /usr
> >> Booting (initramfs)...
> INIT: version 2.88 booting
> [...] init-early.sh uses greatest stack depth: 4624 bytes left
> 
> 
> 
> Am I right, that booting will stop here, if I update to >=udev-181?

I think you have to use /dev/mapper/vg0-usr instead of /dev/vg0/usr in an initramfs for reason that I am not entirely clear on.
Comment 13 Juergen Rose 2012-03-30 20:44:22 UTC
I tried once more to boot a system with an initial ramdisk created with dracut (now with dracut-017-r3). I recompiled a 3.2.11-gentoo kernel. Dracut was emerged with the following options:

root@wildcat:/root(20)# emerge -pv1 dracut
...
Calculating dependencies... done!
[ebuild   R    ] sys-kernel/dracut-017-r3  USE="device-mapper -debug -net (-selinux)" DRACUT_MODULES="caps lvm syslog -biosdevname -btrfs -crypt -crypt-gpg -dmraid -dmsquash-live -gensplash -iscsi -livenet -mdraid -multipath -nbd -nfs -plymouth -ssh-client" 0 kB

In /etc/dracut.conf there are the settings:

root@wildcat:/root(21)# grep -e "^[^#].*"  /etc/dracut.conf
logfile=/var/log/dracut.log
fileloglvl=6
dracutmodules+="caps dm lvm"
add_dracutmodules+="ext2 ext3 ext4 reiserfs xfs"
filesystems+="ext2 ext3 ext4 reiserfs xfs"
mdadmconf="yes"
lvmconf="yes"

Running dracut, it says:
root@wildcat:/root(23)# dracut --force
I: *** Including module: caps ***
I: *** Including module: dm ***
I: Skipping udev rule: 64-device-mapper.rules
I: *** Including module: lvm ***
I: Skipping udev rule: 64-device-mapper.rules
I: *** Including module: rootfs-block ***
I: *** Including module: fs-lib ***
I: Skipping program jfs_fsck as it cannot be found and is flagged to be optional
I: Skipping program btrfsck as it cannot be found and is flagged to be optional
I: *** Including modules done ***
I: Wrote /boot/initramfs-3.2.11-gentoo.img:
I: -rw-r--r-- 1 root root 3837754 Mar 30 22:04 /boot/initramfs-3.2.11-gentoo.img


In /boot/grub/grub.conf I have three configurations with initramfs-3.2.11-gentoo.img:

root@wildcat:/root(26)# grep -u3 initramfs-3.2.11-gentoo.img /boot/grub/grub.conf
title linux-3.2.11-gentoo with initrd by dracut
root (hd0,0)
kernel /boot/vmlinuz-3.2.11-gentoo_initrd root=/dev/sda3
initrd /boot/initramfs-3.2.11-gentoo.img rootfstype=ext4 rd.info

title linux-3.2.11-gentoo with new initrd by dracut
root (hd0,0)
kernel /boot/vmlinuz-3.2.11-gentoo root=/dev/sda3
initrd /boot/initramfs-3.2.11-gentoo.img rootfstype=ext4 rd.info

title linux-3.2.11-gentoo with new initrd by dracut, dolvm
root (hd0,0)
kernel /boot/vmlinuz-3.2.11-gentoo root=/dev/sda3 dolvm
initrd /boot/initramfs-3.2.11-gentoo.img rootfstype=ext4 rd.info


If I try to boot the last two configuration, I get the following messages:

* Waiting for uevents to processed
failed to execute '/pvscan' '/pvscan --cache --major 8 --minor 4': No such file or directory
...
* Failed to start LVM
* checking local filesstems
No such file or directory while trying to open /dev/vg0/usr
...
* Operational error

I can login. And lvscan shows that all logical volumes are active, so 'mount -a' works now and all volumes are after this mounted. If I then start manually some service as /etc/init.d/dbus, /etc/init.d/nfs, /etc/init.d/sshd etc., I have a working system.

I not even know if the initial ramdisk has been used. I find neither /tmp/dracut.log nor /var/log/dracut.log. Also dmesg does not give any hint for dracut.


If I generate the initial ramdisk with genkernel and boot the following grub configuration:

title kernel-genkernel-x86_64-3.3.0-gentoo with initrd by genkernel
root (hd0,0)
kernel /boot/kernel-genkernel-x86_64-3.3.0-gentoo real_root=/dev/sda3 dolvm
initrd /boot/initramfs-genkernel-x86_64-3.3.0-gentoo rootfstype=ext4 rd.info

I still get the message:

* Waiting for uevents to processed
udevd[3645] failed to execute '/pvscan' '/pvscan --cache --major 8 --minor 4': No such file or directory
* Setting up Logical Volume Manager
* Failed to setup
 ERROR: lvm failed to start
...
/sbin/fsck.xfs XFS file system
* Operational error

* Checking local Filesystems
/dev/sda3 clear
/dev/sda1 clear
/dev/mapper/vg0-usr is mounted,  e2fsck cannot continue, aborting

Then I can login and all volumes are mounted. So as a summary I have serious problems with the dracut initramfs and minor problems with the genkernel initramfs. How should I proceed?

To Comment 12 switching from /dev/vg0/usr to /dev/mapper/vg0-usr does not changes anything.
Comment 14 Sven Vermeulen (RETIRED) gentoo-dev 2012-03-31 13:08:12 UTC
We might want to split out bugreports regarding dracut usability from this bug (whose purpose is to have a documentation/guide at the users' disposal).

http://dev.gentoo.org/~swift/docs/previews/initramfs-guide.xml has paragraph on dracut manual pages.
Comment 15 Juergen Rose 2012-04-01 22:44:08 UTC
I created a seperate bug (https://bugs.gentoo.org/show_bug.cgi?id=410481) for the dracut problems.
Comment 16 Sven Vermeulen (RETIRED) gentoo-dev 2012-04-05 19:42:25 UTC
Migration guide committed to CVS.
Comment 17 Sven Vermeulen (RETIRED) gentoo-dev 2012-04-05 19:43:00 UTC
Of course I mean initramfs-guide.
Comment 18 Sebastian Pipping gentoo-dev 2012-04-05 20:43:58 UTC
(In reply to comment #16)
> Migration guide committed to CVS.

(In reply to comment #17)
> Of course I mean initramfs-guide.

Link?
Comment 19 Sven Vermeulen (RETIRED) gentoo-dev 2012-04-05 21:37:53 UTC
http://www.gentoo.org/doc/en/initramfs-guide.xml