Hi Harald, On 2016/06/15 at 17:40, Xunlei Pang wrote: > There are scenarios that support fstype target not mounted > beforehand, kdump can utilize this feature to avoid imposing > severe overload on the shared nfs server when thousands of > diskless clients with nfs kdumping boot and trigger kdump > initramfs rebuild synchronously. > > Because target is not mounted beforehand, some of the kernel > modules will fail to be installed in hostonly mode. Dracut > actually can support this by instmods all "host_fs_types" with > hostonly unset in 90kernel-modules/module-setup.sh installkernel(). > > This works properly for most host fstypes(ext[234]/xfs, etc), but > that's not the case for nfs. > > From nfs manpage, we can clearly see: > "The fstype field contains "nfs". Use of the "nfs4" fstype in > /etc/fstab is deprecated." > > It means "nfs" specified can be actually mounted as "nfs[3-4]", so > for these cases, the current 90kernel-modules implementation only > installs ko modules for "nfs"(nfs.ko, etc), lacking nfsv[3-4].ko, > so it cannot work properly. In order to address the issue, we should > install all the possbile kernel modules for "nfs" fstype: > "nfs sunrpc ipv6 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files". The list is directly copied from "95nfs/module_setup.sh installkernel()", I am not sure if it is enough for all the nfs cases. I also tried to use insmods "=fs/nfs" instead, it installed more kernel modules compared with the list, for example installed extra: fs/nfs/blocklayout/blocklayoutdriver.ko fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko fs/nfs/objlayout/objlayoutdriver.ko I don't know if these kernel modules are necessary, if so I can change to use "=fs/nfs" instead. Regards, Xunlei > > Additionally, we need a special remapping for "nfs[3-4]" deprecated > cases, for example, we should map "nfs4" to "nfsv4.ko" not "nfs4.ko". > > Signed-off-by: Xunlei Pang <xlpang@xxxxxxxxxx> > --- > modules.d/90kernel-modules/module-setup.sh | 20 +++++++++++++++++++- > 1 file changed, 19 insertions(+), 1 deletion(-) > > diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh > index 7904c02..1f57ec7 100755 > --- a/modules.d/90kernel-modules/module-setup.sh > +++ b/modules.d/90kernel-modules/module-setup.sh > @@ -44,7 +44,25 @@ installkernel() { > dracut_instmods -o -P ".*/(kernel/fs/nfs|kernel/fs/nfsd|kernel/fs/lockd)/.*" '=fs' > fi > else > - hostonly='' instmods "${host_fs_types[@]}" > + for i in "${host_fs_types[@]}"; do > + if [[ $i = nfs ]]; then > + # nfs manpage says: > + # "The fstype field contains "nfs". Use of the "nfs4" fstype in > + # /etc/fstab is deprecated." > + # > + # It means "nfs" can be actually mounted as "nfs4", so for "nfs" > + # host fstype we better install all the possible kernel modules, > + # this is useful for kdump "nfs" dumping not mounted beforehand. > + # > + # The list is copied from "95nfs/module_setup.sh installkernel()". > + i="nfs sunrpc ipv6 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files" > + elif [[ $i = nfs[3-4] ]]; then > + # Deprecated cases, we provide support, but need a name mapping: > + # For example, should map "nfs4" to use "nfsv4.ko" not "nfs4.ko". > + i=${i/nfs/nfsv} > + fi > + hostonly='' instmods $i > + done > fi > fi > : -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html