Skip to content

Commit 00ffba5

Browse files
committed
Revert "Testing multilayer initrd logic"
This reverts commit d6fe185.
1 parent 6d3740f commit 00ffba5

File tree

1 file changed

+2
-97
lines changed

1 file changed

+2
-97
lines changed

root/build.sh

Lines changed: 2 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -10,90 +10,6 @@ source /buildout/settings.sh
1010
rm -f /buildout/settings.sh
1111

1212

13-
# --- Multilayer initrd helpers ---
14-
15-
is_multilayer_initrd() {
16-
grep -aob 'TRAILER!!!' "$1" | head -n1 | grep -q .
17-
}
18-
19-
extract_multilayer_initrd() {
20-
IMG="$1"
21-
OUTDIR="$2"
22-
# Find TRAILER!!! marker
23-
TRAILER_OFFSET=$(grep -aob 'TRAILER!!!' "$IMG" | head -n1 | cut -d: -f1)
24-
if [ -z "$TRAILER_OFFSET" ]; then
25-
echo "Could not find TRAILER!!! marker in $IMG"
26-
exit 1
27-
fi
28-
SEARCH_START=$((TRAILER_OFFSET + 10))
29-
MAGIC=""
30-
ARCHIVE_OFFSET=""
31-
for ((i=0; i<1048576; i++)); do
32-
offset=$((SEARCH_START + i))
33-
magic=$(dd if="$IMG" bs=1 skip="$offset" count=6 2>/dev/null | xxd -p)
34-
case "$magic" in
35-
fd377a585a00)
36-
MAGIC="xz"
37-
ARCHIVE_OFFSET="$offset"
38-
break
39-
;;
40-
1f8b0800*)
41-
MAGIC="gz"
42-
ARCHIVE_OFFSET="$offset"
43-
break
44-
;;
45-
28b52ffd*)
46-
MAGIC="zst"
47-
ARCHIVE_OFFSET="$offset"
48-
break
49-
;;
50-
5d000080*)
51-
MAGIC="lzma"
52-
ARCHIVE_OFFSET="$offset"
53-
break
54-
;;
55-
esac
56-
done
57-
if [ -z "$ARCHIVE_OFFSET" ]; then
58-
echo "Could not find known compressed archive after TRAILER!!! marker."
59-
exit 2
60-
fi
61-
# Save outer part and embedded archive
62-
head -c "$ARCHIVE_OFFSET" "$IMG" > "$OUTDIR/outer_part.bin"
63-
dd if="$IMG" bs=1 skip="$ARCHIVE_OFFSET" of="$OUTDIR/embedded_archive.$MAGIC" status=none
64-
# Decompress embedded archive
65-
case "$MAGIC" in
66-
xz) xz -dc "$OUTDIR/embedded_archive.xz" > "$OUTDIR/embedded_archive.cpio" ;;
67-
gz) gzip -dc "$OUTDIR/embedded_archive.gz" > "$OUTDIR/embedded_archive.cpio" ;;
68-
zst) zstd -dc "$OUTDIR/embedded_archive.zst" > "$OUTDIR/embedded_archive.cpio" ;;
69-
lzma) lzma -dc "$OUTDIR/embedded_archive.lzma" > "$OUTDIR/embedded_archive.cpio" ;;
70-
esac
71-
mkdir -p "$OUTDIR/initrd_files"
72-
(cd "$OUTDIR/initrd_files" && cpio -id < ../embedded_archive.cpio)
73-
echo "$ARCHIVE_OFFSET" > "$OUTDIR/.embedded_offset"
74-
echo "$MAGIC" > "$OUTDIR/.embedded_magic"
75-
}
76-
77-
rebuild_multilayer_initrd() {
78-
OUTDIR="$1"
79-
NEW_INITRD_DIR="$2"
80-
OUTPUT="$3"
81-
ARCHIVE_OFFSET=$(cat "$OUTDIR/.embedded_offset")
82-
MAGIC=$(cat "$OUTDIR/.embedded_magic")
83-
TMP_CPIO=$(mktemp --suffix=.cpio)
84-
TMP_COMPRESSED=$(mktemp --suffix=.$MAGIC)
85-
(cd "$NEW_INITRD_DIR" && find . | cpio -o -H newc > "$TMP_CPIO")
86-
case "$MAGIC" in
87-
xz) xz -c "$TMP_CPIO" > "$TMP_COMPRESSED" ;;
88-
gz) gzip -c "$TMP_CPIO" > "$TMP_COMPRESSED" ;;
89-
zst) zstd -19 -c "$TMP_CPIO" > "$TMP_COMPRESSED" ;;
90-
lzma) lzma -c "$TMP_CPIO" > "$TMP_COMPRESSED" ;;
91-
esac
92-
cat "$OUTDIR/outer_part.bin" > "$OUTPUT"
93-
cat "$TMP_COMPRESSED" >> "$OUTPUT"
94-
rm -f "$TMP_CPIO" "$TMP_COMPRESSED"
95-
}
96-
9713
# initrd package and exit
9814
if [[ "${COMPRESS_INITRD}" == "true" ]];then
9915
# move files needed to build output
@@ -109,12 +25,6 @@ if [[ "${COMPRESS_INITRD}" == "true" ]];then
10925
done <<< "${CONTENTS}"
11026
# compress initrd folder into bootable file
11127
cd /buildin/initrd_files
112-
# --- multilayer rebuild ---
113-
if [[ -f /buildin/.multilayer_outer/.embedded_offset ]]; then
114-
rebuild_multilayer_initrd "/buildin/.multilayer_outer" "." "/buildout/${INITRD_NAME}"
115-
chmod 777 /buildout/*
116-
exit 0
117-
fi
11828
if [[ "${INITRD_TYPE}" == "xz" ]] || [[ "${INITRD_TYPE}" == "lz4" ]] ;then
11929
find . 2>/dev/null | cpio -o -H newc | xz --check=crc32 > /buildout/${INITRD_NAME}
12030
elif [[ "${INITRD_TYPE}" == "zstd" ]];then
@@ -177,13 +87,8 @@ if [[ "${EXTRACT_INITRD}" == "true" ]] && [[ "${INITRD_TYPE}" != "lz4" ]];then
17787
INITRD_ORG=${INITRD_NAME}
17888
COUNTER=1
17989
cd /buildout
180-
# --- multilayer extraction ---
181-
if is_multilayer_initrd "${INITRD_NAME}"; then
182-
mkdir -p .multilayer_outer
183-
extract_multilayer_initrd "${INITRD_NAME}" ".multilayer_outer"
184-
cp -r .multilayer_outer/initrd_files .
185-
INITRD_NAME="initrd_files"
186-
else
90+
while :
91+
do
18792
# strip microcode from initrd if it has it
18893
LAYERCOUNT=$(cat ${INITRD_NAME} | cpio -tdmv 2>&1 >/dev/null | wc -c)
18994
if [[ ${LAYERCOUNT} -lt 5000 ]] && [[ "${INITRD_TYPE}" != "uncomp" ]];then

0 commit comments

Comments
 (0)