AmS*_*gar 10 ext4 ntfs hyper-v zero-fill hyper-v-server-2008-r2
我使用角色为 Hyper-V 的 Windows Server 2008r2。来宾系统是 Ubuntu 12.04 LTC。它位于动态虚拟硬盘上。
我想压缩这个 VHD(磁盘上的实际大小是 50 GB,360 GB)。但我不能这样做,因为 Ubuntu 文件系统不是 NTFS。 我需要什么(gparted,sdelete,...)来解决这个问题?
主要问题是文件系统不是NTFS,而是ext4。
答案:
1) 下载systemrescuecd
2) 将此 .iso 添加到 quest OS Ubuntu
3)启动这个虚拟机
4)使用zerofree
zerofree /dev/sda1
Run Code Online (Sandbox Code Playgroud)
5) 关闭这个虚拟机
6) 使用 Hyper-V 管理器(编辑 -> 碎片整理)
这个 vhd 是 360 Gb。现在 70 GB。
小智 6
关闭您的虚拟机,备份 VHD,然后运行另一个虚拟机(我使用SystemRescueCD,因为它又小又快),它有可用的 ext4 分区,即用于 SysRescue 的 HD(但不要挂载它!)。从 SysRescue VM,在 ext4 分区上运行“ zerofree ”,关闭该 VM,然后使用您的管理网站压缩 VHD。
小智 5
我可以确认:zerofree 正在压缩虚拟磁盘文件
但是:您不需要使用任何救援 CD 或在另一个虚拟机中安装 VHDX:
sudo apt-get install zerofree
Run Code Online (Sandbox Code Playgroud)
启动进入恢复模式,然后运行:
zerofree /dev/sda1
Run Code Online (Sandbox Code Playgroud)
之后我们就要开始对虚拟磁盘文件进行优化了。在托管 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 ""
}
Run Code Online (Sandbox Code Playgroud)
现在运行该文件并享受释放的磁盘空间:-)
ShrinkVhdx.ps1 .\hdd1.vhdx
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14358 次 |
最近记录: |