[int13con] Add basic ability to log to a local disk via INT 13
authorMichael Brown <mcb30@ipxe.org>
Mon, 18 May 2015 15:02:02 +0000 (16:02 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 19 May 2015 11:58:03 +0000 (12:58 +0100)
commit3ec8b67818c146064bbc830490c1fa4454ba1513
tree901833f66fb7b40c700779b52b55915c4d107c76
parenta91b1f733942e8bba070ad36314f1f487ab30d2d
[int13con] Add basic ability to log to a local disk via INT 13

Several popular public cloud providers do not provide any sensible
mechanism for obtaining debug output from an OS which is failing to
boot.  For example, Amazon EC2 provides the "Get System Log" facility,
which occasionally deigns to report a random subset of the characters
emitted via the VM's serial port, but usually returns only a blank
screen.  (Amazingly, this is still superior to the debugging
facilities provided by Azure.)

Work around these shortcomings by adding a console type which sends
output to a magically detected raw disk partition, and including such
a partition within any iPXE .usb-format image.

To use this facility:

 - build an iPXE .usb image with CONSOLE_INT13 enabled

 - boot the cloud VM from this image

 - after the boot fails, attach the VM's boot disk to a second VM

 - from this second VM, use "less -f -R /dev/sdb3" (or similar) to
   view the iPXE output.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/i386/interface/pcbios/int13con.c [new file with mode: 0644]
src/arch/i386/prefix/usbdisk.S
src/arch/x86/include/bits/errfile.h
src/config/config.c
src/config/console.h