mirror of
https://github.com/churchers/vm-bhyve.git
synced 2026-01-03 19:43:42 +01:00
Resize file backed images after writting cloud image with qemu-img
Fixes #535
This commit is contained in:
16
lib/vm-core
16
lib/vm-core
@@ -226,11 +226,11 @@ core::create(){
|
|||||||
case "${_disk_dev}" in
|
case "${_disk_dev}" in
|
||||||
zvol)
|
zvol)
|
||||||
zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "0" "${_zfs_opts}"
|
zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "0" "${_zfs_opts}"
|
||||||
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}"
|
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}" "${_disk_dev}" "${_disk_size}"
|
||||||
;;
|
;;
|
||||||
sparse-zvol)
|
sparse-zvol)
|
||||||
zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "1" "${_zfs_opts}"
|
zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "1" "${_zfs_opts}"
|
||||||
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}"
|
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}" "${_disk_dev}" "${_disk_size}"
|
||||||
;;
|
;;
|
||||||
custom)
|
custom)
|
||||||
;;
|
;;
|
||||||
@@ -242,7 +242,7 @@ core::create(){
|
|||||||
|
|
||||||
# make sure only owner can read the disk image
|
# make sure only owner can read the disk image
|
||||||
chmod 600 "${VM_DS_PATH}/${_name}/${_disk}"
|
chmod 600 "${VM_DS_PATH}/${_name}/${_disk}"
|
||||||
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "${VM_DS_PATH}/${_name}/${_disk}" "${_img}"
|
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "${VM_DS_PATH}/${_name}/${_disk}" "${_img}" "file" "${_disk_size}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -336,6 +336,8 @@ core::write_img(){
|
|||||||
shift $?
|
shift $?
|
||||||
_disk_dev="${1}"
|
_disk_dev="${1}"
|
||||||
_img="$2"
|
_img="$2"
|
||||||
|
_disk_type="$3"
|
||||||
|
_disk_size="$4"
|
||||||
timeout=30
|
timeout=30
|
||||||
i=0
|
i=0
|
||||||
|
|
||||||
@@ -355,6 +357,14 @@ core::write_img(){
|
|||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
util::err "failed to write img file with qemu-img"
|
util::err "failed to write img file with qemu-img"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# if disk type is file then we need to resize it
|
||||||
|
if [ "${_disk_type}" = "file" ]; then
|
||||||
|
qemu-img resize "${_disk_dev}" "${_disk_size}"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
util::err "failed to resize img file with qemu-img"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# 'vm add'
|
# 'vm add'
|
||||||
|
|||||||
Reference in New Issue
Block a user