1# Hafnium RAM disk
2
3Hafnium expects to find the following files in the root directory of its RAM
4disk:
5
6*   `manifest.dtb` -- configuration file in DeviceTree format (required)
7*   kernels for the VMs, whose names are described in the manifest (optional)
8*   initrd of the primary VM, whose name is described in the manifest (optional)
9
10The `manifest.dtb` must be the first file in the RAM disk, to ensure that it is
11properly aligned. Hafnium will not be able to read it if it is not aligned to a
124 byte boundary.
13
14Follow the [preparing Linux](PreparingLinux.md) instructions to produce
15`vmlinuz` and `initrd.img` for a basic Linux primary VM.
16
17## Create a RAM disk for Hafnium
18
19Assuming that a subdirectory called `initrd` contains the files listed in the
20previous section, we can build `initrd.img` with the following command:
21
22```shell
23cd initrd; echo -e "./manifest.dtb\n$(find . -type f -not -name manifest.dtb)" | cpio -o -v > ../initrd.img; cd -
24```
25