Create a new baremetal element
Rather than using a script to mount the image using nbd to extract the kernel and ramdisk, make a new element called baremetal, which contains a cleanup.d script that will copy them out to <image name>.{vmlinuz,initrd}. Closes-Bug: 1224669 Change-Id: I8f3569aa12148d18b1c8242b6fbbd8857894b26f
This commit is contained in:
parent
ed8264c9d9
commit
58c755cf4c
2
.gitignore
vendored
2
.gitignore
vendored
@ -8,6 +8,8 @@
|
||||
dist
|
||||
*.qcow2
|
||||
*.raw
|
||||
*.initrd
|
||||
*.vmlinuz
|
||||
build
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
|
@ -31,8 +31,9 @@ What tools are there?
|
||||
|
||||
ramdisk-image-create -o deploy.ramdisk deploy
|
||||
|
||||
* disk-image-get-kernel filename : Extract the appropriate kernel and ramdisk
|
||||
to use when doing PXE boot using filename as the image for a machine.
|
||||
* disk-image-get-kernel filename : **DEPRECATED** Extract the appropriate
|
||||
kernel and ramdisk to use when doing PXE boot using filename as the image
|
||||
for a machine. Consider using the `baremetal` element, rather than this tool.
|
||||
|
||||
* elements can be found in the top level elements directory.
|
||||
|
||||
|
@ -41,6 +41,9 @@ function show_options () {
|
||||
exit 0
|
||||
}
|
||||
|
||||
echo 'DEPRECATED: Please consider using the `baremetal` element.'
|
||||
echo
|
||||
|
||||
TEMP=`getopt -o hd:i:o:x -n $SCRIPTNAME -- "$@"`
|
||||
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
|
||||
|
||||
|
4
elements/baremetal/README.md
Normal file
4
elements/baremetal/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
This is the baremetal (IE: real hardware) element.
|
||||
|
||||
Currently, this element will extract out the kernel and initial ramdisk of
|
||||
the built image.
|
58
elements/baremetal/cleanup.d/99-extract-kernel-and-ramdisk
Executable file
58
elements/baremetal/cleanup.d/99-extract-kernel-and-ramdisk
Executable file
@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2014 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
|
||||
|
||||
[ -n "$TARGET_ROOT" ]
|
||||
|
||||
# Dig up the initrd and kernel to use.
|
||||
BOOTDIR="$TARGET_ROOT/boot"
|
||||
KERNEL=
|
||||
RAMDISK=
|
||||
if [ -f $TARGET_ROOT/etc/redhat-release ]; then
|
||||
|
||||
# Prioritize PAE if present
|
||||
KERNEL=$(ls -1rv $BOOTDIR/vmlinuz* | grep PAE | grep -v debug | head -1)
|
||||
if [ ! $KERNEL ]; then
|
||||
KERNEL=$(ls -1rv $BOOTDIR/vmlinuz* | grep -v debug | head -1)
|
||||
if [ ! $KERNEL ]; then
|
||||
echo "No suitable kernel found."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
KERNEL=$(basename $KERNEL)
|
||||
KERNEL_VERSION=`echo $KERNEL | sed 's/vmlinuz-//g'`
|
||||
|
||||
RAMDISK=$(basename `ls $BOOTDIR/initramfs-$KERNEL_VERSION.img`)
|
||||
if [ ! $RAMDISK ]; then
|
||||
echo "Can't find an initramfs for the $KERNEL_VERSION version of the kernel."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
elif [ -f $TARGET_ROOT/etc/debian_version ]; then
|
||||
KERNEL=$(basename `ls -1rv $BOOTDIR/vmlinuz*generic | head -1`)
|
||||
RAMDISK=$(basename `ls -1rv $BOOTDIR/initrd*generic | head -1`)
|
||||
else
|
||||
echo "ERROR: Unable to detect operating system"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo cp $BOOTDIR/$KERNEL ${IMAGE_NAME}.vmlinuz
|
||||
sudo cp $BOOTDIR/$RAMDISK ${IMAGE_NAME}.initrd
|
||||
sudo chmod a+r ${IMAGE_NAME}.vmlinuz
|
||||
sudo chmod a+r ${IMAGE_NAME}.initrd
|
Loading…
Reference in New Issue
Block a user