BDISK
Manual v1.0
Brent Saner
bts@square-r00t.net

Introduction

What is BDisk?
BDisk refers to both a live distribution I use in my own uses (for rescue situations, recovery, etc.) but foremost and most importantly, it refers to the tool I use for building that distribution. This is what this project and documentation refer to when the word “BDisk” is used.
BDisk is GPLv3-licensed. This means that you can use it for business reasons, personal reasons, modify it, etc. There are a few restrictions I retain, however, on this (don’t worry; they’re all in line with the GPLv3). You can find the full license in docs/LICENSE.
When I rewrote BDisk in Python 3.x (I should take the time to note that I am still quite new to python so expect there to be plenty of optimizations to be made and general WTF-ery from seasoned python developers), one of my main goals was to make it as easy to use as possible. This is surprisingly hard to do- it’s quite challenging to try to approach software you’ve written with the mindset of someone other than you. Please see the For Users section (I.4.i).

Who wrote it?
I (Brent Saner) am a GNU/Linux Systems/Network Administrator/Engineer- I wear a lot of hats. I have a lot of side projects to keep me busy when I’m not working at ${dayjob}, mostly to assist in other side projects and become more efficient and proficient at those tasks. “Shaving the yak,” indeed.
I did a lot of research into how low-level boot operations take place, both in BIOS and UEFI[1] (and corresponding concepts such as Secureboot, etc.) which is no easy task to understand and very commonly misunderstood. (For instance, a common misconception is that UEFI necessarily implies Secureboot. This is quite far from the truth and UEFI by itself is quite a useful replacement for BIOS). Many of these misconceptions are simply due to lack of knowledge about the intricacies and complexities behind these technologies. Some of it is simply FUD[2] generated to prey on the fears of those who don’t understand the underlying specifications or technology.
[1] Unified Extensible Firmware Interface. UEFI is not BIOS, and BIOS is not UEFI.
[2] Fear, Uncertainty, Doubt- propaganda, in other words.
It’s my hope that by releasing this utility and documenting it that you can use it and save some time for yourself as well (and hopefully get the chance to learn a bit more in the process!).

What is this document?
This document is intended to be an indexed and easier-to-use reference than the other plaintext files (in docs/).

Conventions used in this document
There are certain formats used in this document to specify what type of text they are representing.
Commands will be in italics.
e.g. cat /tmp/file.txt
Paths (files, directories) will be in bold (unless part of a command, output, etc.).
e.g. /tmp/file.txt
Variables will be underlined
e.g. print(foo)
URLs (hyperlinks, really; you should be able to click on them) are bold and underlined.
e.g. https://bdisk.square-r00t.net
Paramaters/arguments will be either in <angled brackets>, [square brackets], or [<both>]
<> are used for positional arguments/parameters, or “placeholders”
[] are used for optional arguments/parameters
Thus e.g. someprog –dostuff <stufftodo> [--domorestuff <morestufftodo>]

Further information/resources

For Users
If you encounter any bugs (or have any suggestions on how to improve BDisk!), please file a bug report in my bug tracker.

For Developers
The source is available to browse online or can be checked out via git (via the git protocol or http protocol). It is also available via Arch Linux’s AUR. If you are interested in packaging BDisk for other distributions, please feel free to contact me.

Getting Started
BDisk Manual Page 5 of 5
Sunday, December 4, 2016