I'm creating a disk image, which I want to be bootable using grub. Unexpectedly, update-grub runs os-prober which probes the host system and adds unwanted entries for it. In the transcript below, /mnt is a loop mounted filesystem from my disk image. I used kpartx to set up the loop device for the partition inside the disk image. I bind mount /dev from the host system because this seems to be necessary to let update-grub figure out that it's being run in a disk image (by giving it access to /dev/mapper etc). (Also because vmdebootstrap does it..) root@darkstar:/mnt>mount --bind /dev dev root@darkstar:/mnt>chroot . root@darkstar:/# mount -t sysfs sys /sys root@darkstar:/# mount -t proc proc /proc root@darkstar:/# update-grub Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.2.0-1-amd64 Found initrd image: /boot/initrd.img-4.2.0-1-amd64 Found Windows 8 (loader) on /dev/sda2 Found Debian GNU/Linux (stretch/sid) on /dev/sda3 done root@darkstar:/mnt>grub-install /dev/loop2 Installing for i386-pc platform. Installation finished. No error reported. The result is, grub boots fine using this disk image, but the menu has unexpected entries, from os-prober, for the system where it was built. I think the only reason that vmdebootstrap images don't experience this problem is because it doesn't install os-prober by default. However, I'd like to include os-prober on my image, if possible. Could the os-prober hook perhaps notice when the root is a loopback image, and avoid probing the host system? Temporary workaround: chmod -x /etc/grub.d/30_os-prober