我一直在尝试将 /var 文件夹移动到新分区。我正在使用 Debian 10.7 并拥有 8GB 处理器,因此我想节省空间。我尝试了几种方法,但部分数据似乎总是消失。这是我尝试过的:
- 创建新分区 /dev/sda7
- 将 /dev/sda7 挂载到 /etc/fstab 中的 /mnt/newvar
- 启动进入单用户模式
- 挂载/-rw -o 重新挂载
- cp -arpPv /var/* /mnt/newvar (当我检查 /mnt/newvar 文件夹时,它与 /var 文件夹大小相同,因此我假设副本工作正常,所有文件夹似乎都在那里)
- mv /var /var.old
- mkdir /var
- 编辑 /etc/fstab 并在 /var 上挂载 /dev/sda7
- 重新启动系统
当系统启动时,/var 中的几个文件夹是不可见的,但如果我启动到救援 USB,我可以从那里看到 /var 上的所有文件夹。我可以删除 /mnt/newvar 文件夹吗?和 /var.old 文件夹?如果我这样做,那么我似乎会永久丢失无法查看的文件夹/文件。我想将此文件夹移动到新分区,以使系统的其余部分只读并希望节省空间。如果我无法删除旧文件夹,那么使用不同的分区对此没有多大帮助。谁能告诉我为什么有些文件夹不可见以及如何防止永久丢失数据?
答案1
你能检查一下 中的符号链接/var
吗?因为在某些情况下,这些链接的目的地不是特定的目录路径,而是相对路径。
例如,/var/run/
指向/run/
,这是/run
中的目录/
,但链接的目标可能是../run/
,这是run
链接父目录中的目录,而父目录仍然是root
。
但这也意味着,如果复制/var/
到/mnt/newvar/
,系统会在遇到链接指向的目录时查找名为run
的父目录。newvar/
/mnt
../run/
话虽这么说,任何涉及复制的操作都/var
可能会导致奇怪的行为,所以我建议我的解决方案:/var
在安装时将其直接安装到所需的分区。结果,你/etc/fstab
可能看起来像这样
UUID=xxx /var ext4 defaults 0 2
xxx 是您所需分区的 UUID,可以使用命令检索blkid
。
答案2
该/var
目录包含几个符号链接:-
/var/lock/
->/run/lock/
/var/run/
->/run/
我不认为该cp
命令正在复制符号链接。
也许您需要重新创建它们?
在您连续几天无故障运行之前,我不会删除旧的 /var 数据。