Some more info here. Again, the failure of 'update-grub' in an ec2 instance is because grub-mkconfig is called in update-grub. grub-mkconfig in one way or another ends up calling grub-probe, and grub-probe exiting failure.
The first call to grub-probe that is failing for me is from
/etc/grub.d/10_linux ->
/usr/lib/grub/grub-mkconfig_lib : prepare_grub_to_access_device()
which runs
grub-probe --device ${device} --target=drive
At that point grub-probe is the result of '${grub_probe} --target=device /' (which is '/dev/sda1').
The reason for this failure I think is because there *is* no /dev/sda in our ec2 instances. The reason for that is 2 fold:
a.) a patch in the kernel renames xen devices from xvd* to sd*
b.) the xen para virtutal device that is named 'sda1' is not actually a partition at all, but a disk. It just has a funny name. (ie, in /sys you'll see that this is indeed a disk and not a partition).
I'm guessing its a bad assumption in grub code due to a or b above that is causing the failure.
Some more info here. Again, the failure of 'update-grub' in an ec2 instance is because grub-mkconfig is called in update-grub. grub-mkconfig in one way or another ends up calling grub-probe, and grub-probe exiting failure.
The first call to grub-probe that is failing for me is from d/10_linux -> lib/grub/ grub-mkconfig_ lib : prepare_ grub_to_ access_ device( )
/etc/grub.
/usr/
which runs
grub-probe --device ${device} --target=drive
At that point grub-probe is the result of '${grub_probe} --target=device /' (which is '/dev/sda1').
The reason for this failure I think is because there *is* no /dev/sda in our ec2 instances. The reason for that is 2 fold:
a.) a patch in the kernel renames xen devices from xvd* to sd*
b.) the xen para virtutal device that is named 'sda1' is not actually a partition at all, but a disk. It just has a funny name. (ie, in /sys you'll see that this is indeed a disk and not a partition).
I'm guessing its a bad assumption in grub code due to a or b above that is causing the failure.