Merge pull request #98 from marineam/image-size

Image size
This commit is contained in:
Michael Marineau 2013-08-28 12:25:56 -07:00
commit 1539ff334e
3 changed files with 24 additions and 6 deletions

View File

@ -63,7 +63,7 @@
"num": 9,
"label":"STATE",
"type":"data",
"blocks":"2097152"
"blocks":"1048576"
}
],
"vm": [
@ -73,6 +73,14 @@
"type":"data",
"blocks":"6291456"
}
],
"vagrant": [
{
"num": 9,
"label":"STATE",
"type":"data",
"blocks":"33587200"
}
]
}
}

View File

@ -48,6 +48,9 @@ IMG_DEFAULT_OEM_PACKAGE=
# May be raw, qcow2 (qemu), or vmdk (vmware, virtualbox)
IMG_DEFAULT_DISK_FORMAT=raw
# Name of the partition layout from legacy_disk_layout.json
IMG_DEFAULT_DISK_LAYOUT=base
# Name of the target config format, default is no config
IMG_DEFAULT_CONF_FORMAT=
@ -56,6 +59,7 @@ IMG_DEFAULT_MEM=1024
## qemu
IMG_qemu_DISK_FORMAT=qcow2
IMG_qemu_DISK_LAYOUT=vm
IMG_qemu_CONF_FORMAT=qemu
## xen
@ -65,24 +69,29 @@ IMG_xen_CONF_FORMAT=xl
## virtualbox
IMG_virtualbox_DISK_FORMAT=vmdk
IMG_virtualbox_DISK_LAYOUT=vm
IMG_virtualbox_CONF_FORMAT=ovf
## vagrant
IMG_vagrant_DISK_FORMAT=vmdk
IMG_vagrant_DISK_LAYOUT=vagrant
IMG_vagrant_CONF_FORMAT=vagrant
IMG_vagrant_OEM_PACKAGE=oem-vagrant
## vagrant_vmware
IMG_vagrant_vmware_fusion_DISK_FORMAT=vmdk
IMG_vagrant_vmware_fusion_DISK_LAYOUT=vagrant
IMG_vagrant_vmware_fusion_CONF_FORMAT=vagrant_vmware_fusion
IMG_vagrant_vmware_fusion_OEM_PACKAGE=oem-vagrant
## vmware
IMG_vmware_DISK_FORMAT=vmdk
IMG_vmware_DISK_LAYOUT=vm
IMG_vmware_CONF_FORMAT=vmx
## vmware_insecure
IMG_vmware_insecure_DISK_FORMAT=vmdk
IMG_vmware_insecure_DISK_LAYOUT=vm
IMG_vmware_insecure_CONF_FORMAT=vmware_zip
IMG_vmware_insecure_OEM_PACKAGE=oem-vagrant
@ -92,6 +101,7 @@ IMG_ami_OEM_PACKAGE=oem-ami
## openstack, supports ec2's metadata format so use oem-ami
IMG_openstack_DISK_FORMAT=qcow2
IMG_openstack_DISK_LAYOUT=vm
IMG_openstack_OEM_PACKAGE=oem-ami
## pxe, which is an cpio image
@ -182,7 +192,7 @@ _disk_ext() {
# alternate filesystem image for the state partition instead of the one
# from VM_SRC_IMG. Start new image using the given disk layout.
unpack_source_disk() {
local disk_layout="$1"
local disk_layout="${1:-$(_get_vm_opt DISK_LAYOUT)}"
local alternate_state_image="$2"
if [[ -n "${alternate_state_image}" && ! -f "${alternate_state_image}" ]]
@ -217,7 +227,8 @@ unpack_source_disk() {
}
resize_state_partition() {
local size_in_bytes="$1"
local disk_layout="${1:-$(_get_vm_opt DISK_LAYOUT)}"
local size_in_bytes=$(get_filesystem_size "${disk_layout}" ${NUM_STATEFUL})
local size_in_sectors=$(( size_in_bytes / 512 ))
local size_in_mb=$(( size_in_bytes / 1024 / 1024 ))
local original_size=$(stat -c%s "${TEMP_STATE}")

View File

@ -37,7 +37,7 @@ DEFINE_string format "qemu" \
"Output format, one of: ${VALID_IMG_TYPES[*]}"
DEFINE_string from "" \
"Directory containing rootfs.image and mbr.image"
DEFINE_string disk_layout "vm" \
DEFINE_string disk_layout "" \
"The disk layout type to use for this image."
DEFINE_integer mem "${DEFAULT_MEM}" \
"Memory size for the vm config in MBs."
@ -111,9 +111,8 @@ trap vm_cleanup EXIT
# Unpack image, using alternate state image if defined
# Resize to use all available space in new disk layout
STATEFUL_SIZE=$(get_filesystem_size "${FLAGS_disk_layout}" ${NUM_STATEFUL})
unpack_source_disk "${FLAGS_disk_layout}" "${FLAGS_state_image}"
resize_state_partition "${STATEFUL_SIZE}"
resize_state_partition "${FLAGS_disk_layout}"
# Optionally install any OEM packages
install_oem_package