On Wed, 2026-04-08 at 08:13 +0200, Christian Kastner wrote:
> Control: reopen -1
> 
> On 2026-04-07 13:37, Christian Kastner wrote:
> > On 2026-04-07 13:26, Benjamin Drung wrote:
> > > Okay. Found it: dracut in installed and generates the initrd. Some time
> > > later /dev is mounted:
> > > 
> > > Exec: ['mount', '--bind', '/dev', '/tmp/tmp8sopd0qw/dev']
> > > Exec: ['mount', '--bind', '/sys', '/tmp/tmp8sopd0qw/sys']
> > > Exec: ['mount', '--bind', '/proc', '/tmp/tmp8sopd0qw/proc']
> > > 
> > > Then your modscript.sh is executed:
> > > 
> > > Processing triggers for dracut (110-9) ...
> > > update-initramfs: Generating /boot/initrd.img-6.19.11+deb14-amd64
> > > 
> > > This time hostonly mode is not disabled, because /dev is mounted.
> 
> > If you are confident enough with the change, that's more than good
> > enough for me. And a -9 upload will enable a regular test.
> 
> I tested 110-9, and I'm afraid the problem is still present. A boot with
> qemu-system-x86 shows it's again hangs at
> 
>     (1 of 2) Job dev-mapper-loop0p1.device/start running (3s / no limit)
>     (2 of 2) Job dracut-initqueue.service/start running (8s / no limit)

I could reproduce the issue:

```
$ 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? 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"

-- 
Benjamin Drung
Debian & Ubuntu Developer

Reply via email to