lvm/mdraid: Fix LVM on MD activation

The 69-dm-lvm-metad.rules set some udev env. variables that makes it
possible to detect the right time to activate LVM on MD. The MD is very
similar to DM during activation - it's usable only after proper device
activation - the CHANGE event. We need to make a difference between a
CHANGE event that comes from this activation and CHANGE event that is
the outcome of the WATCH udev rule (otherwise we'd end up with LVM
activation done on each CHANGE event - which is wrong).

So we need the udev databse to be persistent during pivot to root fs
even for MD devices.
bcache: removed, it's in the upstream bcache-tools package
dracut-functions.sh:inst_rules() do not install rules in CWD
dracut.spec: conflict with old bcache-tools
mdraid/module-setup.sh: install configs from /etc/mdadm.conf.d

/etc/mdadm.conf.d directory is supported since mdadm-3.3
mdraid/module-setup.sh: fixes for mdadm-3.2.6+

mdadm-3.2.6+:
Incremental assembly rule contains "--offroot" arg. Update
regexp to catch this variant.

mdadm-3.3+:
Rules was splitted into two files: 63-md-raid-arrays.rules
and 64-md-raid-assembly.rules. Install them both and edit
the latter.
mkinitrd-dracut.sh: Introduce -i -k parameters

In SUSE, one can pass a list of kernel files via -k parameter.
For each an initrd is generated as passed via -i parameters.

Make the dracut mkinitrd wrapper compatible to those.
For now only one kernel file and initrd target can be specified.
This will get enhanced with a follow-up patch.

Signed-off-by: Thomas Renninger <trenn@suse.de>
mkinitrd-dracut.sh: Enhance param parsing: Allow multiple arguments per param

Currently --with parameter had to be passed as: --with="mod1 mod2".
Now one can pass: --with "mod1 mod2" or even --with mod1 mod2.

Signed-off-by: Thomas Renninger <trenn@suse.de>
mkinitrd-dracut.sh: Implement --quiet|-q option

Dracut is rather verbose. This optional parameter is to limit the output
to the essential: For each generated initrd show the kernel, target and
possibly additional options passed to dracut.

Signed-off-by: Thomas Renninger <trenn@suse.de>
mkinitrd-dracut.sh: Allow mkinitrd call without passing any parameters

Before this gave a "usage" error.
Now boot_dir (by default /boot) is scanned for available kernels and sane
initrd default targets get defined and the corresponding initramfs files
are generated.

Signed-off-by: Thomas Renninger <trenn@suse.de>
mkinitrd-dracut.sh: Also allow -d to specify the root_fs and -s dummy

-d is the SUSE mkinitrd version option to pass the rootfs.
-s is to enable splash which may not be needed, but some callers rely on it,
not to return an error.

Make this wrapper compatible to it.

Signed-off-by: Thomas Renninger <trenn@suse.de>
mkinitrd-dracut.sh: Build host images for default_kernel_images and -i/-k paths

default_kernel_images and -i/-k paths are new (SuSE) code paths and
would have resulted in usage errors before.

There we want to build host only images for faster building and
smaller images.
Also force creation (overriding) of initrd images in these code paths.

Signed-off-by: Thomas Renninger <trenn@suse.de>
mkinitrd-dracut.sh: do not "--keep" files for --verbose