| 23 Jan 2025 |
matthewcroughan | nice | 02:35:55 |
matthewcroughan | Now copytoram.service fails | 02:39:04 |
matthewcroughan | fileSystems."/nix/store" = {
device = "/sysroot/tmp/store.squashfs";
fsType = "squashfs";
options = [ "loop" ];
};
boot.initrd.systemd.services.copytoram = {
before = [ "sysroot-nix-store.mount" ];
after = [ "dev-disk-by\\x2dpartlabel-nix\\x2dstore.device" ];
requires = [ "dev-disk-by\\x2dpartlabel-nix\\x2dstore.device" ];
serviceConfig.ExecStart = "${pkgs.coreutils}/bin/dd if=/dev/disk/by-partlabel/nix-store of=/sysroot/tmp/store.squashfs";
serviceConfig.Type = "oneshot";
requiredBy = [ "initrd.target" ];
};
| 02:39:14 |
matthewcroughan | for a recap | 02:39:16 |
matthewcroughan | is there a way to make it more verbose, so I don't need a keyboard to see what the stdout of the ExecStart was? | 02:39:41 |
matthewcroughan | I think I've had this before.. sec | 02:39:47 |
ElvishJerricco | I guess you also need unitConfig.RequiresMountsFor = "/sysroot/tmp"; now that I think of it | 02:39:50 |
ElvishJerricco | I think you can point the journal output at the console | 02:40:22 |
matthewcroughan | StandardOutput=/dev/console or somethign? | 02:40:52 |
matthewcroughan | * StandardOutput=/dev/console or something | 02:40:55 |
ElvishJerricco | It would just be StandardOutput=console I think | 02:41:25 |
ElvishJerricco | * It would just be StandardOutput=journal+console I think | 02:41:36 |
ElvishJerricco | I meant you could forward the whole journal to the console, but yea that's probably a bit much :P | 02:41:59 |
matthewcroughan | That's not in man systemd.service where is that? | 02:42:00 |
ElvishJerricco | systemd.exec | 02:42:07 |
ElvishJerricco | kind of a superclass of service for the options it has in common with like mount units and stuff | 02:42:23 |
matthewcroughan | hmm once again, error, I'll try dumping the console out | 02:44:41 |
matthewcroughan | again just "failed to start" | 02:44:57 |
matthewcroughan | ah got it, it's /sysroot/tmp/store.squashfs: No such file or directory | 02:51:13 |
matthewcroughan | /sysroot exists and contains nix and run | 02:51:49 |
matthewcroughan | inside of nix is store, but no contents | 02:51:55 |
ElvishJerricco | I don't understand... | 02:52:46 |
ElvishJerricco | oh, did you just need to mkdir the /syroot/tmp? | 02:52:59 |
matthewcroughan | can I not just make everything in the root? | 02:53:34 |
matthewcroughan | and be like /device = "/store.squashfs"; | 02:54:00 |
matthewcroughan | * and be like device = "/store.squashfs"; | 02:54:15 |
ElvishJerricco | there's a very weird thing where initrd tries to nuke its own ramfs's contents before it does switch-root | 02:55:12 |
ElvishJerricco | so no | 02:55:14 |
ElvishJerricco | though I guess /run/store.squashfs is probably a tad more appropriate | 02:55:27 |
ElvishJerricco | and /run gets move-mounted in between stage 1 and stage 2 | 02:55:46 |