1# A simple Busybox Ramdisk
2
3A simple RAM disk is required at a minimum to boot Linux in a VM.
4
5The following instructions create a RAM disk using Busybox 1.33.0.
6
7## Build Busybox 1.33.0
8
9Build Busybox cross compiled for AArch64:
10
11```bash
12wget -c https://busybox.net/downloads/busybox-1.33.0.tar.bz2
13tar xf busybox-1.33.0.tar.bz2
14cd busybox-1.33.0
15make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- defconfig
16make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- menuconfig
17sed -i '/# CONFIG_STATIC is not set/c\CONFIG_STATIC=y' .config
18ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j4
19ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make install
20```
21
22## Create a RAM disk
23
24Create a RAM disk using the Busybox build and place it in an output directory:
25
26```bash
27cd _install
28mkdir proc sys dev etc etc/init.d
29cat <<EOF > etc/init.d/rcS
30#!bin/sh
31mount -t proc none /proc
32mount -t sysfs none /sys
33EOF
34chmod u+x etc/init.d/rcS
35grep -v tty ../examples/inittab > ./etc/inittab
36find . | cpio -o -H newc | gzip > <path-to-output-dir>/initrd.img
37```
38