我怎样才能在可移动设备中拥有某些目录?

我怎样才能在可移动设备中拥有某些目录?

假设我想要 SD 卡上的以下目录结构:

SD
├── log -> var/log
├── dbs -> var/db
└── desktop -> home/desktop

(这只是一个例子)

这样,每次文件进入 /var/log 时,它都会进入 SD/var/log,我该怎么做?我正在考虑符号链接,但我不太确定,而且我不想破坏我的系统。

我现在正在使用Ubuntu 22.04.3 LTS但如果有针对它和其他类 Unix/Linux 系统的解决方案,请告诉我。我将其用于日常个人用途(例如工作、学校、媒体、学习编程等)

如果你需要更多信息,请在评论中提问,我会将其添加到问题中

答案1

每次文件进入 /var/log 时,它都会进入 SD/var/log,我该怎么做?我正在考虑符号链接,但我不太确定,而且我不想破坏我的系统。

如果你的意思是系统层面,那么这是一个非常糟糕的想法,它会破坏你的系统......一些基本应用程序,例如 APT,会将某些符号链接视为/var/log不安全/危险,并拒绝遵循它们,从而导致错误,甚至根本不起作用。

另一方面,绑定挂载在大多数情况下都应该起作用,但这在用户空间级别可能是可以接受的,但在系统级别需要特别注意,例如,/var/log尽管仍可能由于 SD 卡的可用性/连接性/文件系统而导致问题,所以不建议这样做,并且会影响系统范围内的所有用户和服务,这可能会产生意外结果。

...所以,底线是,不推荐上述做法,并且在大多数情况下会破坏您的系统。

但是,在您自己的用户空间中,您可以根据需要修改/绑定 VFS 挂载,而不会对其他用户/服务产生任何影响,只需在用户空间中创建文件系统命名空间即可(sudoroot特权)例如:

bwrap --die-with-parent --bind / / --dev-bind /dev /dev --bind /SD/var/log /var/log \
--bind /SD/desktop /home/desktop --bind /SD/dbs /var/db -- /bin/bash

更多信息,请参阅我想让 /ts 引用 ~/.local/ts,而无需 root/admin 权限?

相关内容