Getting the HP6730b laptop to boot the LWP

We are using an Ubuntu Karmic unattended install with a preseeded d-i to install a standard Linux PC with some post-installation scripts to customize it. It 'll install flawlessly on the HP6730b, but after installation, the laptop just won't boot. GRUB won't even show up. The thing just says: Non-system disk or disk error.

It turns out that a single setting in the preseed file will fix this. We have to replace

	    d-i partman-auto/expert_recipe_file string /tmp/partman-recipe.txt
	  

with

	    d-i partman-auto/choose_recipe select atomic
	  

Apparently, our partman-auto recipe is incompatible with GRUB, but the built-in atomic recipe is not.

It is possible to extract the recipes from their udebs (no need for source packages here):


    
dpkg --extract partman-auto_73ubuntu7_amd64.udeb ./
dpkg --extract partman-auto_78ubuntu3_amd64.udeb ./
dpkg --extract partman-auto_84ubuntu4_amd64.udeb ./
dpkg --extract partman-auto_89ubuntu2_amd64.udeb ./
dpkg --extract partman-auto_89ubuntu3_amd64.udeb ./
    

  

Now the recipes are in ./lib/partman/recipes/

We can even re-replace

	    d-i partman-auto/choose_recipe select atomic
	  

with

	    d-i partman-auto/expert_recipe_file string /tmp/partman-recipe.txt
	  

if we copy one of the recipes into /tmp/partman-recipe.txt. It turns out that all work: atomic, home and multi

I have no idea yet why the standard recipes work and ours doesn't, so I include here the working recipe derived from multi:

1 1 1 free
        $iflabel{ gpt }
        method{ biosgrub } .

256 1024 300% linux-swap
        $lvmok{ }
        method{ swap }
        label{ lwpswap }
        format{ } .

5120 10240 20480 $default_filesystem
        $lvmok{ }
        method{ format }
        format{ }
        use_filesystem{ }
        $default_filesystem{ }
        label{ lwproot }
        mountpoint{ / } .

1024 2048 4096 $default_filesystem
        $lvmok{ }
        method{ format }
        format{ }
        use_filesystem{ }
        $default_filesystem{ }
        label{ lwpvar }
        mountpoint{ /var } .

256 512 1024 $default_filesystem
        $lvmok{ }
        method{ format }
        format{ }
        use_filesystem{ }
        $default_filesystem{ }
        label{ lwptmp }
        mountpoint{ /tmp } .

1024 2048 -1 $default_filesystem
        $lvmok{ }
        method{ format }
        format{ }
        use_filesystem{ }
        $default_filesystem{ }
        label{ lwphome }
        mountpoint{ /home } .
	  

... which gives the same disk layout as the the non-working homegrown recipe:

256 1024 2048 linux-swap
        method{ swap }
        label{ lwpswap }
        format{ } .

5120 10240 20480 ext3
        $bootable{ }
        method{ format }
        format{ }
        use_filesystem{ }
        filesystem{ ext3 }
        label{ lwproot }
        mountpoint{ / } .

1024 2048 4096 ext3
        method{ format }
        format{ }
        use_filesystem{ }
        filesystem{ ext3 }
        label{ lwpvar }
        mountpoint{ /var } .

256 512 1024 ext3
        method{ format }
        format{ }
        use_filesystem{ }
        filesystem{ ext3 }
        label{ lwptmp }
        mountpoint{ /tmp } .

1024 2048 1000000000 ext3
        method{ format }
        format{ }
        use_filesystem{ }
        filesystem{ ext3 }
        label{ lwphome }
        mountpoint{ /home } .	    
	  

The one-sector biosgrub is not the point, and making the root FS ext2 doesn't help either...