![我怎样才能在可移动设备中拥有某些目录?](https://linux22.com/image/1197572/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E5%9C%A8%E5%8F%AF%E7%A7%BB%E5%8A%A8%E8%AE%BE%E5%A4%87%E4%B8%AD%E6%8B%A5%E6%9C%89%E6%9F%90%E4%BA%9B%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
假设我想要 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 挂载,而不会对其他用户/服务产生任何影响,只需在用户空间中创建文件系统命名空间即可(无sudo
或root
特权)例如:
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