22 May 2023 |
@elvishjerricco:matrix.org | because of some much-needed changes to qemu-vm.nix | 13:41:59 |
Arian | I'm pretty sure all the filesystems the kernel implements are now exposed as userspace libraries | 13:44:08 |
K900 | They are absolutely not | 13:44:19 |
@elvishjerricco:matrix.org | yea wut | 13:44:24 |
Arian | :( | 13:44:25 |
Arian | damit | 13:44:29 |
K900 | Unless you mean, like, LKL, which we already are using | 13:44:39 |
K900 | (and it's still very slow) | 13:44:44 |
@elvishjerricco:matrix.org | how are we using that? | 13:45:05 |
K900 | In make-disk-image | 13:45:43 |
Arian | and is there not something like a mount namespace? where we can mount a disk image as non-root? | 13:46:38 |
Arian | that would also work no? | 13:46:49 |
K900 | There is, but that would be wildly impure | 13:47:02 |
@elvishjerricco:matrix.org | How is that impure? It could be done in the sandbox by the derivation, no outside help needed | 13:47:50 |
K900 | It'll depend heavily on the kernel support for those filesystems | 13:48:02 |
@elvishjerricco:matrix.org | oh i see | 13:48:07 |
@elvishjerricco:matrix.org | yea | 13:48:08 |
Arian | could make the kernel config part of system-features :hmm: | 13:48:31 |
@elvishjerricco:matrix.org | pls no :P | 13:48:38 |
Arian | but idk if I like that | 13:48:39 |
Arian | maybe the trick is to just boot a way more minimal VM than we're currently doing | 13:49:09 |
@elvishjerricco:matrix.org | but yea we should definitely work to remove the unnecessary disk images from the nixos tests that don't need them | 13:49:14 |
Arian | and just do the filesystem bits | 13:49:18 |
@elvishjerricco:matrix.org | they take a long time to build and put a lot of strain on storage | 13:49:29 |
Arian | (or maybe we do that already; idk) | 13:49:31 |
@nikstur:matrix.org | In reply to @arianvp:matrix.org shouldn't we be able to build an image without booting a VM? Afaik all the file systems that systemd-repart supports ("ext4", "btrfs", "xfs", "vfat", "erofs", "squashfs") can be created without a VM. In fact with this commit https://github.com/systemd/systemd/commit/1eb86ddde4f36165a99732b53cc97cef1acc3aa7 we can build disk images with systemd-repart in the nix build sandbox. For all but vfat and xfs the, mkfs tools take a directory and turn it into a fs. To build a vfat fs you need to copy the files manually (with mtools) into the fs image after you have created it (still in user space though) and for xfs there is a weird protofile which you can also create outside of a VM. I have no idea about the other filesystems NixOS supports. | 16:14:07 |
@nikstur:matrix.org | And then there a fun things like bootctl install which checks that the ESP is a vfat fs, so afaik you cant call it in a chroot. | 16:14:37 |
@elvishjerricco:matrix.org | How does repart's CopyFiles thing even work? | 16:16:08 |
@nikstur:matrix.org | Ahh this is new, there is a variable for bootctl which disables the check $SYSTEMD_RELAX_ESP_CHECKS=1 | 16:16:29 |
@nikstur:matrix.org | In reply to @elvishjerricco:matrix.org How does repart's CopyFiles thing even work? It creates a root directory for most filesystems and then calls mkfs pointing at the root directory. | 16:17:11 |