Getting the HP6730b laptop to boot the LWP

Jurjen Bokma

February


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...