在远程系统上调整 /var 分区的大小 (Linux Debian Lenny)

7 linux partition debian remote

在我只能通过 ssh 和 vnc 访问的服务器上(这意味着无法从“实时”CD/DVD 引导),我想缩小分配给 /var 的分区(以便为附加分区)。什么是好的和安全的方法来做到这一点?

解决方案(基于 David Spillet 的回答,前提是 / 上有足够的空间来容纳 /var 的副本):

  1. 尽可能停止使用 /var 的任何内容
  2. 重新安装 /var readonly 以获得良好的测量 mount -f -oremount,ro /var (似乎对我没有任何影响)
  3. 使用 mkdir /vartmp 将 /var 复制到 / 以不同的名称;cp -av /var/* /vartmp/
  4. 注释掉 /etc/fstab 中 /var 的条目
  5. 重启
  6. 用 mv /var /varmount 移动东西;mv /vartmp /var
  7. 重启,分区
  8. 取消注释 /etc/fstap 中 /var 的条目
  9. 重启

Dav*_*ett 8

如果您的根分区上有空间存放 /var 的内容,您可以:

  1. /var尽可能停止正在使用的任何东西
  2. 重新安装 /var readonly 以获得良好的测量 mount -f -oremount,ro /var
  3. 复制/var/另一个名称下mkdir /vartmp; cp -av /var/* /vartmp/
  4. 移动东西 mv /var /varmount; mv /vartmp /var
  5. 注释掉/varin的条目/etc/fstab
  6. 重启

您现在应该/var在根分区上按原样放置,而不是它自己的分区。您现在可以根据需要调整旧分区的大小。步骤 4 应该让您重命名/var目录,即使它被用作挂载点并且在其他情况下很忙(并且处理打开文件的过程将跟踪更改,因为打开的文件不是通过路径+名称引用,而是通过 inode ,一旦打开)。

如果您没有空间/但继续,/someotherfs那么您可以尝试使用符号链接将其移动到那里,/如下所示:

  1. /var尽可能停止正在使用的任何东西
  2. 重新安装 /var readonly 以获得良好的测量 mount -f -oremount,ro /var
  3. 复制/varcp -av /var /someotherfs/var
  4. 移动东西 mv /var /varmount; ln -s /someotherfs/var /var
  5. 注释掉/varin的条目/etc/fstab
  6. 重启

这稍微有点风险,因为您需要确保在启动/someotherfs之前已安装/var

如果您暂时没有想要将其复制到的空间,您可以/var通过删除缓存包之类的内容来减小大小(aptitude clean在 Debian 风格的设置中,毫无疑问是等效的yum命令),将其他内容移开(例如,Debian 保留默认的 httpdocs,/var/www所以如果它仍然存在并且您在那里有大量数据,请将其移动到另一个分区),并从中删除/var/log不是最近的文件(首先备份,以防万一以后需要参考)。

正如 Zoredache 所说:无论您做什么,在继续之前,请确保您对备份安排感到满意。

警告:以上所有内容都来自记忆,我没有在任何地方测试过,请自担风险!