<div dir="ltr"><div dir="ltr">Hi,<div>> Do you have more details?  </div><div>> What test does systemd-detect-virt use, and why is it failing on dash?<br></div><div><br></div><div>Good question(s); not looked at this in more detail.</div><div><br></div><div>>  What version of systemd are you using?<br></div><div><br></div><div>In the guest, systemd 215; which corresponds to whats in Jessie up to 8.11. </div><div><br></div><div>In the host, multiple versions; whatever GCE gives you in a Debian Jessie instance, and whatever's main/upstream; currently 239. Doesn't seem to make any difference.</div><div><br></div><div>Tried installing the Jessie systemd backport for other reasons, but it wouldn't fly for dependency breakage (on ifup/down, I think).</div><div><br></div><div><br></div><div>Cheers,</div><div><br></div><div>Andy</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 10, 2018 at 6:53 PM Jonathan Nieder <<a href="mailto:jrnieder@gmail.com" target="_blank">jrnieder@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
<a href="mailto:spuggy930@gmail.com" target="_blank">spuggy930@gmail.com</a> wrote:<br>
<br>
> When run under dash, systemd-detect-virt returns "none" in a systemd-nspawn<br>
> chroot'd environment when it should not; same command under bash works<br>
> as expected.<br>
<br>
Do you have more details?  What test does systemd-detect-virt use, and<br>
why is it failing on dash?  What version of systemd are you using?<br>
<br>
Thanks,<br>
Jonathan<br>
<br>
> Because /bin/sh is linked to /bin/dash, this causes the MAKEDEV post-inst<br>
> script not to realize it's in a virtual environment (despite tests added<br>
> in 2.3.1-93 and 2.3.1-94 versions of makedev package to detect precisely<br>
> this situation).<br>
><br>
> it will, therefore, attempt to inappropriately create devices in the<br>
> chroot. Which fails horribly, resulting in an uninstalled/unconfigured<br>
> package. (actually many, in a debootstrap run)<br>
><br>
> Which makes it more awkward than it should be to build an OS image via<br>
> debootstrap in a systemd-nspawn container without hackery or workarounds.<br>
><br>
> $ systemd-nspawn -D jessie-18-10-10/ /bin/bash -c "systemd-detect-virt"<br>
> Spawning container jessie-18-10-10 on /data/PXE/squashbuilder/jessie-18-10-10.<br>
> Press ^] three times within 1s to kill container.<br>
> systemd-nspawn<br>
> Container jessie-18-10-10 exited successfully.<br>
><br>
> $ systemd-nspawn -D jessie-18-10-10/ /bin/dash -c "systemd-detect-virt"<br>
> Spawning container jessie-18-10-10 on /data/PXE/squashbuilder/jessie-18-10-10.<br>
> Press ^] three times within 1s to kill container.<br>
> none<br>
> Container jessie-18-10-10 failed with error code 1.<br>
</blockquote></div>