Move the ensure_nbd function call from the disk-image-create to the disk-image-get-kernel. The image creation process does not use qemu-nbd anymore. Change-Id: I8ff2ad54f322a9e33d52408fa4e253a7b45900c7
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# Copyright 2012 Hewlett-Packard Development Company, L.P.
 | 
						|
# All Rights Reserved.
 | 
						|
# 
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
						|
# not use this file except in compliance with the License. You may obtain
 | 
						|
# a copy of the License at
 | 
						|
# 
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
# 
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
						|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
						|
# License for the specific language governing permissions and limitations
 | 
						|
# under the License.
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
SCRIPTNAME=$(basename $0)
 | 
						|
export _LIB=$(dirname $0)/../lib
 | 
						|
source $_LIB/die
 | 
						|
 | 
						|
function show_options () {
 | 
						|
    echo "Usage: $SCRIPTNAME -i <image> [-d <outdir>] [-o <prefix]"
 | 
						|
    echo
 | 
						|
    echo "Options:"
 | 
						|
    echo "    -i filename -- extract kernel + ramdisk from this file"
 | 
						|
    echo "    -d dir      -- save files in \$dir; defaults to /tmp"
 | 
						|
    echo "    -o prefix   -- set the prefix of the output files; defaults to 'baremetal'"
 | 
						|
    echo "                   eg, baremetal-vmlinuz and baremetal-initrd"
 | 
						|
    echo "    -x          -- turn on tracing"
 | 
						|
    echo "    -h          -- print this message"
 | 
						|
    exit 0
 | 
						|
}
 | 
						|
 | 
						|
TEMP=`getopt -o hd:i:o:x -n $SCRIPTNAME -- "$@"`
 | 
						|
echo "XXX $TEMP"
 | 
						|
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
 | 
						|
 | 
						|
# Note the quotes around `$TEMP': they are essential!
 | 
						|
eval set -- "$TEMP"
 | 
						|
 | 
						|
export OUT_DIR=/tmp
 | 
						|
export OUT_PFX=baremetal
 | 
						|
 | 
						|
while true ; do
 | 
						|
    case "$1" in
 | 
						|
        -d) export OUT_DIR=$2; shift 2 ;;
 | 
						|
        -i) export IMAGE_FILE=$2; shift 2 ;;
 | 
						|
        -o) export OUT_PFX=$2; shift 2 ;;
 | 
						|
        -h) show_options;;
 | 
						|
        -x) shift; set -x;;
 | 
						|
        --) shift ; break ;;
 | 
						|
        *) echo "Internal error!" ; exit 1 ;;
 | 
						|
    esac
 | 
						|
done
 | 
						|
 | 
						|
if [[ ! -n "$IMAGE_FILE" ]]; then
 | 
						|
   die "You must specify an image to read from with -i \$filename"
 | 
						|
elif [[ ! -r "$IMAGE_FILE" ]]; then
 | 
						|
   die "Image file $IMAGE_FILE is not readable"
 | 
						|
fi
 | 
						|
 | 
						|
source $_LIB/img-defaults
 | 
						|
source $_LIB/common-functions
 | 
						|
source $_LIB/img-functions
 | 
						|
 | 
						|
echo "Extracting kernel + ramdisk from $IMAGE_FILE and writing them to $OUT_DIR"
 | 
						|
 | 
						|
ensure_nbd
 | 
						|
 | 
						|
# sets WORK_DIR
 | 
						|
mount_qcow_image $IMAGE_FILE
 | 
						|
 | 
						|
# Dig up the initrd and kernel to use.
 | 
						|
BOOTDIR="$WORK_DIR/boot"
 | 
						|
KERNEL=$(basename `ls -1 $BOOTDIR/vmlinuz*generic | sort -n | tail -1`)
 | 
						|
RAMDISK=$(basename `ls -1 $BOOTDIR/initrd*generic | sort -n | tail -1`)
 | 
						|
sudo cp $BOOTDIR/$KERNEL $OUT_DIR/$OUT_PFX-vmlinuz
 | 
						|
sudo cp $BOOTDIR/$RAMDISK $OUT_DIR/$OUT_PFX-initrd
 | 
						|
sudo chmod a+r $OUT_DIR/$OUT_PFX-vmlinuz
 | 
						|
sudo chmod a+r $OUT_DIR/$OUT_PFX-initrd
 | 
						|
 | 
						|
unmount_qcow_image
 | 
						|
 | 
						|
echo "$OUT_PFX-vmlinuz,$OUT_PFX-initrd"
 |