updating docs; minor tweaks in bGPG and ipxe.

This commit is contained in:
brent s. 2016-12-18 02:55:40 -05:00
parent 7ff830bf3b
commit e3e2e0a2db
11 changed files with 66 additions and 11 deletions

View File

@ -16,6 +16,7 @@ def genGPG(conf):
templates_dir = '{0}/extra/templates'.format(build['basedir'])
mykey = False
pkeys = []
killStaleAgent(conf)
if conf['gpg']['mygpgkey'] != '':
mykey = conf['gpg']['mygpgkey']
if gpghome == '':

View File

@ -271,8 +271,7 @@ def genISO(conf):
'-output', isopath,
bootdir]
DEVNULL = open(os.devnull, 'w')
#subprocess.call(cmd, stdout = DEVNULL, stderr = subprocess.STDOUT)
subprocess.call(cmd)
subprocess.call(cmd, stdout = DEVNULL, stderr = subprocess.STDOUT)
# Get size of ISO
iso['name'] = ['Mini']
iso['Mini'] = {}

View File

@ -1,5 +1,5 @@
include::USER.adoc[]
include::DEV.adoc[]
include::FAQ.adoc[]

include::BOOT.adoc[]
include::FOOT.adoc[]

8
docs/manual/BOOT.adoc Normal file
View File

@ -0,0 +1,8 @@
= Netboot
[partintro]
.What good is software if you can't see it in action?
--
It's possible to netboot my personal build of BDisk. I mostly keep this up for emergencies in case I need it, but it's good to show you that yes, you can boot a 2GB+ squashed and compressed filesystem from a <50MB image file.
--

include::boot/HOWTO.adoc[]

View File

@ -7,3 +7,5 @@ Here you will find some answers to Frequently Asked Questions I've received abou
--

include::faq/INDEX.adoc[]



View File

@ -4,6 +4,7 @@ v1.0, 2016-12
:doctype: book
:data-uri:
:imagesdir: images
:sectlinks:
:toc: preamble
:toc2: left
:sectnums:
@ -27,7 +28,7 @@ A lot of research went into how low-level boot operations take place when writin
=== 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 also refers to the tool I use for building that distribution. The latter is what this project and documentation refer to when the word “BDisk” is used.

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- its quite challenging to try to approach software youve written with the mindset of someone other than you.
When I rewrote BDisk in Python 3.x (Version 0.x-2.x of BDisk was written in Bash, and horribly inelegant and rigid. 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- its quite challenging to try to approach software youve written with the mindset of someone other than you.

Its my hope that by releasing this utility (and documenting it), 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!).


View File

@ -0,0 +1,39 @@
== How to Netboot BDisk
I update this server with images and iPXE images you can use to netboot my personal spin of BDisk.

You can https://bdisk.square-r00t.net/download/bdisk-mini.iso[download] a demo of the iPXE functionality. Note that your computer needs to be connected to a valid Internet connection via ethernet and be able to get a DHCP lease for it to work.

NOTE: Advanced users, you can https://www.gnupg.org/gph/en/manual/x135.html[verify] it against the GPG signature (https://bdisk.square-r00t.net/download/bdisk-mini.iso.asc[ASC], https://bdisk.square-r00t.net/download/bdisk-mini.iso.gpg[BIN]). My key can be found in https://square-r00t.net/gpg/ascii/personal.asc[ASC] or https://square-r00t.net/gpg/bin/personal.gpg[BIN] format. Proofs of identity can be found in the footnotes of https://devblog.square-r00t.net/articles/a-note-on-using-gpg-signatures-in-pkgbuilds[this] blog post. Note that while this project is in flux, I may be signing with temporarily-generated throwaway keys.

Once downloaded, you can follow the appropriate steps based on your operating system:

=== Windows
==== CD/DVD
Simply put a blank CD/DVD-R (or RW, RW+, etc.) in your optical media drive. Find where you downloaded the above file (it should be named `bdisk-mini.iso`). Right-click and select *Burn disc image*.

==== USB
You'll most likely want to https://svwh.dl.sourceforge.net/project/usbwriter/USBWriter-1.3.zip[download] a program caled https://sourceforge.net/projects/usbwriter/[USBWriter]. Unzip it (or just open it via double-clicking) and copy the USBWriter.exe program somewhere you'll remember- your desktop, for instance.

Next, make sure your USB stick is inserted in your computer and https://support.microsoft.com/en-us/help/17418/windows-7-create-format-hard-disk-partition[formatted/"initialized"] already.

