前往
大廳
主題

縮減hyper-v中linux所使用的虛擬硬碟大小

皓月當空 | 2023-03-01 16:30:43 | 巴幣 0 | 人氣 348

  在hyper-v下安裝的linux,沒辦法將系統中的free space釋放出來,以減少vhdx的大小。我研究了一陣子,找到一個將partition縮減然後整體縮小vhdx的辦法。

1.用ubuntu光碟開機(我使用22.04 desktop版的),然後選試用ubuntu。
2.在試用的系統中用GParted去resize partition的大小,並將partition都移動向左邊靠攏(swap磁區需要swapoff後才能移動,移動完成套用後,記得要swapon)。也可以用KDE partition manager,安裝的方法:sudo apt-get update && sudo apt-get install partitionmanager。

  這邊我遇到兩個問題。一是在hyper-v的介面將vhdx縮減是可行的。但是縮到系統建議的最小值之後(應該是hyper-v看硬碟分割表給出的建議),虛擬機器就開不起來了。我還沒測試過不要縮到最小建議值會不會正常,不過依硬碟分割表來設定vhdx大小應該要是沒有問題的才是。

  二是我嘗試用另一個方法,也就是將硬碟備份成image,再還原到設定較小的vhdx中。我用的是再生龍這套軟體。但在還原時卻發生了partition2跟partition3分隔大小對調的問題,所以在還原partition2時就因為容量不足而失敗。

  兩個問題一起看下來,我猜可能在使用GParted調整partition時產生的錯誤。或許可以嘗試用kde partition manager來調整partition,看會不會較正常。

3.最後我是個別將partition做成image,再於新的小vhdx中先做好分割,然後將partition的image個別還原回去就可以了。

  如果要再增加vhdx的容量,可以試試在hyper-v中先設定vhdx的大小。接著再用GParted或kde partition manager將要擴大的partition移到右端,再把partition resize看看。我猜單純將partition拉大,應該不會直接把vhdx變大,而是要放資料進去才會(大概)。然後linux vhdx無法縮減,可能是在硬碟的末端有磁區的關係(通常是swap)。

創作回應

皓月當空
再生龍討論區那邊有回覆說從大硬碟移到小硬碟的確有可能會有問題。也是建議單獨partition進行備份還原。
2023-03-02 08:44:57

更多創作