[Bug 1060404] Re: update-grub runs and fails in containers
Andreas Hasenack
andreas at canonical.com
Tue Jan 22 12:34:21 UTC 2013
I installed the version from precise-updates on a precise lxc, which didn't have grub-pc before. It worked for me. Here is the output:
"""
(...)
Processing triggers for ureadahead ...
Setting up libfreetype6 (2.4.8-1ubuntu2.1) ...
Setting up gettext-base (0.18.1.1-5ubuntu3) ...
Setting up libfuse2 (2.8.6-2ubuntu2) ...
Setting up grub-common (1.99-21ubuntu3.8) ...
Setting up grub2-common (1.99-21ubuntu3.8) ...
Setting up grub-pc-bin (1.99-21ubuntu3.8) ...
Setting up os-prober (1.51ubuntu3) ...
Setting up grub-pc (1.99-21ubuntu3.8) ...
Creating config file /etc/default/grub with new version
lxc
Setting up grub-gfxpayload-lists (0.6) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
root at precise:~#
"""
That lone "lxc" comes from grub's postinst calling "running-in-
container". I think it could have its output redirected to /dev/null,
unless we want to restrict this test to "lxc":
root at precise:~# running-in-container
lxc
root at precise:~#
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1060404
Title:
update-grub runs and fails in containers
Status in “grub2” package in Ubuntu:
Fix Released
Status in “lxc” package in Ubuntu:
Fix Released
Status in “grub2” source package in Precise:
Fix Committed
Status in “lxc” source package in Precise:
Triaged
Status in “grub2” source package in Quantal:
Fix Released
Status in “lxc” source package in Quantal:
Fix Released
Bug description:
[Impact] GRUB upgrades fail in containers.
[Test Case] Upgrade the grub-pc package in a container.
[Regression Potential] In itself, this postinst fix should be quite safe. It's possible it won't solve the whole problem - e.g. linux-image-* upgrades calling update-grub - but I wanted to backport just what was in quantal/raring rather than getting creative in an SRU.
[XXX edit - removed the SRU justification for lxc part. The proposed solution
was not safe, and was undone in a later commit. devtmpfs cannot be mounted
in a container, because changes under the container's /dev are then
reflected in the host's /dev.
If grub is installed in a container (as happens, for instance, with
the ubuntu-cloud template) then an update of grub or linux-image will
cause update-grub to be run. It tries, finds it can't access the root
device, fails, and causes the update to fail.
It would be better for update-grub to detect that it is in a container
and simply exit 0, so that the apt-get can succeed. I'm attaching a
debdiff which does that.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1060404/+subscriptions
More information about the foundations-bugs
mailing list