我知道这是一个经常被问到的问题,但不幸的是,大多数答案都涉及使用 LiveCD,而在这种情况下,这是不可能的。我目前正在使用一台运行 Ubuntu 14.04 LTS 的专用服务器,该服务器将大部分磁盘空间分配给 /home 目录。不幸的是,我的根目录上的磁盘空间已经用完了,这实际上破坏了我的服务器。我的难题是,我已经在服务器上设置了相当多的数据,这使得很难在本地备份所有内容并使用更好的分配重新安装专用服务器。
本质上,我正在寻找一种将 .home 目录中的所有内容分配到 / 目录的方法。据我所知,在操作过程中无法重新分配磁盘,所以我真的不知道接下来该怎么做。我的主机确实提供了“救援模式”,它似乎可以创建一个临时虚拟机,将当前文件树挂载到 /mnt 目录中,但我不太确定是否可以通过该模式重新分区磁盘。它还有一个“网络启动”选项,我还没有尝试过,但总是有可能的。
我不太确定接下来该去哪里,所以如果您能提供任何帮助我将非常感激!
答案1
理想情况下,您应该添加另一个磁盘并将系统的部分迁移到该磁盘,但您可能无法通过托管解决方案获得该选项。
作为应急措施,您可以在 /home 文件夹中创建一个环回分区,并将其挂载为其他文件夹(如 var 或 usr)之一。这是一个安全问题,因为它可能会让您的用户帐户获得 root 访问权限,因此请确保不要将环回放在 webroot 或其他共享位置。
如何进行环回 http://www.walkernews.net/2007/07/01/create-linux-loopback-file-system-on-disk-file/
然后编辑您的 /etc/fstab 文件并添加在正确位置安装环回的条目,然后将文件复制到其中。
最终,这可能会使您的服务器变得更糟,其他人无法理解,并且会对重负载下的性能产生负面影响。这是一种奇怪的磁盘空间重新分配,正确的解决方案是使用 LVM 部署您的系统,它可以抽象磁盘分区,以便您可以即时重新分配。
答案2
如果您的/home
分区有足够的空间,那么您可以在 /home 分区的某个路径中创建一个目录,然后使用该mount
实用程序将该分区挂载到所需的位置(如果您使用逻辑卷管理器 (LVM)),使用以下命令:
mount --bind <some-path-of-/home partition> <some-path-of-/ partition>
这将挂载路径直到您下次重新启动。但是,您可以/etc/fstab
通过在以下行中添加以下行来永久设置/etc/fstab
<some-path-of-/ partition> <some-path-of-/home partition> none bind 0 0
更多信息请参见此处关联。