强制卸载通过 NFS 共享但未使用的分区

强制卸载通过 NFS 共享但未使用的分区

不确定是否更适合超级用户Unix和Linux董事会,请告诉我。

我们有一台服务器,它是某个大型架构的主要关键点之一。这台服务器有一个备份磁盘,虽然它托管了非常旧的备份,但从未使用过。所以我决定设置它,虽然它一开始是一个分区,但我习惯以fdisk与主驱动器相同的方式对其进行重新分区(两者相同)。

不幸的是,重新分区后,fdisk无法让内核看到新的分区表, 、 或 也无法看到partrobeblockdevsfdisk遇到了同样的问题:BLKRRPART: Device or resource busy,尽管 和lsoffuser没有显示任何使用该设备的信息。 这里我必须提到,我曾经umount -l在使用前强制卸载fdisk(是的,现在看来这很愚蠢,我应该更仔细地阅读文档)。

后来我发现 NFS 正在共享驱动器的一个目录,这就是它没有出现的原因lsof——fuser不要问我是谁想出这个愚蠢的想法,使用旧备份驱动器中的目录来共享 NFS 客户端的启动配置文件……

我无法重新启动此服务器,也不会重新启动 NFS。我读过我可以nfs-kernel-server reload在重新加载时使用保留 NFS 传输/etc/exports(如果我理解正确的话),但首先我不确定这是否可行,其次我真的不想尝试。我真的想避免干扰正在运行的进程。

现在,如果目录确实出现在 的输出中showmount -e(这似乎与 基本相同/etc/exports),它既不会出现在 中,showmount -a也不会出现在 中showmount -d。我猜这意味着目录未被使用,所以也许有某种方法可以强制从 NFS 卸载?

有什么建议 ?

答案1

NFSv2 和 NFSv3 是无状态协议。这意味着,特别是在使用 UDP 时,您可以重新启动服务器,而不会对连接的客户端产生任何影响。

我读过我可以使用 nfs-kernel-server reload 来在重新加载 /etc/exports 时保持 NFS 传输(如果我理解正确的话),但首先我不确定这是否有效,其次我真的不想尝试这样做。

如果您不相信所读内容,很难给出建议。编辑/etc/exports并运行nfs-kernel-server reload当然是正确的解决方案。运行此命令只会执行exportfs -r,这是更新正在运行的服务器的导出而不重新启动它的正确方法。


顺便说一句,您说:

我必须提一下,umount -l在使用 fdisk 之前,我曾经强制卸载

umount -l需要澄清的是,不是强制卸载。您的文件系统可能仍处于挂载状态,或者在您运行 fdisk 时仍处于挂载状态。

相关内容