我有一个完全驻留在(相对较小)单个硬盘(/dev/sda)上的系统。现在我预计 /var/lib/ 会填充越来越多的文件(由于使用 lxd 容器),因此我想将其转移到我正在添加到系统的另一个硬盘或分区上。
我想到两种方法,我想向更有经验的人寻求一些建议,看看哪种方法更可取
方法 A - 符号链接
- sudo cp -a -r /var/lib/ /mnt/new-hd/
- sudo mv /var/lib /var/old-lib
- sudo ln -s /mnt/new-hd/lib
- 重启
方法 B - 在现有的 /var/lib 上安装新文件夹
- sudo mnt /dev/new-hd
- /mnt/temp sudo
- cp -a -r /var/lib/* /mnt/temp
- sudo 卸载 /mnt/temp
- 为 /dev/new-hd 创建 fstab 条目(挂载到 /var/lib)
- sudo 安装 -a
现在来看。我赞成方法 B稍微。有什么评论吗?
在我的用例中,它与 lxd 有关,所以我还想知道移动整个 /var/lib 是否是最佳选择,还是应该只移动相关部分?移动整个 /var/lib 的优点是具有与默认结构非常相似的结构(因此需要注意的自定义事项更少)
答案1
如果您是从头开始构建系统,您可能会使用方法 B,因为这是将文件系统分布到多个物理设备上的正确方法。因此,如果您可以执行 B,我认为那是更合理的方法。如果您计划频繁交换不同的副本,或者需要将一个副本放在两个地方,我才会使用方法 A。
答案2
真的有必要在正在运行的机器上执行此操作吗?为什么不下载任何 Linux 发行版的 LiveCD,然后从 CD/USB 运行系统?您应该能够将 /var/lib 移动到任何其他位置而不会出现任何问题。不要忘记复制/移动文件权限。