virtualbox虚拟磁盘disk管理-转vdi-压缩空间
linux系统侧的操作
1. 给分区设置LABEL
,可以使用以下命令
$ sudo tune2fs -L toolkits /dev/sdf1
查看结果
$ sudo blkid /dev/sdf1
/dev/sdf1: LABEL="toolkits" UUID="3c0633c0-fc64-4252-adae-c124ebeb2962" TYPE="ext4"
2. 修改分区UUID
号,可以使用以下命令
$ uuidgen
73cd2ce6-99ec-4be5-9289-1f3439ead8ff
$ sudo tune2fs -U 73cd2ce6-99ec-4be5-9289-1f3439ead8ff /dev/sdf1
Windows主机侧的操作
1. 修改虚拟磁盘UUID
号
$ VBoxManage.exe internalcommands sethduuid src_name.vdi
或者
# 更新uuid的函数
function vbox_update_uuid() {
local src_file=$1
local src_name=${src_file%.*}
local src_suffix=${src_file##*.}
local cmd="VBoxManage.exe internalcommands sethduuid ${src_file}"
case "${src_suffix,,}" in
"vmdk"|"vdi")
echo ${cmd}
#${cmd}
;;
*)
;;
esac
}
2. 将虚拟磁盘格式由vmdk转为vdi
$ VBoxManage.exe clonehd --format VDI src_name.vmdk src_name.vdi
或者
# vmdk转vdi格式的函数
function vbox_format_vmdk_to_vdi() {
local src_file=$1
local src_name=${src_file%.*}
local src_suffix=${src_file##*.}
local cmd="VBoxManage.exe clonehd --format VDI ${src_name}.vmdk ${src_name}.vdi"
if [ "${src_suffix,,}" = "vmdk" ] ;then
echo ${cmd}
#${cmd}
fi
}
3. 压缩vdi格式虚拟磁盘
3.1 首先在虚拟机linux系统执行以下命令
比如要压缩/分区所对应的虚拟磁盘文件
sudo dd if=/dev/zero of=/zero.fill bs=4M
sudo rm -f /zero.fill
然后重启继续下一步
3.2 在Windows端执行VBoxManage.exe modifyvdi
相关命令压缩磁盘文件
$ VBoxManage.exe modifyvdi --compact src_name.vdi
或者
# 压缩vdi格式文件的函数
function vbox_compact_vdi() {
local src_file=$1
local src_name=${src_file%.*}
local src_suffix=${src_file##*.}
local cmd="VBoxManage.exe modifyvdi --compact ${src_name}.vdi"
if [ "${src_suffix,,}" = "vdi" ] ;then
echo ${cmd}
#${cmd}
fi
}