私はWindows Server 2008r2をHyper-Vの役割で使用しています。ゲストシステムはUbuntu 12.04 LTCです。ダイナミック仮想ハードディスク上にあります。
このVHDを圧縮したい(実際のサイズは50 GB、ディスク上の360 GB)。しかし、UbuntuファイルシステムはNTFSではないため、これを行うことはできません。 この問題を解決するために何が必要ですか(gparted、sdelete、...)
主な問題は、ファイルシステムがNTFSではなくext4であることです。
答え:
1)systemrescuecdをダウンロードする
2)この.isoをクエストOS Ubuntuに追加します
3)この仮想マシンを起動します
4)zerofreeを使用する
zerofree /dev/sda1
5)この仮想マシンをパワーオフします
6)Hyper-Vマネージャーを使用(編集->デフラグ)
このvhdは360 Gbでした。現在は70 GB。
VMの電源をオフにして、VHDをバックアップし、ext4パーティションを使用できる別の仮想マシン(小さくて高速なので SystemRescueCD を使用します)、つまりSysRescueのHD(ただし、マウントしてください!) SysRescue VMから、ext4パーティションで ' zerofree 'を実行し、そのVMの電源をオフにしてから、管理Webサイトを使用してVHDを圧縮します。
私は確認できます:zerofreeは仮想ディスクファイルを圧縮するために機能しています
ただし、レスキューCDを使用したり、VHDXを別の仮想マシンにマウントしたりする必要はありません。
Sudo apt-get install zerofree
セーフモードで起動して、次を実行:
zerofree /dev/sda1
その後、仮想ディスクファイルの最適化を開始する必要があります。 VHDXファイルをホストしているサーバーで、次のファイルShrinkVhdx.ps1を作成します。
[CmdletBinding()]
Param(
$VHDFiles
)
#Find the disks
foreach($VHD in $VHDFiles){
Write-Verbose "Working on $VHD, please wait"
Write-Verbose "Current size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
Mount-VHD -Path $VHD -NoDriveLetter -ReadOnly
Optimize-VHD -Path $VHD -Mode Full
Write-Verbose "Optimize size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
Dismount-VHD -Path $VHD
Write-Verbose ""
}
そして今ファイルを実行し、解放されたディスク容量を楽しんでください:-)
ShrinkVhdx.ps1 .\hdd1.vhdx
プロセスは
viz
Sudo apt-get install secure-delete
Sudo sfill -llz .
これにより、oooooooo.ooo
sで満たされた0
というファイルが作成されます。私が推測するすべてのパーティションでsfillコマンドを繰り返す必要があります。
これも迅速ではないことに注意してください。完了するまでに数日ではなくても数時間かかります。
1)systemrescuecdをダウンロードする
2)この.isoをクエストOS Ubuntuに追加します
3)この仮想マシンを起動します
4)zerofreeを使用する
ゼロフリー/ dev/sda1
5)この仮想マシンをパワーオフします
6)Hyper-Vマネージャーを使用(編集->デフラグ)
これを行うには、次のファイルの一部のパラメーターを確認します。/ sys/block // queue/discard_granularity/sys/block // queue/discard_max_bytesが0の場合、ハードウェア+ソフトウェア構成でサポートされていない可能性があります。
これを行うための完全なチュートリアルは次のとおりです。 http://www.1337admin.org/uncategorized/compacting-virtual-disks-on-generation-2-linux-hyper-v-2012-r2-vms/
Systemrescuecdを第2世代のマシンで起動しようとしました。しかし、機能しなかったため、新しい第1世代のマシンを作成し、VHDXを追加しました。 systemrescuecdが起動しました。何もしなかった。第1世代のマシンを削除し、VHDXを元のマシンに戻しました。その後、Ubuntuはまったく起動しませんでした。グラブメニューのみ。
ここに私の投稿を参照してください: Hyper-V Ubuntu vhdx scsi ide
これに注意して、バックアップを取ってください(今回はしませんでした)...