Linux
調整遠端系統上 /var 分區的大小 (Linux Debian Lenny)
在我只能通過 ssh 和 vnc 訪問的伺服器上(這意味著無法從“實時”CD/DVD 引導),我想縮小分配給 /var 的分區(以便為附加分區)。有什麼好的和安全的方法來做到這一點?
解決方案(基於 David Spillet 的回答,前提是您在 / 上有足夠的空間來容納 /var 的副本):
- 盡可能停止使用 /var 的任何東西
- remount /var readonly for good measure mount -f -oremount,ro /var (似乎對我沒有任何影響)
- 使用 mkdir /vartmp 將 /var 複製到 / 以不同的名稱;cp -av /var/* /vartmp/
- 註釋掉 /etc/fstab 中 /var 的條目
- 重啟
- 用 mv /var /varmount 移動東西;mv /vartmp /var
- 重啟,分區
- 取消註釋 /etc/fstap 中 /var 的條目
- 重啟
如果您的根分區上有空間存放 /var 的內容,您可以:
/var
盡可能停止正在使用的任何東西- 重新掛載 /var readonly 以獲得良好的衡量標準
mount -f -oremount,ro /var
- 以不同的名稱複製
/var
到/``mkdir /vartmp; cp -av /var/* /vartmp/
- 搬東西
mv /var /varmount; mv /vartmp /var
- 註釋掉
/var
in的條目/etc/fstab
- 重啟
您現在應該
/var
在根分區而不是它自己的分區上保持原樣。您現在可以根據需要調整舊分區的大小。第 4 步應該讓您重命名/var
目錄,即使它正在用作掛載點並且處於繁忙狀態(並且處理打開的文件將跟踪更改,因為打開的文件不是由路徑 + 名稱引用,而是由 inode 引用,一旦打開)。如果您沒有空間
/
但可以繼續,/someotherfs
那麼您可以嘗試使用符號連結將其移到那裡,/
如下所示:
/var
盡可能停止正在使用的任何東西- 重新掛載 /var readonly 以獲得良好的衡量標準
mount -f -oremount,ro /var
- 複製
/var
_cp -av /var /someotherfs/var
- 搬東西
mv /var /varmount; ln -s /someotherfs/var /var
- 註釋掉
/var
in的條目/etc/fstab
- 重啟
這有點風險,因為您需要確保在啟動
/someotherfs
之前安裝它。/var
如果您沒有空間要臨時將其複製到其中,則可以
/var
通過刪除記憶體包之類的內容(aptitude clean
在 Debian 樣式設置中,毫無疑問是等效yum
命令)來減小大小,將其他內容移開(例如,Debian 保留預設的 httpdocs,/var/www
因此如果它仍然存在並且您有大量數據,請將其移動到另一個分區),並從中刪除/var/log
不是最近的文件(首先備份,以防萬一稍後需要參考它們)。正如 Zoredache 所說:無論您做什麼,在繼續之前確保您對備份安排感到滿意。
警告:以上所有內容均來自記憶,我沒有在任何地方測試過,請自擔風險!