On Wed, Apr 08, 2026 at 11:39:18AM +0200, Benjamin Drung wrote:
[..] 
> ```
> $ sudo autopkgtest-build-qemu --boot=efi unstable /tmp/unstable-amd64.img
> [...]
> Exec: ['chroot', '/tmp/tmpyajn1s9p', 'eatmydata', 'apt-get', '-y', 
> '--no-show-progress', '', 'install', 'linux-image-amd64']
> [...]
> Processing triggers for dracut (110-9) ...
> update-initramfs: Generating /boot/initrd.img-6.19.11+deb14-amd64
> dracut[W]: Turning off host-only mode: /dev is not mounted!
> [...]
> Exec: ['mount', '--bind', '/dev', '/tmp/tmpyajn1s9p/dev']
> Exec: ['mount', '--bind', '/sys', '/tmp/tmpyajn1s9p/sys']
> Exec: ['mount', '--bind', '/proc', '/tmp/tmpyajn1s9p/proc']
> Exec: ['parted', '-s', '/dev/loop15', 'set', '1', 'esp', 'on']
> Exec: ['chroot', '/tmp/tmpyajn1s9p', 'apt-get', 'update']
> Hit:1 http://deb.debian.org/debian unstable InRelease
> Reading package lists...
> Exec: ['chroot', '/tmp/tmpyajn1s9p', 'apt-get', '-y', '--no-show-progress', 
> 'install', 'grub-efi-amd64']
> [...]
> Processing triggers for dracut (110-9) ...
> update-initramfs: Generating /boot/initrd.img-6.19.11+deb14-amd64
> [...]
> ```
> 
> Then converting the resulting image to raw, mount it and run `lsinitrd`
> on /boot/initrd.img-6.19.11+deb14-amd64 gives:
> 
> ```
> dracut cmdline:
>  root=/dev/mapper/loop15p2 rootfstype=ext4 rootflags=rw,relatime
> ```
> 
> Explanation: When installing linux-image-amd64, /dev is not mounted and
> dracut turns off host-only mode. That's what we want for this image. But
> then /dev gets mounted and the initrd is regenerated (when installing
> grub-efi-amd6). This time the initrd is build in host-only mode.
> 
> The big question: How to solve that? Should dracut become smarter and
> detect either the chroot run or that a loop mount is probably not what
> is wanted?

IMO detection of the chroot is a good approach. We already have 
various software pieces that behave differently when they detect a 
chroot (systemctl, glibc postinst, etc).

I think this would also help users that run in a rescue environment, 
as (per my limited understanding), hostonly would also likely 
produce something that won't boot.

> Or should autopkgtest-build-qemu add a dracut config to
> disable host-only?
> This could be done by placing a file in /etc/dracut.conf.d/*.conf with:
> hostonly="no"

As I wrote earlier, I believe this is non-ideal. Each image builder 
will have to learn it, and each image builder will do something 
different. You'll end up with various configurations in the wild 
that you don't know that they exist.

Also it seems to me that, once the built installation actually 
booted, users no longer want the override.

Chris

Reply via email to