This should be fixed by: https://github.com/dracutdevs/dracut/blob/master/modules.d/95nfs/module-setup.sh#L28 right? On 15.06.2016 12:01, Xunlei Pang wrote: > 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 > -- 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