/dev/md1
我有一台机器,安装在 上有 20GB FS ,安装/
在 上有 ~200GB FS 。大量数据很快就会被存储在.如何在不擦除系统的情况下将这两个分区合并为一个更大的分区?如果这不容易实现,那么在不损坏用户数据等所有内容和已存在的任何内容的情况下,最简单的方法是什么?/dev/md2
/home
/var
/var
/
/var
这些机器运行的是 Debian 7.10。虽然差别不大,但实际上我在两台或多或少相同的机器上遇到了这个问题。我无法实际接触到他们中的任何一个。当它们尚未“上线”或投入生产时,可以根据需要经常重新启动它们。
答案1
由于你的md2
不为空,最简单的方法就是将rsync
数据复制/var
到新分区,然后进行软链接:
rsync -xav /var /home/VAR
mv /var /var.org
ln -s /home/VAR /var
最好在从实时发行版启动时完成此操作(带有安装md1
和md2
调整的路径),如果不可能,您可能需要rsync
另一个时间以便在 rsync 期间捕获更改(从实时系统启动更好)。如果您从实时发行版执行此操作,则可以通过rsync
在工作系统上执行初始操作来减少停机时间(如 @cas 所示),以便在实时系统中重新启动后仅需要同步更改的文件。
作为制作软链接的替代方法,您可以考虑使用bind
mount /home/VAR
/ on /var
。我不确定这是否有优势。
一旦您检查的所有内容均已到位并正常工作,您就可以删除/var/org
答案2
简单的解决方案,如德罗伯特在评论中建议,是将(大部分)现有文件保留在原处,仅移动将要接收大文件的一个目录,并创建一个符号链接以使预期路径指向文件实际存储的位置。例如,如果您要将此服务器转换为保存大量邮件,您可能会这样做
service postfix stop # or whatever you need to do to stop writing to /var/mail
mv /var/mail /home
ln -s ../home/mail /var/mail
service postfix start
如果文件要进入新目录,则无需移动任何内容,只需在大分区中创建目录并在/var
.
如果文件确实必须在下面/var
,您可以移动/home
到小分区,然后移动/var
到大分区。但为了安全地进行操作,您需要确保没有任何东西正在使用您正在移动的文件,如果您没有物理访问权限,这就会出现问题。
答案3
最终我发现的修复与@Anthon 发布的修复类似。
我最终VAR
在/home
.我将 的内容复制/var
到其中,然后更改/etc/fstab
为/dev/md2
安装在 处/var
。然后我重新启动了系统。当它回来时,我创建了一个新/home
目录(现在结束于/dev/md1
),将每个用户帐户(位于/var
)移动到/home
,然后将(现在的)内容移动/var/VAR
到/var
。然后我重新启动机器以解决涉及/var/lock
和/var/run
混乱的问题。
虽然这非常混乱,但这是我发现解决问题的最干净的方法,因为它避免了处理符号链接和/home
.