更新:5 (20171209)
更新:5 (20171210)
mount -t nfs4 [SERVER IP]:/archlinux /mnt
作品。ss -ntp | grep 2049
客户端在 systemd 开始之前建立与服务器的连接。- NSF4 id 映射器只能与 Kerberos 一起使用吗?
问题
我正在尝试设置无盘节点/工作站/系统。操作系统 (4.13.12-1-ARCH) 安装在服务器上/srv/archlinux
。之后成功从 GRUB 网络引导到 NFSv4,systemd 启动但在多个阶段失败,例如:
- 无法挂载内核配置文件系统。
- 无法挂载内核调试文件系统。
- 挂载大页文件系统失败
- 无法启动加载/保存随机种子。
- 无法挂载/tmp。
- 无法启动重建期刊目录。
- 然后结束于
Not tainted 4.13.12-1-ARCH #1...
或者,
- 无法安装 POSIX 消息队列文件系统。
- 无法启动重新安装根和内核文件系统。
- 无法挂载大页文件系统。
- 无法挂载内核调试文件系统。
- 无法挂载内核配置文件系统。
- 然后结束于
Not tainted 4.13.12-1-ARCH #1...
我怀疑故障是由 NFSv4 或本地网络配置不正确引起的。
rpc.idmapd
/etc/idmapd.conf
[General]
Verbosity = 7
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nobody
[Translation]
Method = nnswitch
/etc/exports
(printed using # exportfs -v)
/srv <world>(rw,sync,wdelay,hide,no_subtree_check,fsid=0,sec=sys,no_root_squash,no_all_squash)
/srv/archlinux <world>(rw,sync,wdelay,hide,no_subtree_check,sec=sys,no_root_squash,no_all_squash)
(Exposed to "world" for debugging purposes)
rpc.idmapd -fvvv
在启动过程中单独运行tty
会记录以下内容:
rpc.idmapd: libnfsidmap: using domain: localdomain
rpc.idmapd: libnfsidmap: Realms list: 'LOCALDOMAIN'
rpc.idmapd: libnfsidmap: processing 'Method' list
rpc.idmapd: libnfsidmap: loaded plugin /usr/lib/libnfsidmap/nsswitch.so for method nsswitch
rpc.idmapd: Expiration time is 600 seconds.
rpc.idmapd: Opened /proc/net/rpc/nfs4.nametoid/channel
rpc.idmapd: Opened /proc/net/rpc/nfs4.idtoname/channel
rpc.idmapd: nfsdcb: authbuf=* authtype=user
rpc.idmapd: nfs4_uid_to_name: calling nsswitch->uid_to_name
rpc.idmapd: nfs4_uid_to_name: nsswitch->uid_to_name returned 0
rpc.idmapd: nfs4_uid_to_name: final return value is 0
rpc.idmapd: Server : (user) id "0" -> name "root@localdomain"
如果exportfs
sec=sys
,则继续如下:
rpc.idmapd: nfsdch: authbuf=* authtype=user
rpc.idmapd: nfs4_name_to_uid: calling nsswitch->name_to_uid
rpc.idmapd: nss_getpwnam: name '0' domain 'localdomain': resulting localname '(null)'
rpc.idmapd: nss_getpwnam: name '0' does not map into domain 'localdomain'
rpc.idmapd: nfs4_name_to_uid: nsswitch->name_to_uid returned -22
rpc.idmapd: nfs4_name_to_uid: final return value is -22
rpc.idmapd: Server : (user) name "0" -> id "99"
(stops here)
+(20171209) 确保/etc/hostname
客户端的 被设置为client2
(废话)后,如果exportfs
sec=none
或者 sec=sys
,它继续如下:
rpc.idmapd: nfsdch: authbuf=* authtype=group
rpc.idmapd: nfs4_gid_to_name: calling nsswitch->gid_to_name
rpc.idmapd: nfs4_gid_to_name: nsswitch->gid_to_name returned 0
rpc.idmapd: nfs4_gid_to_name: final return value is 0
rpc.idmapd: Server : (group) id "190" -> name "systemd-journal@localdomain"
rpc.idmapd: nfsdch: authbuf=* authtype=user
rpc.idmapd: nfs4_name_to_uid: calling nsswitch->name_to_uid
rpc.idmapd: nss_getpwnam: name '0' domain 'localdomain': resulting localname '(null)'
rpc.idmapd: nss_getpwnam: name '0' does not map into domain 'localdomain'
rpc.idmapd: nfs4_name_to_uid: nsswitch->name_to_uid returned -22
rpc.idmapd: nfs4_name_to_uid: final return value is -22
rpc.idmapd: Server : (user) name "0" -> id "99"
(stops here)
如果我将方法从更改nsswitch
为static
(NFS 中的 UID 映射)
/etc/idmapd.conf
...
[Translation]
Method = static
[Static]
root@localdomain = root
rpc.idmapd -fvvv
启动期间单独记录tty
以下内容:
rpc.idmapd: libnfsidmap: using domain: localdomain
rpc.idmapd: libnfsidmap: Realms list: 'LOCALDOMAIN'
rpc.idmapd: libnfsidmap: processing 'Method' list
rpc.idmapd: static_getpwnam: name 'root@localdomain' mapped to 'root'
rpc.idmapd: static_getpwnam: group 'root@localdomain' mapped to ' root'
rpc.idmapd: libnfsidmap: loaded plugin /usr/lib/libnfsidmap/static.so for method static
rpc.idmapd: Expiration time is 600 seconds.
rpc.idmapd: Opened /proc/net/rpc/nfs4.nametoid/channel
rpc.idmapd: Opened /proc/net/rpc/nfs4.idtoname/channel
rpc.idmapd: nfsdcb: authbuf=* authtype=user
rpc.idmapd: nfs4_uid_to_name: calling static->uid_to_name
rpc.idmapd: nfs4_uid_to_name: static->uid_to_name returned 0
rpc.idmapd: nfs4_uid_to_name: final return value is 0
rpc.idmapd: Server : (user) id "0" -> name "root@localdomain"
如果exportfs
sec=sys
,则继续如下:
rpc.idmapd: nfsdch: authbuf=* authtype=user
rpc.idmapd: nfs4_name_to_uid: calling static->name_to_uid
rpc.idmapd: nfs4_name_to_uid: static->name_to_uid returned -2
rpc.idmapd: nfs4_name_to_uid: final return value is -2
rpc.idmapd: Server : (user) name "0" -> id "99"
(stops here)
如果exportfs
sec=none
,则继续如下:
rpc.idmapd: nfsdch: authbuf=* authtype=group
rpc.idmapd: nfs4_gid_to_name: calling static->gid_to_name
rpc.idmapd: nfs4_gid_to_name: static->gid_to_name returned -2
rpc.idmapd: nfs4_gid_to_name: final return value is -2
rpc.idmapd: Server : (group) id "190" -> name "nobody"
rpc.idmapd: nfsdch: authbuf=* authtype=user
rpc.idmapd: nfs4_name_to_uid: calling static->name_to_uid
rpc.idmapd: nfs4_name_to_uid: static->name_to_uid returned -2
rpc.idmapd: nfs4_name_to_uid: final return value is -2
rpc.idmapd: Server : (user) name "0" -> id "99"
(stops here)
用户ID映射的类似问题:
- NFSv4 用户映射
- NFS 用户映射
- 将本地用户的UID和GID映射到挂载的NFS共享
- 还有很多很多...通常与从 NFSv3 到 NFSv4 的切换相关,很少与网络启动相关。
故障排除
- 无防火墙
- 没有 Kerberos、LDAP 等。
- 没有 SELinux
- 该用户
root
同时存在于 SERVER 和 CLIENT 上,并且具有相同的密码。
服务器
我可以在服务器上识别出 NFSv4 的所有其他相关配置文件。
/etc/nsswitch.conf
passwd: compat mymachines systemd
group: compat mymachines systemd
shadow: compat
publickey: files
hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname
networks: files
protocols: files
services: files
ethers: files
rpc: files
netgroup: files
/etc/nfs.conf
(all settings commented out)
/etc/conf.d/nfs-common.conf
(all settings commented out)
网络配置
SERVER 主机名是server
并且有 3 个网络设备 (nd[1-3])。网关default via 192.168.0.1 nd1
。
/etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 ip6.localhost localhost
192.168.0.101 nd1.localdomain server servernd1
192.168.1.101 nd2.localdomain server servernd2
192.168.2.101 nd3.localdomain server servernd2
192.168.1.102 client1.localdomain client1
192.168.2.102 client2.localdomain client2
/etc/resolveconf.conf
name_servers=192.168.0.1
# hostname -f
# nd1.localdomain
# hostname -i
192.168.0.101 192.168.1.101 192.168.2.101
# getent hosts IP -> the corresponding line in /etc/hosts
# getent ahosts HOSTNAME -> the corresponding line in /etc/hosts
# ping -c 3 server.localdomain -> 0% packet loss
# id -u root -> 0
# id -un 0 -> root
Display the system's effective NFSv4 domain name on stdout.
# nfsidmap -d -> localdomain
Display on stdout all keys currently in the keyring used to cache ID mapping results. These keys are visible only to the superuser.
# nfsidmap -l -> nfsidmap: '.id_resolver' keyring was not found.
客户
/etc/hostname +(20171209)
client2
/etc/hosts
(exactly the same as the hosts file on the server)
/etc/resolveconf.conf
name_servers=192.168.0.1
/etc/idmapd.conf
(exactly the same as the idmapd.conf file on the server)
/etc/fstab
# sys=sec or sys=none to correspond to server export settings.
/dev/nfs / nfs rw,hard,rsize=9151,sec=sys,clientaddr=192.168.2.102 0 0
devtmpfs /dev devtmpfs defaults
proc /proc proc defaults
none /run tmpfs defaults
sys /sys sysfs defaults
run /run tmpfs defaults
tmp /tmp tmpfs defaults
它fstab
是通过使用 比较服务器上已安装的目录来定义的findmnt -A
。
net_nfs4
- +(20171210) 服务器和客户端上的 NFS 版本
cat /proc/fs/nfsd/versions -> -2 +3 +4 +4.1 +4.2
- 在服务器和客户端上
cat /sys/module/nfsd/parameters/nfs4_disable_idmapping -> N
。 - 在服务器上
echo "options nfsd nfs4_disable_idmapping=0" > /etc/modprobe.d/nfsd.conf
。 - 在客户端上,该文件
/sys/module/nfs/parameters/nfs4_disable_idmapping
不存在,并且不确定如何手动创建它,因为它/sys
是只读的。 - +(20171210) 在客户端上
echo "options nfs nfs4_disable_idmapping=0" > /etc/modprobe.d/nfs.conf
。
客户端 IP 是192.168.2.102/24
. CLIENT 网络设备连接到 SERVER nd2 192.168.2.101/24
(主机名:servernd2)。
开机时的网络信息:
:: running early hook [udev]
starting version 235
:: running hook [udev]
:: Triggering uevents...
:: running hook [net_nfs4]
IP-Config: eth0 hardware address [CLIENT NETWORK DEVICE MAC] mtu 1500 DHCP
hostname client2 IP-Config: eth0 guessed broadcast address 192.168.2.255
IP-Config: eth0 complete (from 192.168.0.101):
address: 192.168.2.102 broadcast: 192.168.2.255 netmask: 255.255.255.0
gateway: 192.168.2.101 dns0 : 192.168.0.1 dns1 : 0.0.0.0
host : client2
domain : localdomain
rootserver: 192.168.0.101 rootpath: /srv/archlinux
filename : /netboot/grub/i386-pc/core.0
NFS-Mount: 192.168.2.101:/archlinux
Waiting 10 seconds for device /dev/nfs ...
(systemd takes over from here)
为什么会出现 NSFv4 错误?
Server : (group) id "190" -> name "nobody"
使用 NFSv4,情况发生了变化:用户通过用户名进行映射,用户名和用户 ID 之间的映射由称为“ID 映射守护进程”(idmapd) 的进程处理。特别是,NFSv4 客户端和服务器应使用相同的域以使映射正常工作,否则请求将被映射到匿名用户/组。 --尝试 NFSv4(在 Linux 和 Solaris 上)-- 2012 年 3 月 15 日 - 13:03 / bronto
在理想的情况下,请求客户端的用户和组将确定返回数据的权限。我们并不生活在一个理想的世界中。两个现实世界的问题介入:
- 您可能不信任对服务器文件具有 root 访问权限的客户端 root 用户。
- 客户端和服务器上的相同用户名可能具有不同的数字 ID
问题 1 从概念上来说很简单。 John Q. 程序员获得了一台具有 root 访问权限的测试机器。这绝不意味着 John Q. Programmer 应该能够更改服务器上 root 拥有的文件。因此,NFS 提供 root 压缩,该功能将 uid 0(root)映射到匿名(nfsnobody)uid,默认为 -2(16 位数字为 65534)。 --NFS:概述和陷阱 -- 版权所有 (C) 2003,作者:Steve Litt
+(20171209)rpc.idmapd: nss_getpwnam: name '0' domain 'localdomain': resulting localname '(null)'
根据Steve Dickson 在对 Red Hat Bugzilla – Bug 715430 报告的评论中 (2011-08-12 16:01:55 EDT)
[error] 语句解释了问题。本地计算机上的 DNS 未设置(或返回 NULL),并且 /etc/idmapd.conf 中的 Domain= 变量未设置。
nss_getpwnam: name '0' does not map into domain
在 Debian 邮件列表中,Jonas Meurer 和 Christian Seiler 之间关于“Kerberos 安全 NFSv4”的电子邮件通信 (20150722)该错误已详细解释。我对讨论的总结:
当 NFS 客户端发送nss_getpwnam: name '8' domain 'freesources.org': resulting localname '(null)'
在某些情况下,NFS 客户端仅发送转换为字符串的 uid,而不是发送正确转换的 NFS 用户名,服务器会拒绝该用户名。
客户端应该发送nss_getpwnam: name '[email protected]' domain 'freesources.org': resulting localname 'mail'
在这里你可以看到 NFS 客户端传输的所有者名称是“[电子邮件受保护]'(而不仅仅是'8'),因此它包含一个@;nss_getpwname 可以看到域名匹配,然后将它剥离,得到一个用户名'mail',它在 /etc/passwd 中查找该用户名,返回用户 ID(在本例中为 8,因为它在客户端和服务器上是相同的),服务器非常满意。
那么为什么客户端会发送错误的用户名呢? ...每隔一段时间,idmapping 就会失败,因此内核只会发送一个数字。但该数字将导致 chown 命令失败,因为服务器不会将其转换回来。
简短回答:我不知道。
更长的答案:...
如果我正确理解较长的答案,则可能会出现问题,因为 NFS 客户端依赖于“内核的密钥缓存”。对于 NFS 服务器来说,这永远不会成为问题,因为从不使用“内核密钥缓存”。
尽管如此,
由于您仅通过 /etc/passwd 使用常规 nsswitch,因此 nss_getpwnam 应该绝不在你的情况下会失败,除非你同时对 /etc/passwd 做了一些奇怪的事情。
答案还提到了 idmapd 的替代方法;nfsidmap
,虽然阅读了man
我不太明白它将如何取代idmapd
。
+(20171209)nss_getpwnam: name '[email protected]' does not map into domain 'localdomain'
此错误消息似乎不会出现在我身上,但是我包含了来自的答案SUSE 的支持知识库 -- 2013 年 12 月 10 日 修改日期:2017 年 10 月 12 日 --因为原因的描述以及提议的补救措施与其他发现的讨论形成鲜明对比。
NFSv4 处理用户身份的方式与 NFSv3 不同。在 v3 中,nfs 客户端只需在 chown(和其他请求)中传递 UID 号,nfs 服务器就会接受该值(即使 nfs 服务器不知道具有该 UID 号的帐户)。然而,v4 被设计为以 @ 的形式传递身份。为了正确运行,通常需要 idmapd(id 映射守护进程)在客户端和服务器上处于活动状态,并且每个服务器都将自己视为同一 id 映射域的一部分。
类似于上面记录的 chown 失败或 idmapd 错误通常是由以下原因造成的:
- 用户名对于客户端来说是已知的,但对于服务器来说是未知的,或者
- idmapd 域名在客户端上的设置与在服务器上的设置不同。
因此,可以通过确保 nfs 服务器和客户端配置相同的 idmapd 域名 (/etc/idmapd.conf) 并且都了解相关的用户名/帐户来解决此问题。
然而,确保双方具有相同的用户帐户知识通常并不方便,特别是当 nfs 服务器是文件管理器时。 NFS 社区已经认识到,NFSv4 的 idmapd 功能通常会带来更多麻烦,因此需要采取一些步骤和修改,以允许 NFSv3 行为甚至在 NFSv4 下也能工作。
建议的补救措施是禁用 idmapd。
nfs.nfs4_disable_idmapping=1
+(20171209) Wireshark
分析 Wireshark 日志,它相当广泛,但开头如下:
[IP CLIENT] -> [IP SERVER] NFS 226 V4 Call ACCESS FH: [HEX VALUE], [Check: RD LU MD XT DL]
[IP SERVER] -> [IP CLIENT] NFS 238 V4 Reply (Call In 34) ACCESS, [Allowed: RD LU MD XT DL]
[IP CLIENT] -> [IP SERVER] NFS 246 V4 Call LOOKUP DH: [HEX VALUE]/archlinux
其中, , , , , , , , , , ,[A HEX VALUE]/[PATH]
可以看出 类似的模式。/sbin
/usr
/bin
/init
/lib
/systemd
/dev
/proc
/sys
/run
/
/lib64
当客户端请求时,/Id-linux-x86-64.so.2
第一个错误开始出现:
[IP CLIENT] -> [IP SERVER] NFS 342 V4 Call OPEN DH: [HEX VALUE]/Id-linux-x86-64.so.2
[SERVER IP] -> [CLIENT IP] NFS 166 V4 Reply (Call In 124) OPEN Status: NFS4ERR_SYMLINK
该模式或多或少会重复出现更频繁的错误,例如,LOOKUP Status;
报告OPEN Status:
。NFS4ERR_NOENT
有趣的是,它是在日志的最后,首先也是唯一引用用户权限的地方,
[SERVER IP] -> [CLIENT IP] NFS 182 V4 Reply (Call In 9562) SETATTR Status: NFS4ERR_BADOWNER
RFC
根据
- RFC7530(网络文件系统 (NFS) 第 4 版协议,201503,建议标准)-- 更新者RFC7931
- RFC5661(网络文件系统 (NFS) 版本 4 次要版本 1 协议,201001,建议标准)-- 更新者RFC8178
- RFC7862(网络文件系统 (NFS) 版本 4 次要版本 2 协议,201001,建议标准)-- 更新者RFC8178——参见[RFC5661]。
NFS4ERR_BADOWNER(错误代码 10039)
当 ACL 属性值中的 Owner 或 Owner_group 属性值或 ACE 的 who 字段无法转换为本地表示时,将返回此错误。
规范在第 5.9 节中讨论。解释所有者和所有者组,但我不确定要引用什么相关内容。
NFS4ERR_SYMLINK(错误代码 10029)
当当前操作不允许符号链接作为目标时,当前文件句柄指定符号链接。
NFS4ERR_NOENT(错误代码 2)
这表明没有这样的文件或目录。指定名称引用的文件系统对象不存在。
然而,该错误是可以预料的......
假定当前文件句柄引用常规目录和命名属性目录。 LOOKUPP 将其父目录的文件句柄指定为当前文件句柄。如果没有父目录,则必须返回 NFS4ERR_NOENT 错误。因此,当当前文件句柄位于服务器文件树的根部或顶部时,服务器将返回 NFS4ERR_NOENT。
+(20171210)mount -t nfs4 [SERVER IP]:/archlinux /mnt
在客户端计算机上,使用 Archlinux“LiveUSB”,我能够挂载网络驱动器,通过 SERVER 互联网连接下载最新的内核(4.14-4-1-ARCH),并在[SERVER IP]/archlinux
.
安装期间rpc.idmapd -fvvv
表明用户名映射成功,例如,
rpc.idmapd: Server : (user) id "0" -> name "root@localdomain"
rpc.idmapd: Server : (group) id "99" -> name "nobody@localdomain"
... -> name "tty@localdomain"
... -> name "systemd-journal-upload@localdomain"
... -> name rpc@localdomain
... -> name systemd-journal@localdomain
... -> name utmp@localdomain
结果genfstab
也不同:
[SERVER IP]:/archlinux / nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,times=600,retrans=2,sec=sys,clientaddr=[CLIENT IP],local_lock=none,addr=[SERVER IP] 0 0
然而,重新启动后systemd
再次失败,并出现与帖子开头所述相同的故障。
+(20171210) 服务器上的远程目录是否挂载到/new_root
?
该mkinitcpio
脚本使用该变量mount_handler
来携带分配的“安装函数”,在本例中,“根路径”将在稍后阶段nfs_mount_handler()
传递给该函数; 。$1
/new_root
我正在尝试验证客户端是否已将其安装[SERVER IP]:/archlinux
到/new_root
.在服务器上,我只能观察到客户端已建立连接,但看不到目录是否已挂载以及挂载到哪里?
showmount -a server -> All mount points on server: (empty)
ss -ntp | grep 2049 ->
ESTAB 0 0 192.168.2.101:2049 192.168.2.102:809 (random port)
+(20171210) NFS4sec=sys
和 id 映射器不兼容?
阅读 doco,它看起来像 sec=sys 并且 id 映射器可用于正确地将 uid/gid 映射到客户端和服务器在 /etc/passwd 和 /etc/group 中具有不同映射的名称。这根本不是真的。
这是因为使用 sec=sys 时,id 映射器不会在 nfs 协议的身份验证部分中发挥作用,仅在文件属性部分中发挥作用。使用 sec=sys 身份验证,nfs 仅传递客户端 uid/gid,由服务器直接使用。因此,如果客户端和服务器的 uid 和 gid 不一致,权限检查就会失败。更令人困惑的是,当客户端创建新文件时,使用的是身份验证凭据,因此该文件是使用客户端的 uid/gid 在服务器上创建的。之后,nfs 使用 idmap 获取文件属性,因此 uid/gid(最初来自客户端)在服务器上进行映射,最终您会看到客户端 uid/gid 的服务器名称。博卡奇!另一方面,如果文件最初是在服务器上创建的,即使 uid/gid 不同,您也会在客户端看到正确的名称。但权限检查仍然会被破坏。 --kimmie -- 发布时间:2013 年 2 月 20 日星期三 3:14 am 帖子主题:-- 原文强调
答案1
来自内核参数的内核文档
nfs.nfs4_disable_idmapping=
[NFSv4] 当设置为默认值“1”时,如果挂载使用“sec=sys”安全风格,则此选项可确保 RPC 级别身份验证方案和 NFS 级别操作都同意使用数字 uids/gids。实际上,它禁用了 idmapping,这可以使从旧版 NFSv2/v3 系统迁移到 NFSv4 变得更容易。客户端将自动检测到不支持此操作模式的服务器,并且将回退到使用 idmapper。要关闭此行为,请将值设置为“0”。
nfsd.nfs4_disable_idmapping=
[NFSv4] 当设置为默认值“1”时,NFSv4 服务器将仅向使用 auth_sys 的客户端返回数字 uid 和 gid,并将接受来自此类客户端的数字 uid 和 gid。这样做的目的是为了简化从 NFSv2/v3 的迁移。
nfs.nfs4_disable_idmapping=1
和nfsd.nfs4_disable_idmapping=1
在服务器和客户端上禁用 id 映射器会导致 systemd 启动时出现用户登录提示,仅出现 1 个nfsd.nfs4_disable_idmapping=1
错误:nfs.nfs4_disable_idmapping=1
- 无法启动重新挂载根和内核文件系统,但是通过添加挂钩解决了这个
modconf
问题mkinitcpio
;一起block keyboard
尝试解决其他明显的问题: - 笔记本键盘不能用了...
没有rpc.idmapd -fvvv
输出任何消息。
我可以使用外部 USB 键盘以 root 身份登录、读取和创建文件。我没有进行任何广泛的测试,因此该解决方案仍然可能存在问题。
nfs.nfs4_disable_idmapping=0
和nfsd.nfs4_disable_idmapping=0
看来echo "options nfs nfs4_disable_idmapping=0" >> /etc/modprobe.d/nfs.conf
(或cat /sys/module/nfsd/parameters/nfs4_disable_idmapping -> N
) 对 CLIENT 没有任何影响。
CLIENT id 映射器被禁用,直到我在引导期间 (GRUB) 明确地将参数传递nfs.nfs4_disable_idmapping=0
给内核。
没有rpc.idmapd -fvvv
输出任何投诉。另一方面,在建立第一个之后,它没有打印出任何其他内容rpc.idmapd: Server : (user) id "0" -> name "root@localdomain"
......
然而,Wireshark 日志不再记录NFS4ERR_BADOWNER
.
尽管如此,所有 systemd 启动失败仍然存在......
- 无法安装 POSIX 消息队列文件系统。
- 无法启动重新安装根和内核文件系统。
- 无法挂载大页文件系统。
- 无法挂载内核调试文件系统。
- 无法挂载内核配置文件系统。
- 然后以 Not tainted 4.13.12-1-ARCH #1 结束...
结论
nfs.nfs4_disable_idmapping=0
和nfsd.nfs4_disable_idmapping=0
除了设置 Kerberos 和故障排除之外,我不知道下一步要尝试什么。似乎rpc.idmapd
仍然无法映射正确的权限,但rpc.idmapd -fvvv
不再输出任何错误......?该怎么办?启动错误可能是由其他原因引起的...我不知道...
nfs.nfs4_disable_idmapping=1
和nfsd.nfs4_disable_idmapping=1
虽然有效,但这种方法似乎是错误的。我不迁移,我应该能够使用rpc.idmapd
.现在必须这样做;以后它可能会回来咬我……