我在一台只有 32 GB SSD 的笔记本电脑上安装了 Linux,我希望能够添加 SD 卡并扩展系统,以便内部 SSD 和外部 SD 卡是连续的。
我希望系统仍然从内部 SSD 启动,但根文件系统位于 SD 卡上,因此当我使用包管理器安装新软件等时,它都会安装在(更大的)SD 卡上。
我希望有人能为我指明正确的方向,告诉我如何以最好的方式做到这一点。
答案1
在 Unix 中,您可以在目录树层次结构中的任何点创建到其他文件系统的链接。
例如,如果您的 SD 卡安装为/mnt
,您可以简单地进入另一个有顶级目录的目录,然后简单地执行以下操作:
$ ln -s existing_dir /mnt
这将位于如下目录中:
$ pwd
/usr
$ ls -l
total 120
dr-xr-xr-x. 2 root root 24576 Jul 5 05:11 bin
drwxr-xr-x. 2 root root 4096 Nov 5 2016 etc
drwxr-xr-x. 2 root root 4096 Nov 5 2016 games
drwxr-xr-x. 34 root root 4096 Jul 5 03:00 include
dr-xr-xr-x. 30 root root 4096 Jul 5 03:00 lib
dr-xr-xr-x. 45 root root 36864 Jul 5 03:13 lib64
drwxr-xr-x. 26 root root 4096 Jul 5 03:13 libexec
drwxr-xr-x. 12 root root 4096 May 2 10:39 local
dr-xr-xr-x. 2 root root 20480 Jul 5 03:13 sbin
drwxr-xr-x. 96 root root 4096 Jul 5 03:13 share
drwxr-xr-x. 5 root root 4096 Jul 5 03:00 src
lrwxrwxrwx. 1 root root 10 May 2 10:39 tmp -> ../var/tmp
并且existing_dir
将是上述目录之一。顺便说一句,请注意 /usr/tmp 目录也采用了类似的方法,其中它是到另一个位置的链接。
这是一个好主意吗?
可能不会,除非你真的知道自己在做什么。通过这样做,您可能会发现部分数据位于 1 个 HDD 分区上,而其余数据则位于 SD 存储上。如果其中任何一个失败,都将导致系统发生灾难性故障。
如果在安装/设置之前将 SD 存储放入系统中,情况会好一些,因为理论上,所有操作系统的文件系统都将包含在单个 SD 卡上。
我可能仍然不会以这种方式处理事情,但这只是我的 0.02 美元。