Index: image_to_vmware.sh |
diff --git a/image_to_vmware.sh b/image_to_vmware.sh |
deleted file mode 100755 |
index e9810150dc1600a5e49b8d3a025a1ece6423080a..0000000000000000000000000000000000000000 |
--- a/image_to_vmware.sh |
+++ /dev/null |
@@ -1,153 +0,0 @@ |
-#!/bin/bash |
- |
-# Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-# Script to convert the output of build_image.sh to a VMware image and write a |
-# corresponding VMware config file. |
- |
-# Load common constants. This should be the first executable line. |
-# The path to common.sh should be relative to your script's location. |
-. "$(dirname "$0")/common.sh" |
-. "$(dirname "$0")/chromeos-common.sh" |
- |
-IMAGES_DIR="${DEFAULT_BUILD_ROOT}/images" |
-# Default to the most recent image |
-DEFAULT_FROM="${IMAGES_DIR}/`ls -t $IMAGES_DIR | head -1`" |
-DEFAULT_TO="${DEFAULT_FROM}" |
-DEFAULT_VMDK="ide.vmdk" |
-DEFAULT_VMX="chromeos.vmx" |
-DEFAULT_VBOX_DISK="os.vdi" |
-# Memory units are in MBs |
-DEFAULT_MEM="1024" |
-VBOX_TEMP_IMAGE="${IMAGES_DIR}/vbox_temp.img" |
- |
- |
-# Flags |
-DEFINE_string from "$DEFAULT_FROM" \ |
- "Directory containing rootfs.image and mbr.image" |
-DEFINE_string to "$DEFAULT_TO" \ |
- "Destination folder for VM output file(s)" |
-DEFINE_string state_image "" \ |
- "Stateful partition image (defaults to creating new statful partition)" |
-DEFINE_string format "vmware" \ |
- "Output format, either vmware or virtualbox" |
- |
-DEFINE_boolean make_vmx ${FLAGS_TRUE} \ |
- "Create a vmx file for use with vmplayer (vmware only)." |
-DEFINE_string vmdk "$DEFAULT_VMDK" \ |
- "Filename for the vmware disk image (vmware only)." |
-DEFINE_string vmx "$DEFAULT_VMX" \ |
- "Filename for the vmware config (vmware only)." |
-DEFINE_integer mem "$DEFAULT_MEM" \ |
- "Memory size for the vm config in MBs (vmware only)." |
- |
-DEFINE_string vbox_disk "$DEFAULT_VBOX_DISK" \ |
- "Filename for the output disk (virtualbox only)." |
- |
-# Parse command line |
-FLAGS "$@" || exit 1 |
-eval set -- "${FLAGS_ARGV}" |
- |
-# Die on any errors. |
-set -e |
- |
-if [ "$FLAGS_format" != "vmware" ]; then |
- FLAGS_make_vmx=${FLAGS_FALSE} |
-fi |
- |
-# Convert args to paths. Need eval to un-quote the string so that shell |
-# chars like ~ are processed; just doing FOO=`readlink -f $FOO` won't work. |
-FLAGS_from=`eval readlink -f $FLAGS_from` |
-FLAGS_to=`eval readlink -f $FLAGS_to` |
- |
-# Split apart the partitions and make some new ones |
-TEMP_DIR=$(mktemp -d) |
-(cd "$TEMP_DIR" && |
- "${FLAGS_from}/unpack_partitions.sh" "${FLAGS_from}/chromiumos_image.bin") |
- |
-# Fix the kernel command line |
-# FIXME: TEMP_ESP is only partition 4 at the moment. It may change! |
-TEMP_ESP="$TEMP_DIR"/part_4 |
-TEMP_ROOTFS="$TEMP_DIR"/part_3 |
-TEMP_STATE="$TEMP_DIR"/part_1 |
-if [ -n "${FLAGS_state_image}" ]; then |
- TEMP_STATE="${FLAGS_state_image}" |
-fi |
-TEMP_KERN="$TEMP_DIR"/part_2 |
-TEMP_PMBR="$TEMP_DIR"/pmbr |
-dd if="${FLAGS_from}/chromiumos_image.bin" of="$TEMP_PMBR" bs=512 count=1 |
- |
-TEMP_MNT=$(mktemp -d) |
-cleanup() { |
- sudo umount -d "$TEMP_MNT" |
- rmdir "$TEMP_MNT" |
-} |
-trap cleanup INT TERM EXIT |
-mkdir -p "$TEMP_MNT" |
-sudo mount -o loop "$TEMP_ROOTFS" "$TEMP_MNT" |
-sudo "$TEMP_MNT"/postinst /dev/sda3 |
-trap - INT TERM EXIT |
-cleanup |
- |
-# Make 3 GiB output image |
-TEMP_IMG=$(mktemp) |
-# TOOD(adlr): pick a size that will for sure accomodate the partitions |
-sudo dd if=/dev/zero of="${TEMP_IMG}" bs=1 count=1 \ |
- seek=$((3 * 1024 * 1024 * 1024 - 1)) |
- |
-# Set up the partition table |
-install_gpt "$TEMP_IMG" "$TEMP_ROOTFS" "$TEMP_KERN" "$TEMP_STATE" \ |
- "$TEMP_PMBR" "$TEMP_ESP" true |
-# Copy into the partition parts of the file |
-dd if="$TEMP_ROOTFS" of="$TEMP_IMG" conv=notrunc bs=512 seek="$START_ROOTFS_A" |
-dd if="$TEMP_STATE" of="$TEMP_IMG" conv=notrunc bs=512 seek="$START_STATEFUL" |
-dd if="$TEMP_KERN" of="$TEMP_IMG" conv=notrunc bs=512 seek="$START_KERN_A" |
-dd if="$TEMP_ESP" of="$TEMP_IMG" conv=notrunc bs=512 seek="$START_ESP" |
- |
-echo Creating final image |
-# Convert image to output format |
-if [ "$FLAGS_format" = "virtualbox" ]; then |
- qemu-img convert -f raw $TEMP_IMG \ |
- -O raw "${VBOX_TEMP_IMAGE}" |
- VBoxManage convertdd "${VBOX_TEMP_IMAGE}" "${FLAGS_to}/${FLAGS_vbox_disk}" |
-elif [ "$FLAGS_format" = "vmware" ]; then |
- qemu-img convert -f raw $TEMP_IMG \ |
- -O vmdk "${FLAGS_to}/${FLAGS_vmdk}" |
-else |
- echo invalid format: "$FLAGS_format" |
- exit 1 |
-fi |
- |
-rm -rf "$TEMP_DIR" "${VBOX_TEMP_IMAGE}" "$TEMP_IMG" |
-if [ -z "$FLAGS_state_image" ]; then |
- rm -f "$STATE_IMAGE" |
-fi |
- |
-echo "Created image ${FLAGS_to}" |
- |
-# Generate the vmware config file |
-# A good reference doc: http://www.sanbarrow.com/vmx.html |
-VMX_CONFIG="#!/usr/bin/vmware |
-.encoding = \"UTF-8\" |
-config.version = \"8\" |
-virtualHW.version = \"4\" |
-memsize = \"${FLAGS_mem}\" |
-ide0:0.present = \"TRUE\" |
-ide0:0.fileName = \"${FLAGS_vmdk}\" |
-ethernet0.present = \"TRUE\" |
-usb.present = \"TRUE\" |
-sound.present = \"TRUE\" |
-sound.virtualDev = \"es1371\" |
-displayName = \"Chromium OS\" |
-guestOS = \"otherlinux\" |
-ethernet0.addressType = \"generated\" |
-floppy0.present = \"FALSE\"" |
- |
-if [[ ${FLAGS_make_vmx} = ${FLAGS_TRUE} ]]; then |
- echo "${VMX_CONFIG}" > "${FLAGS_to}/${FLAGS_vmx}" |
- echo "Wrote the following config to: ${FLAGS_to}/${FLAGS_vmx}" |
- echo "${VMX_CONFIG}" |
-fi |
- |