1BYEBYEBIOS(1) Virtualization Support BYEBYEBIOS(1)
2
3
4
6 byebyebios - x86 boot sector injector
7
9 byebyebios [OPTION]... RAW-DISK-IMAGE
10
11 byebyebios [OPTION]... BLOCK-DEVICE
12
14 The byebyebios tool is to be used when an operating system installation
15 for the x86 architecture is only intended to boot via UEFI firmware.
16
17 When pointed to either a raw disk image file, or a block device, con‐
18 taining the installation, it will inject a dummy x86 boot sector. If a
19 user subsequently attempts to boot via legacy BIOS firmware, instead of
20 UEFI, a message will be printed (on both the primary serial port and
21 VGA display) indicating that UEFI is required.
22
24 • --boot-stub FILE-PATH
25
26 Override the default file path identifying the precompiled boot
27 stub binary that will be injected
28
29 • --message FILE-PATH
30
31 Override the default message text that is printed when the instal‐
32 lation is booted under legacy BIOS firmware.
33
34 The message file must fit within the remaining free space of the
35 boot sector. The dummy MBR and boot signature take 66 bytes, the
36 boot stub 21 bytes, and the message <NUL> terminator a single
37 byte. This leaves 424 bytes for the text message.
38
39 Note, the message file must use <CR><LF> line terminators.
40
41 • --force
42
43 Normally byebyebios will validate that the disk image specified
44 contains a valid GPT header signature before installing the dummy
45 boot sector. This is a safety net against accidental overwriting
46 data in a file/device that is not a bootable OS image, should the
47 wrong path be given.
48
49 This option cause instalation of the boot sector even if the GPT
50 signature is not found. Be careful with use of this option, as
51 data loss will likely result if this tool is pointed to an inap‐
52 propriate file with the GPT check disabled.
53
55 Injection post install
56 Create a disk image using virt-install(1) and inject a boot sector af‐
57 ter installation is complete:
58
59 $ virt-install \
60 --virt-type kvm \
61 --arch x86_64 \
62 --boot uefi \
63 --name demo \
64 --disk bus=virtio,format=raw,size=4 \
65 ...other args...
66
67 $ byebyebios /var/lib/libvirt/images/demo.img
68
69 Injection during install
70 Inject a boot sector as part of the installation process from an ana‐
71 conda(1) kickstart file (or equivalent):
72
73 $ cat demo.ks
74 ...snip...
75
76 ignoredisk --only-use=vda
77 clearpart --none --initlabel
78 part /boot/efi --fstype="efi" --ondisk=vda --size=1007 --fsoptions="umask=0077,shortname=winnt"
79 part / --fstype="ext4" --ondisk=vda --size=3087
80
81 ..snip...
82
83 %post
84
85 byebyebios /dev/vda
86
87 %end
88
89 Customized warning message
90 To customize the warning message provide a custom text file with
91 <CR><LF> line terminators:
92
93 $ echo "Bye Bye BIOS" | figlet -f bubble | unix2dos > msg.txt
94 $ byebyebios --message msg.txt /var/lib/libvirt/images/demo.img
95
97 Please report all bugs you discover to the upstream repository:
98 https://gitlab.com/berrange/byebyebios
99
100 Alternatively, you may report bugs to your software distributor / ven‐
101 dor.
102
104 Daniel P. Berrangé
105
107 Copyright (C) 2023 Red Hat
108
110 byebyebios is distributed under the terms of the MIT No Attribution li‐
111 cense.
112
114 virt-install(1), anaconda(1)
115
116
117
118
119 BYEBYEBIOS(1)