Creo que lo mejor es que lo explique desde el principio, porque seguro que he metido la pata en algún sitio.
Inicialmente tenía en el disco duro una partición primaria con windows y una partición lógica con ubuntu y su swap.
Código:
<----------partición primaria---------><---------partición lógica------->
<------windows------------------------><------ubuntu---------><--swap--->
En este momento no había ningún problema con grub2.
Luego borre windows y moví la partición con ubuntu al principio del disco.
Código:
<--------partición lógica--------> vacio
<-------ubuntu------><---swap---->
En este momento grub estaba desaparecido, pero por lo menos ubuntu arranca por sí sólo, aunque no sé con qué kernel ya que no podía elegirlo.
Finalmente instalé debian en el espacio vacio con la esperanza de que instalara grub y me reconociera ubuntu sin problemas.
Código:
<----------------------------partición lógica-------------------><------partición primaria---->
<---ubuntu---><--swap_ubuntu--><--swap_debian--><--home_debian--><-----------debian----------->
Instale el grub de debian en el MBR, y ya en ese momento no me reconocía ubuntu como OS (no detectaba ningún OS). Como era de esperar, al arrancar no había ni rastro de ubuntu.
En las particiones tenemos:
partición lógica -> /dev/sda2
---ubuntu -> /dev/sda5
---swap_ubuntu -> /dev/sda6
---swap_debian -> /dev/sda7
---home_debian -> /dev/sda8
(estos dos últimos no estoy muy seguro, pero no creo que sean importantes.)
partición primaria -> /dev/sda1
En debian, en /etc/grub.d/ he puesto un pequeño script tal como recomiendan para grub2 (no me acuerdo de todo, pero para que se hagan una idea).
Código:
#!/bin/sh
menuentry "ubuntu 10.10" {
set root=(hd0,5)
search --no-floppy --fs-uuid --set <UUID de /dev/sda5>
linux /boot/vmlinuz-2.6.35-24-generic root=UUID=<UUID de /dev/sda5> ro
initrd /boot/initd.img-2.6.35-24-generic
}
EOF
menuentry "ubuntu 10.10 (recovery)" {
set root=(hd0,5)
search --no-floppy --fs-uuid --set <UUID de /dev/sda5>
linux /boot/vmlinuz-2.6.35-24-generic root=UUID=<UUID de /dev/sda5> ro single
initrd /boot/initd.img-2.6.35-24-generic
}
EOF
Después de hacer "update-grub2" creo que este código me da un error cerca del menuentry. Siento no poder ser más explícito.
He probado algún otro sustituyendo las entradas "linux" y "initrd" por "chainloader +1" sin resultados (update-grub2 parece ignorar, pero aparece en el grub aunque no arranca). Además tenía algún comentario típico de bash, y hacía lo mismo.
Además, la partición de ubuntu varios archivos /boot/vmlinuz y /boot/initrd, que supongo que serán para arrancar ubuntu. En está partición no se encuentran los archivos "stage1" y "stage2" (creo) del grub, que sí se encuentran en debian.
Los archivos del menuentry hacen referencia a los de ubuntu. En debian no están esos archivos. No sé si eso debe ser así o no.
A ver si puedo recuperar ubuntu...
Un saludo y gracias.