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

Commit 7cad727

Browse files
committed
Support for flushing cert to initrd only
1 parent 3fac5f7 commit 7cad727

File tree

1 file changed

+33
-11
lines changed

1 file changed

+33
-11
lines changed

scripts/tools/flush_crt_iso.sh

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
# cd scripts/tools/
66
# wget https://link/rancheros-xxx.iso
77
# wget http://link/custom.crt
8+
#
89
# ./flush_crt_iso.sh --iso rancheros-vmware-autoformat.iso --cert custom.crt
10+
# # or
11+
# ./flush_crt_iso.sh --initrd initrd-xxxx --cert custom.crt
12+
#
913
# exit
1014
# ls ./build/
1115
#
@@ -21,6 +25,10 @@ mkdir -p ${ORIGIN_DIR} ${NEW_DIR} ${WORK_DIR} ${DAPPER_SOURCE}/build
2125

2226
while [ "$#" -gt 0 ]; do
2327
case $1 in
28+
--initrd)
29+
shift 1
30+
INITRD_FILE=$(readlink -f $1)
31+
;;
2432
--iso)
2533
shift 1
2634
ISO_FILE=$(readlink -f $1)
@@ -36,6 +44,30 @@ while [ "$#" -gt 0 ]; do
3644
shift 1
3745
done
3846

47+
function rebuild_initrd() {
48+
local initrd_name=$1
49+
local output_dir=$2
50+
51+
# update and rebuild the initrd
52+
pushd ${WORK_DIR}
53+
mv initrd-* ${initrd_name}.gz
54+
gzip -d ${initrd_name}.gz
55+
cpio -i -F ${initrd_name}
56+
rm -f ${initrd_name}
57+
58+
cat ${CERT_FILE} >> ${WORK_DIR}/usr/etc/ssl/certs/ca-certificates.crt
59+
60+
find | cpio -H newc -o | gzip -9 > ${output_dir}/${initrd_name}
61+
popd
62+
}
63+
64+
65+
if [ ! -z ${INITRD_FILE} ]; then
66+
cp ${INITRD_FILE} ${WORK_DIR}/
67+
rebuild_initrd $(basename ${INITRD_FILE}) ${DAPPER_SOURCE}/build/
68+
exit 0
69+
fi
70+
3971
# copy the iso content
4072
mount -t iso9660 -o loop ${ISO_FILE} ${ORIGIN_DIR}
4173
cp -rf ${ORIGIN_DIR}/* ${NEW_DIR}
@@ -44,17 +76,7 @@ cp -rf ${ORIGIN_DIR}/* ${NEW_DIR}
4476
INITRD_NAME=$(basename ${ORIGIN_DIR}/boot/initrd-*)
4577
cp ${ORIGIN_DIR}/boot/initrd-* ${WORK_DIR}/
4678

47-
# update and rebuild the initrd
48-
pushd ${WORK_DIR}
49-
mv initrd-* ${INITRD_NAME}.gz
50-
gzip -d ${INITRD_NAME}.gz
51-
cpio -i -F ${INITRD_NAME}
52-
rm -f ${INITRD_NAME}
53-
54-
cat ${CERT_FILE} >> ${WORK_DIR}/usr/etc/ssl/certs/ca-certificates.crt
55-
56-
find | cpio -H newc -o | gzip -9 > ${NEW_DIR}/boot/${INITRD_NAME}
57-
popd
79+
rebuild_initrd ${INITRD_NAME} ${NEW_DIR}/boot
5880

5981
pushd ${NEW_DIR}
6082
xorriso \

0 commit comments

Comments
 (0)