Debian

將兩個分區的內容合併到一個單獨的分區中

  • April 20, 2016

我有一台/dev/md1安裝在20GB FS/和 ~200GB FS 的機器。大量數據將很快儲存在. 如何在不擦除系統的情況下將這兩個分區合併為一個更大的分區?如果這不容易實現,那麼在不破壞使用者數據等所有內容以及已經存在的任何內容的情況下,將較大的分區掛載到並且將較小的分區掛載到的最簡單方法是什麼?/dev/md2``/home``/var``/var``/``/var

這些機器正在執行 Debian 7.10。雖然差別不大,但我實際上在兩台或多或少相同的機器上遇到了這個問題。我沒有物理訪問它們中的任何一個。當它們尚未“上線”或未投入生產時,可以根據需要隨時重新啟動它們。

由於你md2的不是空的,最簡單的方法是rsync將數據/var從新分區中,然後進行軟連結:

rsync -xav /var /home/VAR
mv /var /var.org
ln -s /home/VAR /var

這最好在從實時發行版(具有已安裝md1md2已調整的路徑)啟動時完成,如果不可能,您可能需要rsync另一個時間以便在 rsync 期間擷取更改(從實時系統啟動更好)。如果您從實時發行版執行此操作,則可以通過在工作系統上進行初始操作來減少停機時間(如@cas 所示)rsync,以便在實時系統中重新啟動後僅需要同步更改的文件。

作為製作軟連結的替代方法,您可以考慮使用bindmount /home/VAR/ on /var。我不確定這是否有優勢。

一旦你檢查的一切都在那裡並且工作正常,你可以刪除/var/org

正如derobert 在評論中建議的那樣,簡單的解決方案是將(大部分)現有文件留在原處,僅移動將接收大文件的一個目錄,並創建一個符號連結以使預期路徑指向這些文件實際上將被儲存。例如,如果您要將此伺服器轉換為容納大量郵件,您可能會這樣做

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到大分區。但要安全地執行此操作,您需要確保沒有任何東西在使用您正在移動的文件,如果您沒有物理訪問權限,這是有問題的。

引用自:https://unix.stackexchange.com/questions/277709