[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#666750: [debian-installer] grub-installer prompt mentions other operating systems like Windows, but only Debian actually offered after install

Package: debian-installer, grub-installer
Severity: serious

This is a fake bug to document a particularly bad scenario caused by #650819 for users and ease finding it.

When the installer installs a Linux image of a different flavour than the flavour it uses, the GRUB installed does not offer booting other operating systems. For example, if installing Debian wheezy i386 on a PC that came with Windows 7, Windows 7 will not be bootable using a GRUB entry if the Linux flavour installed is 686-pae. However, when debian-installer asks whether GRUB should be installed, the list of operating systems detected is fine, so the user has no idea he's going to "lose" other operating systems. A rare exception to that is if os-prober is not installed to the target system.

This bug obviously does not affect squeeze.

If you hit this bug, your other operating systems are still there.
All you need to do to recover them is to boot Debian and run the update-grub command, as the root user (assuming your Debian install succeeeds to boot...) You should then see other operating systems in GRUB when you reboot.

Although fixing #650819 will get rid of this issue, grub-installer could do better to avoid this deceptive scenario. As explained in #650819, grub-installer typically calls os-prober twice, once to ask if all other OS-es were detected, and once to actually generate grub.cfg. Instead, if os-prober was called once to generate grub.cfg (by moving update-grub before grub-install), the list of other operating systems that were detected could be presented to the user after analyzing update-grub's result.

Unfortunately, I'm afraid update-grub doesn't return a list of other OS-es it detected, and parsing its generated grub.cfg may need some effort. But it would be much more reliable. Alternatively, we could at least have the 2 calls to os-prober run both in the target or outside the target (presumably inside). Or, if os-prober (deb) is installed, run both inside (and if not, keep having a single call running outside, as is currently happening).

Reply to: