Skip to content
This repository has been archived by the owner on Oct 11, 2023. It is now read-only.

Commit

Permalink
Support for flushing cert to initrd only
Browse files Browse the repository at this point in the history
  • Loading branch information
niusmallnan committed Aug 22, 2019
1 parent 3fac5f7 commit 7cad727
Showing 1 changed file with 33 additions and 11 deletions.
44 changes: 33 additions & 11 deletions scripts/tools/flush_crt_iso.sh
Expand Up @@ -5,7 +5,11 @@
# cd scripts/tools/
# wget https://link/rancheros-xxx.iso
# wget http://link/custom.crt
#
# ./flush_crt_iso.sh --iso rancheros-vmware-autoformat.iso --cert custom.crt
# # or
# ./flush_crt_iso.sh --initrd initrd-xxxx --cert custom.crt
#
# exit
# ls ./build/
#
Expand All @@ -21,6 +25,10 @@ mkdir -p ${ORIGIN_DIR} ${NEW_DIR} ${WORK_DIR} ${DAPPER_SOURCE}/build

while [ "$#" -gt 0 ]; do
case $1 in
--initrd)
shift 1
INITRD_FILE=$(readlink -f $1)
;;
--iso)
shift 1
ISO_FILE=$(readlink -f $1)
Expand All @@ -36,6 +44,30 @@ while [ "$#" -gt 0 ]; do
shift 1
done

function rebuild_initrd() {
local initrd_name=$1
local output_dir=$2

# update and rebuild the initrd
pushd ${WORK_DIR}
mv initrd-* ${initrd_name}.gz
gzip -d ${initrd_name}.gz
cpio -i -F ${initrd_name}
rm -f ${initrd_name}

cat ${CERT_FILE} >> ${WORK_DIR}/usr/etc/ssl/certs/ca-certificates.crt

find | cpio -H newc -o | gzip -9 > ${output_dir}/${initrd_name}
popd
}


if [ ! -z ${INITRD_FILE} ]; then
cp ${INITRD_FILE} ${WORK_DIR}/
rebuild_initrd $(basename ${INITRD_FILE}) ${DAPPER_SOURCE}/build/
exit 0
fi

# copy the iso content
mount -t iso9660 -o loop ${ISO_FILE} ${ORIGIN_DIR}
cp -rf ${ORIGIN_DIR}/* ${NEW_DIR}
Expand All @@ -44,17 +76,7 @@ cp -rf ${ORIGIN_DIR}/* ${NEW_DIR}
INITRD_NAME=$(basename ${ORIGIN_DIR}/boot/initrd-*)
cp ${ORIGIN_DIR}/boot/initrd-* ${WORK_DIR}/

# update and rebuild the initrd
pushd ${WORK_DIR}
mv initrd-* ${INITRD_NAME}.gz
gzip -d ${INITRD_NAME}.gz
cpio -i -F ${INITRD_NAME}
rm -f ${INITRD_NAME}

cat ${CERT_FILE} >> ${WORK_DIR}/usr/etc/ssl/certs/ca-certificates.crt

find | cpio -H newc -o | gzip -9 > ${NEW_DIR}/boot/${INITRD_NAME}
popd
rebuild_initrd ${INITRD_NAME} ${NEW_DIR}/boot

pushd ${NEW_DIR}
xorriso \
Expand Down

0 comments on commit 7cad727

Please sign in to comment.