Booting and Stuff

So it turns out that my epic journey into "why doesn't this board boot" this week had a really anti-climatic ending.

Just so everyone knows, the Intel DG945GCLF board, which is a mini-itx board with 1.6ghz atom 230 chip on it, will not boot from a hdd unless one of the partitions on that drive is marked bootable.

This might seem obvious, but it doesn't make much sense :( the BIOS is supposed to just load the first 512 bytes of the drive and run it*.

So, things I learned this week:
  • grub-install is a shell script.
  • What grub stage1, e2fs_stage1_5 and stage2 are.
  • The layout of the partition table.
  • Various tricks with 'dd' and 'xxd' to read partition tables.
  • Editing hex values in partition tables and the grub stage1 on the disk is kinda fun the first time.
  • Knowing what bytes are what on a raw disk is knowledge that can't be erased with beer.
  • Beer is good for day 3 of dealing with non-booting systems.
So after something like 15 kernel compiles, various operating systems and rescue disks, it turns out that I needed to make a 2 character change to the sfdisk script that created our partition layout.

* yes, i know this is a lie.