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
76WORKDIR=" $HOME /hyperion-rootfs"
8- OUTFILE=" $( pwd) /rootfs .cpio.gz"
7+ OUTFILE=" $( pwd) /initramfs .cpio.gz"
98
109echo " [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
1814echo " [1/7] Cleaning previous build..."
1915
@@ -25,39 +21,38 @@ echo "[2/7] Creating filesystem structure..."
2521
2622mkdir -p \
2723bin \
28- sbin \
2924proc \
3025sys \
3126dev \
3227etc \
33- tmp \
34- usr/bin \
35- usr/sbin \
36- mnt \
37- root
28+ tmp
29+
30+ chmod 1777 tmp
3831
3932echo " [3/7] Installing BusyBox..."
4033
4134cp /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
5143cat << 'EOF ' > init
52- #!/bin/busybox sh
44+ #!/bin/sh
45+
46+ PATH=/bin
5347
5448echo
5549echo "Hyperion Initramfs Booting..."
5650echo
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
6257echo
6358echo "Welcome to Hyperion Kernel!"
@@ -70,21 +65,32 @@ chmod +x init
7065
7166echo " [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
7672echo " [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
8278echo
83- echo " === Done! ==="
79+ echo " === Done ==="
8480echo
85- echo " RootFS created:"
81+ echo " Initramfs created:"
8682echo " $OUTFILE "
8783echo
84+
8885echo " Copy to Windows artifacts folder:"
8986echo
9087echo " 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