以普通用户身份挂载包含文件系统的文件

以普通用户身份挂载包含文件系统的文件

如果我创建一个空文件并在其上格式化文件系统:

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 的后继者),但它似乎不适用于这种情况。

相关内容