CAUTION: Formatting a disk/partition will *destroy* any and all data on that device! Make sure there is nothing on your USB drive you want to keep, as formatting BDisk to it *will* delete any data on it.

Now right-click on the USBWriter icon and select *Run as administrator*. You may get a warning pop up asking for permissions for USBWriter. It's safe to click Yes.

Select the proper USB flash drive from the *Target device* dropdown menu. If your USB drive isn't showing up, try clicking the Refresh button and looking again. (If it still doesn't show up, you may need to reboot your computer.)

Click the *Browse...* button and find where you saved `bdisk-mini.iso`. Once you've found it, double-click it. Then click *Write*. It might take a little bit of time depending on how fast your USB interface is, so give it some time. When it finishes, click *Close*. You now have a bootable USB thumbdrive.

==== Booting
Booting differs depending on each and every hardware, but *typically* you should get a message when you first start up for "_Setup_" and/or "_Boot options_" or the like. The terminology differs here. It will probably be an *F__#__* button (usually `F2`, `F4`, `F10`, or `F12`) or the *Delete* key. While rebooting, try to hold or press repeatedly this key and you should come across an option somewhere with a list of devices to boot from or an order you can set. Make sure the USB (or CD/DVD, whichever media type you're using) is set as first, and save.

=== Mac OS X/macOS
==== CD/DVD
==== USB
==== Booting
The instructions here don't differ too much than from Windows, though it's always the same key. For OS X/macOS hardware, I believe it's the *c* key or the *b* key. From it being in a shutdown state, power on your Macbook Pro (or whatever it is you have) and hold the *c* key if it's CD/DVD. The *b* key should bring up a boot menu that will let you select a USB device to boot from.

=== GNU/Linux
==== CD/DVD
==== USB
==== Booting

View File

@ -1 +1,3 @@
include::WHYARCH.adoc[]



View File

@ -3,3 +3,5 @@ Because it's a very easy-to-use, simple, https://wiki.archlinux.org/[well-docume

Plus they have tarballs all ready for chroot easily accessible.




View File

@ -9,4 +9,5 @@ There are two basic types of booting systems that communicate between the *hardw

*GNU/Linux*, sometimes just referred to as _Linux_ (And there is a difference between the terminologies, but it's nuanced. You are welcome to https://www.gnu.org/gnu/linux-and-gnu.en.html[read up on it] though!), is an example of an operating system. Other examples include _Windows_, _macOS_ (previously _OS X_), _iOS_, _Android_, and a whole slew of others.

A *live distro*, *live CD*, *live DVD*, *live USB*, and the like are a way of booting an operating system without installing it on the hard drive- this means the computer doesn't even need a hard drive installed, or it doesn't matter if the operating system is broken. Typically they are Linux-based, but there are several Windows-based live releases out there (usually they're focused on rescuing broken systems, so they're not very useful).
A *live distro*, *live CD*, *live DVD*, *live USB*, and the like are a way of booting an operating system without installing it on the hard drive- this means the computer doesn't even need a hard drive installed, or it doesn't matter if the operating system is broken. Typically they are Linux-based, but there are several Windows-based live releases out there (usually they're focused on rescuing broken Windows systems, so they're not very flexible).


View File

@ -183,7 +183,7 @@ mirrorchksum = ${mirrorpath}sha1sums.txt
; ${mirrorproto}://${mirror}${mirrorpath}somefile.sig)
; 0.) No whitespace (if specified)
; 1.) Must be the full path
mirrorgpgsig = ${mirrorfile}.sig
mirrorgpgsig =

; What is a valid key ID that should be used to
; verify the tarballs?
@ -208,7 +208,7 @@ gpgkeyserver =
; yes|no
; true|false
; 1|0
gpg = yes
gpg = no

; Where should we save the bootstrap tarballs?
; 0.) No whitespace
@ -332,7 +332,7 @@ mygpghome =
; true|false
; 1|0
; If it is undefined, it is assumed to be no.
http = yes
http = no

; Should we generate/prepare TFTP files?
; This is mostly only useful if you plan on using more
@ -343,7 +343,7 @@ http = yes
; true|false
; 1|0
; If it is undefined, it is assumed to be no.
tftp = yes
tftp = no

; Enable automatic Git pushing for any changes done to the
; project itself? If you don't have upstream write access,
@ -426,7 +426,7 @@ group = root
; 1|0
; 1.) Requires actual git to be installed.
; If it is undefined, it is assumed to be no.
iso = yes
iso = no

; What URI should iPXE's EMBED script use?
; If you require HTTP BASIC Authentication or HTTP Digest