所以,有两件事。
第一:Linux和Unix有一个文件系统层次结构标准,Ubuntu和Snaps遵循这个标准。
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
第二:如果选择偏离自1979年以来一直存在的全球标准,那完全可以,但是请将非标准目录绑定挂载,以便snap能够找到它。
mount --bind /nonstandard_mountpoint /media/$USER/directory
或者
mount --bind /nonstandard_mountpoint /home/$USER/directory
然后你可以继续使用你的非标准挂载点,同时所有的快照都能找到你的非标准挂载点数据。
甚至可以通过将其添加到你的FSTab中使这个挂载点变为永久挂载。
sudo nano /etc/fstab
追加这行
/source /destination none defaults,bind 0 0
保存并退出
CTRL+X y
这是一个例子:
音乐文件存储在 /srv/dsmusic
首先,在 /home/$USER/Music 目录下创建一个名为 dsmusic 的文件夹。
mkdir /home/$USER/Music/dsmusic
然后将/srv/ds音乐绑定到该目录
sudo mount --bind /srv/dsmusic /home/$USER/Music/dsmusic
然后,你所有的快照音乐程序都会自动地找到音乐文件。
继续音乐示例:
sudo nano /etc/fstab
追加这行
/srv/dsmusic /home/username/Music/dsmusic none defaults,bind 0 0
** 卸载中 **
如果您想要卸载,可以像普通挂载点一样使用常规的umount命令。
sudo umount /home/$USER/Music/dsmusic
更多信息请参见:
https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount
SystemD
** 请注意,使用 SystemD 而不是使用 fstab 进行此操作有一种更现代的方法。
要在 SystemD 中创建绑定挂载点,您需要创建一个 .mount 文件,并将非标准挂载点的路径用 -(减号)分隔而不是正斜杠(/)。
sudo systemctl edit --full --force path-nonstandard.mount
过去以下并编辑挂载点
[Unit]
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
[Mount]
What=/some/old/dir
Where=/the/new/dir
Type=none
Options=bind
[Install]
WantedBy=local-fs.target
如果nano是默认编辑器
CTRL+X y(用于nano)
:wq(用于vim)
启用systemD文件
sudo systemctl enable path-nonstandard.mount
然后重新加载SystemD守护程序。
sudo systemctl daemon-reload
然后用以下方式启动您的安装。
sudo systemctl start path-nonstandard.mount
如果你需要再次修改它,只需
sudo systemctl edit --full path-nonstandard.mount
例子:
再次以音乐为例:
sudo systemctl edit --full --force srv-dsmusic.mount
这将打开一个空白编辑器,并在正确的系统文件夹中创建一个新的.mount文件,然后添加相应的行。
对于同一硬件上的本地挂载点:
[Unit]
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
[Mount]
What=/srv/dsmusic
Where=/home/username/Music/dsmusic
Type=none
Options=bind
[Install]
WantedBy=local-fs.target
请注意,如果您的非标准挂载点是NAS或其他远程设备,您需要使用remote-fs.target而不是local-fs.target。
对于不同硬件(如NAS)上的远程挂载点。
[Unit]
DefaultDependencies=no
Conflicts=umount.target
Before=remote-fs.target umount.target
[Mount]
What=/srv/dsmusic
Where=/home/username/Music/dsmusic
Type=none
Options=bind
[Install]
WantedBy=remote-fs.target
然后退出编辑器
CTRL+X y(对于nano)
:wq(对于vim)
启用systemD文件
sudo systemctl enable srv-dsmusic.mount
然后重新加载systemD守护程序。
sudo systemctl daemon-reload
然后开始你的新挂载点
sudo systemctl start srv-dsmusic.mount
卸载绑定挂载只需执行以下操作
sudo systemctl stop srv-dsmusic.mount
您现在可以在/srv/dsmusic找到您数据的镜像,snap也可以在/home/$USER/Music/dsmusic找到相同的数据。
更多信息请参阅:
https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdBindMountUnits
和
https://www.freedesktop.org/software/systemd/man/systemd.mount.html
sudo snap remove vlc
),然后使用经典选项重新安装。可能会有帮助,也可能不会。(sudo snap install vlc --classic
) - doug--classic
和--devmode
,但都没有起作用。但是我还想明确地给予对/store
的访问权限,而不是像/supersecret
那样开放一切。 - Peter V. Mørch