diff options
| author | Josh Gachnang <josh@pcsforeducation.com> | 2014-03-19 15:50:43 -0700 |
|---|---|---|
| committer | Josh Gachnang <josh@pcsforeducation.com> | 2014-03-19 15:50:43 -0700 |
| commit | b30d345c2e8ec77935558f75080f734daa3ca4f0 (patch) | |
| tree | 55439a0e95da702820e58176f8cd9c5c243a5e19 /ironic_python_agent/shell/write_image.sh | |
| parent | 6e366520bbcdb1e4540d550a2017d5440b16938b (diff) | |
| download | ironic-python-agent-b30d345c2e8ec77935558f75080f734daa3ca4f0.tar.gz | |
Renaming to IPA
Diffstat (limited to 'ironic_python_agent/shell/write_image.sh')
| -rwxr-xr-x | ironic_python_agent/shell/write_image.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/ironic_python_agent/shell/write_image.sh b/ironic_python_agent/shell/write_image.sh new file mode 100755 index 00000000..ad68298b --- /dev/null +++ b/ironic_python_agent/shell/write_image.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# This should work with almost any image that uses MBR partitioning and doesn't already +# have 3 or more partitions. + +set -e + +log() { + echo "`basename $0`: $@" +} + +usage() { + [[ -z "$1" ]] || echo -e "USAGE ERROR: $@\n" + echo "`basename $0`: IMAGEFILE DEVICE" + echo " - This script images DEVICE with IMAGEFILE" + exit 1 +} + +IMAGEFILE="$1" +DEVICE="$2" + +[[ -f $IMAGEFILE ]] || usage "$IMAGEFILE (IMAGEFILE) is not a file" +[[ -b $DEVICE ]] || usage "$DEVICE (DEVICE) is not a block device" + +# In production this will be replaced with secure erasing the drives +# For now we need to ensure there aren't any old (GPT) partitions on the drive +log "Erasing existing mbr from ${DEVICE}" +dd if=/dev/zero of=$DEVICE bs=512 count=10 + +## Doing two steps allows us to use dd, which allows us to tweak things like +## blocksize and allows use of direct io +# Converts image to raw +log "Imaging $IMAGEFILE to RAW format" +qemu-img convert -O raw $IMAGEFILE /tmp/image.raw + +# Write image onto device +log "Imaging $DEVICE" +dd if=/tmp/image.raw of=$DEVICE bs=64K oflag=direct + +log "${DEVICE} imaged successfully!" |
