![以普通用户身份挂载包含文件系统的文件](https://linux22.com/image/208900/%E4%BB%A5%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E6%8C%82%E8%BD%BD%E5%8C%85%E5%90%AB%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%96%87%E4%BB%B6.png)
如果我创建一个空文件并在其上格式化文件系统:
dd if=/dev/zero of=foo bs=1 count=0 seek=10G
mkfs.xfs foo
mkdir bar
如何在 bar 上非 root 挂载 foo?我可以使用 udevil 来完成此操作,但这并不能仅将其安装为 rw - ro。
答案1
有多种选项可以作为用户挂载文件系统。
- 该
udisks
命令可以做到这一点,但默认情况下它只适用于可移动设备。 - 如果您具有 root 访问权限,但想要以用户身份挂载文件系统,则可以添加一个条目,
/etc/fstab
并带有user
允许挂载预配置的特定挂载的选项。 - 该
autofs
包比 fstab 中的静态条目具有更大的灵活性,并且可以配置为允许在特定目录中自动安装映像,只需引用已配置的 autofs 目录中类似命名的子安装点即可。 fusermount
(类似地,squashfuse
如果配置允许的话,像 之类的子工具)可以在某些非常特定的情况下挂载文件系统映像。
答案2
我正在使用 RHEL 8...
sudo yum install libguestfs libguestfs-tools -y
guestmount -a xfs.file -m /dev/sda some_dir
将文件系统安装在本地目录 some_dir 上的文件 xfs.file 中。无法告诉你为什么 /dev/sda 有效; -m 应该指定要安装的磁盘映像中的目录。这不是图像,但它仍然有效。它的安装方式与保险丝类型相同。如果 sudo 可用,修改 /etc/fstab 也可以像 @user10489 指出的那样工作:
/nfs/xfs.file /nfs/some_dir xfs rw,user 0 0
这会将其安装为环回设备。
@icarus,fusermount 不再挂载文件系统;它只会卸载。 udisksctl 要求输入 root 密码。是的,您必须是 root 才能挂载(除非您不是 root)。我尝试了 -o rw 和 udevil;它接受该标志并继续安装它。
我尝试了 gio(gvfs-mount 的后继者),但它似乎不适用于这种情况。