我使用Windows Server 2008r2和angular色Hyper-V。 客户系统是Ubuntu 12.04 LTC。 它位于dynamic虚拟硬盘上。
我想压缩这个VHD(真正的大小是50GB,磁盘上是360GB)。 但是我不能这样做,因为Ubuntu文件系统不是NTFS。 我需要什么(gparted,sdelete,…)来解决这个问题?
主要的问题是文件系统不是NTFS,而是ext4。
答案:
1)下载systemrescuecd
http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/3.8.1/systemrescuecd-x86-3.8.1.iso/download
2)将这个.iso添加到任务操作系统Ubuntu
3)启动这个虚拟机
4)使用zerofree
zerofree /dev/sda1
5)closures此虚拟机
6)使用Hyper-Vpipe理器(编辑 – >碎片整理)
这个VHD是360 Gb。 现在70 GB。
关掉虚拟机,备份虚拟硬盘,然后运行另一台虚拟机(我使用SystemRescueCD,因为它体积小,速度快),它具有可用的ext4分区,即SysRescue的HD(但不装载它!)。 从SysRescue VM运行ext4分区上的' zerofree ', closures该VM,然后使用pipe理网站压缩VHD。
我可以证实:zerofree正在努力压缩虚拟磁盘文件
但是:您不需要使用任何应急CD或在另一个虚拟机中安装VHDX:
sudo apt-get install zerofree
以安全模式启动,然后运行:
zerofree /dev/sda1
之后,我们必须开始虚拟磁盘文件的优化。 在托pipeVHDX文件的服务器上,创build以下文件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
这个过程似乎是
即
sudo apt-get install secure-delete sudo sfill -llz .
这将创build一个名为oooooooo.ooo
的文件,填充0
秒。 你应该重复所有分区上的sfill命令。
请注意,这也不是很快,如果没有几天完成,则需要几小时。
1)下载systemrescuecd
2)将这个.iso添加到任务操作系统Ubuntu
3)启动这个虚拟机
4)使用zerofree
zerofree / dev / sda1
5)closures此虚拟机
6)使用Hyper-Vpipe理器(编辑 – >碎片整理)
我曾尝试在第二代机器上启动Systemrescuecd。 但它没有工作,所以我创build了一个新的第一代机器,并添加了VHDX。 systemrescuecd开始了。 我没有做任何操作。 删除第一代机器,并把VHDX放回原来的机器。 然后Ubuntu根本没有启动。 只有Grub菜单。
在这里看到我的post: Hyper-V Ubuntu vhdx scsi ide
所以要注意这一点,并采取备份(我没有这个时间)…
您可以通过检查以下文件中的一些参数来执行此操作:/ sys / block // queue / discard_granularity / sys / block // queue / discard_max_bytes如果其中一个为0,则可能不支持您的硬件+软件configuration。
这里有一个完整的教程在做这个: http : //www.1337admin.org/uncategorized/compacting-virtual-disks-on-generation-2-linux-hyper-v-2012-r2-vms/