Linux

調整遠端系統上 /var 分區的大小 (Linux Debian Lenny)

  • June 14, 2019

在我只能通過 ssh 和 vnc 訪問的伺服器上(這意味著無法從“實時”CD/DVD 引導),我想縮小分配給 /var 的分區(以便為附加分區)。有什麼好的和安全的方法來做到這一點?

解決方案(基於 David Spillet 的回答,前提是您在 / 上有足夠的空間來容納 /var 的副本):

  1. 盡可能停止使用 /var 的任何東西
  2. remount /var readonly for good measure 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. 重啟

如果您的根分區上有空間存放 /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. 複製/var_cp -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 所說:無論您做什麼,在繼續之前確保您對備份安排感到滿意。

警告:以上所有內容均來自記憶,我沒有在任何地方測試過,請自擔風險!

引用自:https://serverfault.com/questions/90270