错误:安装,因为它已经存在。 /etc/fstab 中的条目重复?

错误:安装,因为它已经存在。 /etc/fstab 中的条目重复?

当我尝试使用以下命令向多个 FTP 用户授予对同一目标目录的访问权限时:

sudo mount --bind /home/max/home/ExLand /home/riven/Desktop/ExLand
sudo mount --bind /home/r1ven/home/ExLand /home/riven/Desktop/ExLand/etc/fstab

/etc/fstab

/home/r1ven/home/ExLand /home/riven/Desktop/ExLand none bind 0 0
/home/max/home/ExLand /home/riven/Desktop/ExLand none bind 0 0

/var/log/syslog 中出现错误

Dec 12 18:32:31 riven kernel: [    2.131397] systemd-fstab-generator[292]: Failed to create unit file /run/systemd/generator/home-riven-Desktop-ExLand.mount, as it already exists. Duplicate entry in /etc/fstab?
Dec 12 18:32:31 riven kernel: [    2.131711] systemd[284]: /usr/lib/systemd/system-generators/systemd-fstab-generator failed with exit status 1.

结果,重启后,只挂载了一个目录:

/home/r1ven/home/ExLand /home/riven/Desktop/ExLand 无绑定 0 0

第二个目录未安装并且无法访问。

告诉我我做错了什么?)

当我手动挂载目录时,重启前一切正常,两个 FTP 用户都可以使用一个目录,但是,重启后,只有上述目录可用,第二个目录完全无法访问,但如果我再次手动挂载,它会出现。

答案1

您正在对同一目标安装点进行两个相互叠加的绑定安装。

步骤1:

sudo mount --bind /home/max/home/ExLand /home/riven/Desktop/ExLand

现在您将能够/home/max/home/ExLand访问/home/riven/Desktop/ExLand.

步骤 2:(假设/etc/fstab命令末尾的 是拼写错误)

sudo mount --bind /home/r1ven/home/ExLand /home/riven/Desktop/ExLand

这将使 处/home/r1ven/home/ExLand可访问/home/riven/Desktop/ExLand,但之前的绑定安装将不再可访问。 (如果您有现有会话cd/home/riven/Desktop/ExLand他们可能仍然会看到/home/max/home/ExLand它的版本,但任何新的访问都只会看到该/home/r1ven/home/ExLand版本。)

如果用户max在 进行更改/home/max/home/ExLand,则用户r1ven将永远不会在 处看到这些更改/home/r1ven/home/ExLand,因为它们仍然是两个独立的位置。

根据目标安装点名称生成单元名称,因此像这样的两个重叠的安装目标都将具有相同的单元名称,这是一个错误systemd-fstab-generator.mount由于像这样重叠的安装点不是很有用并且通常是一个错误,因此该错误可能是一件好事。

如果您的目标是让用户maxr1ven用户都访问/home/riven/Desktop/ExLand,您应该以相反的方式进行绑定安装。

可以这样想:对于mount --bind来源是数据所在的地方真的是;这目标是您希望看到它的地方。

因此,/etc/fstab条目将是:

/home/riven/Desktop/ExLand /home/r1ven/home/ExLand none bind 0 0
/home/riven/Desktop/ExLand /home/max/home/ExLand none bind 0 0

之后,如果max将文件添加到/home/max/home/ExLand,用户r1ven也会在/home/r1ven/home/ExLand处看到它们(假设正确的目录权限)...因为这两个位置现在实际上都在访问/home/riven/Desktop/ExLand

相关内容