Skip to content

Commit 1e2bae0

Browse files
update initramfs script - works totally now
1 parent 34e1e99 commit 1e2bae0

File tree

1 file changed

+37
-31
lines changed

1 file changed

+37
-31
lines changed

scripts/generate-initramfs.sh

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
1-
#!/bin/bash
1+
#!/usr/bin/env bash
2+
set -euo pipefail
23

3-
set -e
4-
5-
echo "=== Hyperion BusyBox RootFS Builder ==="
4+
echo "=== Hyperion BusyBox Initramfs Builder ==="
65

76
WORKDIR="$HOME/hyperion-rootfs"
8-
OUTFILE="$(pwd)/rootfs.cpio.gz"
7+
OUTFILE="$(pwd)/initramfs.cpio.gz"
98

109
echo "[0/7] Installing required dependencies..."
1110

12-
sudo apt update
13-
sudo apt install -y \
14-
busybox-static \
15-
cpio \
16-
gzip
11+
sudo apt update -y
12+
sudo apt install -y busybox-static cpio gzip
1713

1814
echo "[1/7] Cleaning previous build..."
1915

@@ -25,39 +21,38 @@ echo "[2/7] Creating filesystem structure..."
2521

2622
mkdir -p \
2723
bin \
28-
sbin \
2924
proc \
3025
sys \
3126
dev \
3227
etc \
33-
tmp \
34-
usr/bin \
35-
usr/sbin \
36-
mnt \
37-
root
28+
tmp
29+
30+
chmod 1777 tmp
3831

3932
echo "[3/7] Installing BusyBox..."
4033

4134
cp /bin/busybox bin/
35+
chmod +x bin/busybox
4236

43-
echo "[4/7] Enabling ALL BusyBox commands..."
37+
echo "[4/7] Creating shell symlink..."
4438

45-
cd bin
46-
./busybox --install -s .
47-
cd ..
39+
ln -s busybox bin/sh
4840

49-
echo "[5/7] Creating init script..."
41+
echo "[5/7] Creating init..."
5042

5143
cat << 'EOF' > init
52-
#!/bin/busybox sh
44+
#!/bin/sh
45+
46+
PATH=/bin
5347
5448
echo
5549
echo "Hyperion Initramfs Booting..."
5650
echo
5751
58-
mount -t proc proc /proc
59-
mount -t sysfs sysfs /sys
60-
mount -t devtmpfs devtmpfs /dev
52+
# Mount essential filesystems
53+
/bin/busybox mount -t proc proc /proc
54+
/bin/busybox mount -t sysfs sysfs /sys
55+
/bin/busybox mount -t devtmpfs devtmpfs /dev
6156
6257
echo
6358
echo "Welcome to Hyperion Kernel!"
@@ -70,21 +65,32 @@ chmod +x init
7065

7166
echo "[6/7] Creating device nodes..."
7267

73-
sudo mknod -m 600 dev/console c 5 1 || true
74-
sudo mknod -m 666 dev/null c 1 3 || true
68+
sudo mknod -m 600 dev/console c 5 1 2>/dev/null || true
69+
sudo mknod -m 666 dev/null c 1 3 2>/dev/null || true
70+
sudo mknod -m 666 dev/tty c 5 0 2>/dev/null || true
7571

7672
echo "[7/7] Packing initramfs..."
7773

78-
find . -print0 \
79-
| cpio --null -ov --format=newc --owner root:root 2>/dev/null \
74+
find . \
75+
| cpio -o -H newc --owner root:root 2>/dev/null \
8076
| gzip -9 > "$OUTFILE"
8177

8278
echo
83-
echo "=== Done! ==="
79+
echo "=== Done ==="
8480
echo
85-
echo "RootFS created:"
81+
echo "Initramfs created:"
8682
echo "$OUTFILE"
8783
echo
84+
8885
echo "Copy to Windows artifacts folder:"
8986
echo
9087
echo "cp $OUTFILE /mnt/c/Users/(USERNAME)/path/to/wherever/you/like/it"
88+
echo
89+
90+
echo "Run with QEMU:"
91+
echo
92+
echo "qemu-system-x86_64 ^"
93+
echo " -kernel bzImage ^"
94+
echo " -initrd initramfs.cpio.gz ^"
95+
echo " -append \"console=ttyS0 init=/init loglevel=3 quiet\" ^"
96+
echo " -nographic"

0 commit comments

Comments
 (0)