ILD

umount other namespace mounts
作者:Yuan Jianpeng 邮箱:yuanjp89@163.com
发布时间:2024-11-15 站点:Inside Linux Development

想要卸载内核模块fuse,发现其引用计数为3,无法卸载:

$ lsmod | grep fuse

fuse                  233472  3


查看使用fuse的挂载点:

$ mount | grep fuse

fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)

portal on /run/user/42/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=42,group_id=42)


有两个,将其卸载:

$ sudo umount /run/user/42/doc

$ sudo umount /sys/fs/fuse/connections


发现其应用计数还有1。怀疑是其它namespace仍然有mount。


果然有:

$ grep "fuse" /proc/*/mounts

/proc/890/mounts:fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0

/proc/892/mounts:fusectl /sys/fs/fuse/connections fusectl ro,nosuid,nodev,noexec,relatime 0 0

/proc/894/mounts:fusectl /sys/fs/fuse/connections fusectl ro,nosuid,nodev,noexec,relatime 0 0


这个时候可以用nsenter进入到对应pid的进namespace,执行卸载:

$ sudo nsenter -a -t 890 umount /sys/fs/fuse/connections


nsenter [options] [program [arguments]]

-a,Enter all namespaces of the target process by the default /proc/[pid]/ns/* namespace paths

-t PID, Specify a target process to get contexts from. 


$ sudo grep "fuse" /proc/*/mounts

/proc/892/mounts:fusectl /sys/fs/fuse/connections fusectl ro,nosuid,nodev,noexec,relatime 0 0

/proc/894/mounts:fusectl /sys/fs/fuse/connections fusectl ro,nosuid,nodev,noexec,relatime 0 0


可以看到卸载了一个


Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.