Age | Commit message (Collapse) | Author |
|
Why?
genext2fs is slow. It has O(n^2) behaviour, which becomes annoying with
larger filesystems. It also creates an ext2 image and we have to upgrade
it to ext4 in multiple steps. Even then, the image has an inode size of
128, which is incompatible with 2038 and does not allow storing
sub-second precision time stamps.
How?
We use mkfs.ext4 from e2fsprogs (which is required anyway) instead.
Running this from within a --customize-hook does not work, because the
user namespace used for the hook often has no privileges to write to the
output image. Instead, we now ask mmdebstrap to output to a directory
and create the filesystem separately. We construct a special namespace
that has both access to the tree and to the output image and perform the
mkfs.ext4 there. As a consequence, we no longer support any mode but
unshare and since mkfs.ext4 consumes the size parameter, the size syntax
is reduced a bit.
|
|
When kvm works, passing "max" will get us "host" as before. When it does
not, "host" doesn't work at all, but "max" will somewhat.
Suggested-by: Michael Tokarev <mjt@tls.msk.ru>
|
|
Since recent qemu, a non-lpae kernel cannot boot a highmem-enabled
virtual machine. A typical failure is:
pci-host-generic 4010000000.pcie: can't claim ECAM area [mem 0x10000000-0x1fffffff]: address conflict with pcie@10000000 [mem 0x10000000-0x3efeffff]
Since the default kernel image is non-lpae, we disable highmem by
default.
Link: https://lists.nongnu.org/archive/html/qemu-devel/2024-01/msg01444.html
Thanks: Michael Tokarev <mjt@tls.msk.ru>
|
|
Reported-by: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
|
|
|
|
|
|
|
|
|
|
When issuing multiple --sshport options, the last one should win.
Fixes: a2db07766257 ("debvm-run: add a --netopt option to customize the -netdev")
|
|
|
|
|
|
|
|
|
|
As with debvm-create, this option allows skipping default configuration
to let a user override things in their way.
Link: https://bugs.debian.org/1036918
|
|
Should be using stderr.
Fixes: 7d0b160531d6 ("debvm-run: replace shell process with qemu process")
|
|
This way we loose unnecessary detail such as libc, kernel and abi. For
one thing this simplifies the arm* match. For another, this makes us
stop think about arm64ilp32 or x32.
|
|
Fixes: 1c98a5b3b36f ("bin/debvm-run: qemu (>> 1:8.0) provides symlinks for qemu-system-${debarch} as well as qemu-system-any")
|
|
as well as qemu-system-any
|
|
qemu makes heavy use of fd passing, so we better avoid user-passed fds.
|
|
We need the intermediate shell process to clean the temporary files with
the kernel and the initrd - unless we delete them before running qemu.
This method should help with killing a qemu e.g. using a timeout.
|
|
|
|
Unlike qemu's -append, it has append semantics both to repeated use and
to internal defaults.
|
|
|
|
I really should have tested this part, but CI did.
Fixes: 954ba600ffb7 ("debvm-run: massively speed up tcg emulation of arm cpus")
|
|
pauth emulation is very intensive on the CPU and thus there is a
non-cryptographic alternative that provides a speedup of 3 to 4.
https://qemu-project.gitlab.io/qemu/system/arm/cpu-features.html#tcg-vcpu-features
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Reported-by: Emanuele Rocca <ema@debian.org>
Tested-by: Emanuele Rocca <ema@debian.org>
Closes: #1033643
|
|
Reported-by: Jakub Wilk <jwilk@debian.org>
|
|
|
|
We now extend /etc/profile to invoke setterm -resize when detecting an
interactive login on a serial console. This should fix 90% of wrongly
sized serial consoles.
|
|
At this point, we only forward -a to mmdebstrap. It's not actually that
helpful to have this option on both levels, so just keep it on the
mmdebstrap level.
|
|
Reported-by: Fabian Gruenbichler
|
|
|
|
These clearly benefit the amd64 case as well. Experience with the
virtio gpu is not as clear cut as it may crash qemu.
|
|
Reported-by: Arnd Bergmann <arnd@arndb.de>
|
|
|
|
Reported-by: Johannes Schauer Marin Rodrigues <josch@debian.org>
|
|
|
|
Asking for a fsck pass in fstab is not what we want. Requiring fsck
makes sysvinit fail when fsck.ext4 is missing. Without that pass, it
happily boots without e2fsprogs.
Link: https://bugs.debian.org/1028267
Thanks: Thorsten Glaster <t.glaser@tarent.de>
|
|
This option allows changing the init system. The notable addition is
sysv.
|
|
|
|
resize2fs -b will not actually perform a resize. Rather, it will
truncate the file to the filesystem length, reversing the earlier
truncate call. Thus we need second resize2fs call to change the size of
the filesystem.
Fixes: 09bcaa8fe901 ("debvm-create: make the ext4 look more like ext4")
|
|
Closes: #1030254
|
|
We actually expect systemd in the network configuration. Be more honest
about this.
|
|
|
|
Outputting the image in tar format breaks interoperability with
`debvm-run`, but makes it easier to inspect, convert or perform
additional modifications of the generated image.
|
|
Reported-by: Gioele Barabucci <gioele@svario.it>
Closes: #1030255
|
|
One notable difference remains. metadata_csum keeps missing as tune2fs
insists on doing this interactively only.
Reported-by: Gioele Barabucci <gioele@svario.it>
Closes: #1030252
|
|
|
|
install and use multiarch kernels for sibling architectures
See merge request helmutg/debvm!28
|
|
We already pass it in the kvm case where it should become host and all
should be fine. However in the non-kvm case, the default gic can only
support 8 cores. If we want to go beyond that, we need a higher
gic-version. We couldn't measure a performance difference between max
and unset, so we'll just always pass max.
Thanks: Arnd Bergmann <arnd@arndb.de>
Thanks: Johannes Schauer Marin Rodrigues <josch@debian.org>
|
|
Reported-by: Arnd Bergmann <arnd@arndb.de>
|