On Fri, May 02, 2008 at 03:27:38PM +0200, Aurelien Jarno wrote: > > Starting with version 0.97-33, /usr/sbin/update-grub destroys > /boot/grub/device.map,
This is (probably) intentional. When device.map doesn't contain the needed information, it regenerates it with grub-mkdevicemap in an attempt to solve the situation. > and then outputs the following error message: > > Searching for GRUB installation directory ... found: /boot/grub > grub-probe: error: Cannot find a GRUB drive for /dev/vda1. Check your > device.map. > > Here is the contents of /boot/grub/device.map before it is destroyed: > (fd0) /dev/fd0 > (hd0) /dev/vda > > /dev/vda corresponds to the first virtio device. AFAICS there are two problems here: - grub-mkdevicemap doesn't grok virtio devices. Could you confirm the attached quick & dirty patch makes it work? Also, is this device path Linux-specific? - grub-probe can't handle the conversion (once device.map is correct). I need more information about this. Try: grub-probe -t drive -d /dev/vda -v and maybe also: grub-probe -t drive -d /dev/vda -vv -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.)
diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp ../grub2/util/grub-mkdevicemap.c ./util/grub-mkdevicemap.c --- ../grub2/util/grub-mkdevicemap.c 2008-04-07 16:34:47.000000000 +0200 +++ ./util/grub-mkdevicemap.c 2008-05-02 21:10:47.000000000 +0200 @@ -178,7 +178,7 @@ get_ide_disk_name (char *name, int unit) { #if defined(__linux__) /* GNU/Linux */ - sprintf (name, "/dev/hd%c", unit + 'a'); + sprintf (name, "/dev/vd%c", unit + 'a'); #elif defined(__GNU__) /* GNU/Hurd */ sprintf (name, "/dev/hd%d", unit);