10066 loader: Add isoboot(5) for booting BIOS systems from HDDs containing ISO images.

Review Request #1324 — Created Dec. 14, 2018 and submitted

tsoome
illumos-gate
10066
5534e32...
general
FreeBSD update: https://svnweb.freebsd.org/base?view=revision&revision=332084

This is part of a project for adding the ability to create hybrid CD/USB boot
images. In the BIOS case when booting from something that isn't a CD we need
some extra boot code to actually find our next stage (loader) within an
ISO9660 filesystem. This code will reside in a GPT partition (similar to
gptboot(8) from which it is derived) and looks for /boot/loader in an
ISO9660 filesystem on the image.

Created and published the iso (http://148.52.235.80.sta.estpak.ee)

  • 0
  • 0
  • 8
  • 1
  • 9
Description From Last Updated
tsoome
aeon
  1. I insecure downloaded all your files because the OpenIndiana_Text_X86.usb from the gz failed the SHA512. It is not the same file as the downloaded OpenIndiana_Text_X86.usb image.
    I am using Debian 4.18.20:
    $ gunzip -k OpenIndiana_Text_X86.usb.gz
    $ openssl dgst -sha512 OpenIndiana_Text_X86.usb

    SHA512(OpenIndiana_Text_X86.usb)= a4f3588a5cd77dc30bdf854c2ff8155b1360a7c69263710845e27e983ff11ec3e255f299bc07a7fd72f8bde2d7884fd03bfa31a2b2e72c9dd93e5250156aa8a2

    $ gunzip -t OpenIndiana_Text_X86.usb
    $ gunzip -l OpenIndiana_Text_X86.usb
    compressed uncompressed ratio uncompressed_name
    687696721 882135552 22.0% OpenIndiana_Text_X86.usb

    1. oops, yes, the gz varian is older, I'll fix it:)

    2. fixed.

  2. 
      
jlevon
  1. 
      
  2. usr/src/boot/lib/libstand/cd9660read.c (Diff revision 1)
     
     

    I guess it's mainly to follow upstream, but it's weird that this lives in libstand, when in fact it doesn't use the libstand stuff like struct open_file etc. It's a special for isoboot only and should really be part of that dir - especially as the .c file is directly included!

    So, if we want to leave this here, I think it'd be useful to add a comment explaining why it's here, its relationship to cd9660.c, and who actually uses it.

  3. Should be GNUC_ROOT

  4. Identation is a bit random in this Makefile: remove all the tabs/spaces so they're consistent?

  5. We have to hard-code this?

    1. It is a bit complicated. The orifinal FreeBSD makefile is using the VAR =? value construct (set unless it is already set), I left in the plain assign constructs just for the case we can figure something out.

  6. Dead comment?

  7. usr/src/man/man5/isoboot.5 (Diff revision 1)
     
     

    Are we planning to deliver a tool, or documentation, on exactly how to construct such USB disks in the future? Right now it seems pretty obscure.

    1. I already have update waiting for distribution constructor, but the additional docs would be good indeed. The basic idea is that we need to fit in first 32k both partition table and isoboot binary, so the DC script does create MBR partition table with x86 boot partition and second partition for hsfs. Then we can use labeled lofi and installboot.

  8. usr/src/man/man5/isoboot.5 (Diff revision 1)
     
     

    freebsd specifics?

  9. usr/src/man/man5/isoboot.5 (Diff revision 1)
     
     
  10. 
      
tsoome
tsoome
jlevon
  1. Ship It!
  2. 
      
citrus
  1. Ship It!
  2. 
      
tsoome
jlevon
  1. Ship It!
  2. 
      
citrus
  1. Ship It!
  2. 
      
tsoome
jlevon
  1. Ship It!
  2. 
      
tsoome
tsoome
Review request changed

Status: Closed (submitted)

Loading...