Removed create_image script since it was added more cleanly upstream
This commit is contained in:
parent
38b142e608
commit
1a19edaba9
158
create-image.sh
158
create-image.sh
|
@ -1,158 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
for i in "$@"
|
|
||||||
do
|
|
||||||
case $i in
|
|
||||||
# Name for image
|
|
||||||
-i=*|--imagename=*)
|
|
||||||
IMAGE_NAME="${i#*=}"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
# Which stage to create image from
|
|
||||||
-s=*|--stage=*)
|
|
||||||
STAGE_NUM="${i#*=}"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
# unknown option
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ ${EUID} -ne 0 ]; then
|
|
||||||
echo "this tool must be run as root"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$IMAGE_NAME" ]
|
|
||||||
then
|
|
||||||
echo "No image name specified, defaulting to \"raspbian\""
|
|
||||||
IMAGE_NAME="raspbian"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$STAGE_NUM" ]
|
|
||||||
then
|
|
||||||
echo "No stage specified, aborting."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
WORKSPACE_PATH="./work/${IMAGE_NAME}/stage${STAGE_NUM}"
|
|
||||||
|
|
||||||
work_path=$(readlink -f $WORKSPACE_PATH)
|
|
||||||
|
|
||||||
if [ ! -d "$work_path" ]
|
|
||||||
then
|
|
||||||
echo "Error resolving workspace path. Does not exist: work_path=\"${work_path}\""
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Creating image using rootfs in: ${work_path}"
|
|
||||||
|
|
||||||
bootsize="64M"
|
|
||||||
deb_release="jessie"
|
|
||||||
|
|
||||||
# define destination folder where created image file will be stored
|
|
||||||
buildenv="${PWD}/images"
|
|
||||||
|
|
||||||
# Set directory of rootfs and bootfs
|
|
||||||
rootfs="${buildenv}/rootfs"
|
|
||||||
bootfs="${buildenv}/boot"
|
|
||||||
|
|
||||||
today=`date +%Y%m%d`
|
|
||||||
|
|
||||||
mkdir -p ${buildenv}
|
|
||||||
mkdir -p ${buildenv}/images
|
|
||||||
|
|
||||||
# Construct image name
|
|
||||||
image="${buildenv}/images/${IMAGE_NAME}.img"
|
|
||||||
|
|
||||||
# Create a blank image file
|
|
||||||
dd if=/dev/zero of=${image} bs=1MB count=3800
|
|
||||||
|
|
||||||
# Mount it on the loop back adapter
|
|
||||||
device=`losetup -f --show ${image}`
|
|
||||||
|
|
||||||
echo "image ${image} created and mounted as ${device}"
|
|
||||||
|
|
||||||
# Set up partition descriptor
|
|
||||||
fdisk ${device} << EOF
|
|
||||||
n
|
|
||||||
p
|
|
||||||
1
|
|
||||||
|
|
||||||
+${bootsize}
|
|
||||||
t
|
|
||||||
c
|
|
||||||
n
|
|
||||||
p
|
|
||||||
2
|
|
||||||
|
|
||||||
|
|
||||||
w
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
if [ "${image}" != "" ]; then
|
|
||||||
# Delete the loopback device
|
|
||||||
losetup -d ${device}
|
|
||||||
|
|
||||||
# Mount the disk image
|
|
||||||
device=`kpartx -va ${image} | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
|
|
||||||
echo device
|
|
||||||
device="/dev/mapper/${device}"
|
|
||||||
echo device
|
|
||||||
|
|
||||||
# Get paths to boot and root partitions
|
|
||||||
bootp=${device}p1
|
|
||||||
rootp=${device}p2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create the filesystems
|
|
||||||
mkfs.vfat ${bootp}
|
|
||||||
mkfs.ext4 ${rootp}
|
|
||||||
|
|
||||||
# Set the path to the rootfs
|
|
||||||
mkdir -p ${rootfs}
|
|
||||||
|
|
||||||
# Mount the rootfs to the root partition
|
|
||||||
mount ${rootp} ${rootfs}
|
|
||||||
|
|
||||||
# copy
|
|
||||||
rootfs_work="${work_path}/rootfs"
|
|
||||||
rsync -a ${rootfs_work}/ ${rootfs}
|
|
||||||
|
|
||||||
# Remove the contents of the boot folder, but not the boot folder itself
|
|
||||||
rm -rf ${rootfs}/boot/*
|
|
||||||
|
|
||||||
#unmount
|
|
||||||
umount ${rootp}
|
|
||||||
|
|
||||||
sync
|
|
||||||
|
|
||||||
bootfs_work="${rootfs_work}/boot"
|
|
||||||
mkdir -p ${bootfs}
|
|
||||||
|
|
||||||
mount ${bootp} ${bootfs}
|
|
||||||
|
|
||||||
cp -R ${bootfs_work}/* ${bootfs}
|
|
||||||
|
|
||||||
umount ${bootfs}
|
|
||||||
|
|
||||||
sync
|
|
||||||
|
|
||||||
rm -rf ${rootfs}
|
|
||||||
rm -rf ${bootfs}
|
|
||||||
|
|
||||||
# Remove device mapper bindings. Avoids running out of loop devices if run repeatedly.
|
|
||||||
dmsetup remove_all
|
|
||||||
|
|
||||||
echo "finishing ${image}"
|
|
||||||
|
|
||||||
if [ "${image}" != "" ]; then
|
|
||||||
kpartx -d ${image}
|
|
||||||
echo "created image ${image}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "done."
|
|
Loading…
Reference in New Issue
Block a user