Skip to content

Commit cfb6d37

Browse files
committed
docs/cosa/run: Add PXE with Shim and UEFI Secure Boot example
Fixes: #3804
1 parent f9f9c5b commit cfb6d37

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

docs/cosa/run.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,3 +285,52 @@ And point to it and the `core.0` binary:
285285
```
286286
$ cosa run -c --netboot-dir tmp/grub-netboot --netboot boot/grub2/i386-pc/core.0 -m 4096
287287
```
288+
289+
### GRUB (Secure Boot)
290+
291+
1. Create a temporary folder
292+
2. Download a kernel, initramfs, rootfs, shim and GRUB binary
293+
3. Create an empty disk image (bug in kola): `touch disk.img`
294+
4. Setup `grub.cfg`
295+
5. Place your Ignition config
296+
6. Start a local HTTP server using `cosa kola http-server`
297+
7. Find and join the existing COSA container
298+
8. Use `cosa run` to netboot the system
299+
300+
```
301+
$ tree pxe
302+
pxe
303+
├── config.ign
304+
├── disk.img
305+
├── grub.cfg
306+
├── grubx64.efi
307+
├── rhcos-4.14.0-x86_64-live-initramfs.x86_64.img
308+
├── rhcos-4.14.0-x86_64-live-kernel-x86_64
309+
├── rhcos-4.14.0-x86_64-live-rootfs.x86_64.img
310+
└── shim.efi
311+
312+
$ cat pxe/grub.cfg
313+
default=0
314+
timeout=1
315+
menuentry "CoreOS (UEFI Secure Boot)" {
316+
echo "Loading kernel"
317+
linux /rhcos-4.14.0-x86_64-live-kernel-x86_64 ignition.firstboot ignition.platform.id=metal console=ttyS0 coreos.live.rootfs_url=http://10.0.2.2:8000/pxe/rhcos-4.14.0-x86_64-live-rootfs.x86_64.img ignition.config.url=http://10.0.2.2:8000/pxe/config.ign
318+
echo "Loading initrd"
319+
initrd rhcos-4.14.0-x86_64-live-initramfs.x86_64.img rhcos-4.14.0-x86_64-live-rootfs.x86_64.img
320+
}
321+
322+
$ cosa kola http-server
323+
...
324+
Serving HTTP on port: 8000
325+
326+
# In another shell
327+
$ podman exec -it cosa bash
328+
329+
# Or if you removed `--name cosa` from the cosa alias command to be able to run
330+
# multiple instances of cosa (see https://coreos.github.io/coreos-assembler/building-fcos/#running-multiple-instances)
331+
$ podman ps | grep quay.io/coreos-assembler/coreos-assembler
332+
7fedc84484a6 quay.io/coreos-assembler/coreos-assembler:latest kola http-server 5 minutes ago Up 5 minutes hopeful_haibt
333+
$ podman exec -ti 7fedc84484a6 bash
334+
335+
$ cosa run -c --netboot pxe/shim.efi -m 4096 --qemu-firmware uefi-secure --qemu-image pxe/disk.img
336+
```

0 commit comments

Comments
 (0)