Age | Commit message (Collapse) | Author |
|
The long story of this commit can be found in #1079443. Special thanks
to all of the following for investing significant amounts of time into
debugging the root cause:
* Tj <tj.iam.tj@proton.me>
* Jochen Sprickerhof <jspricke@debian.org>
* Chris Hofstaedtler <zeha@debian.org>
In the end, dracut-install fails to install kernel modules (including
virtio_blk) that are being passed as =directory if said directory has an
inode number exceeding 32bit on an arm32 userland. Lots of thought has
been expended into fixing fts on the glibc side with little conclusions.
Since armhf is still somewhat important, we settle on a workaround here.
The problem is acknowledged and we explicitly install the virtio_blk
kernel module that dracut-install should have installed. Doing so at
least makes the debvm boot.
For reproducing the problem, TMPDIR needs to point to a directory where
created directories receive inodes exceeding 32bit. On a tmpfs, this
situation can be achieved by creating and deleting lots of directories.
The following code can be run in parallel to increase the inode counter
in a couple of hours:
#include <sys/stat.h>
#include <unistd.h>
int main(int argc, char **argv) {
for(;;) {
mkdir(argv[1], 0755);
rmdir(argv[1]);
}
}
|
|
Reported-by: Fabian Gruenbichler
|
|
|
|
While this works for armel+armhf by sheer luck, debvm-run fails for
i386+amd64 as it selects qemu-system-i386.
|
|
|
|
marvell seems deprecated. Suggested by Jochen Sprickerhof.
|
|
Reported-by: Jochen Sprickerhof <git@jochen.sprickerhof.de>
|
|
On Debian, the linux images depend on linux-initramfs-tool, so this
isn't actually a change here. On Ubuntu, this dependency is missing, so
we actually add it. Unfortunately, initramfs-tools fails to install as
it cannot determine the root filesystem type.
Reported-by: Jochen Sprickerhof <git@jochen.sprickerhof.de>
|
|
The apt pattern ?or does not short-circuit. It installs any pattern
matching one of the arguments. On amd64, we thus get both the cloud and
the non-cloud variant.
There aren't that many good options to fix this, so the next best way is
using a hook and running apt again, which is suboptimal in terms of
repeated triggers, but likely the best we can do at present.
|