The option `disko.devices.lvm_vg.<name>.lvs.<name>.priority` depends on
a different option that's unset by default breaking the manual build
like this:
… while evaluating the attribute 'optionalValue.value'
at /nix/store/lwyjz70qh12nq6cb7fixl85vryzxqm3c-source/lib/modules.nix:856:5:
855|
856| optionalValue =
| ^
857| if isDefined then { value = mergedValue; }
… while evaluating a branch condition
at /nix/store/lwyjz70qh12nq6cb7fixl85vryzxqm3c-source/lib/modules.nix:857:7:
856| optionalValue =
857| if isDefined then { value = mergedValue; }
| ^
858| else {};
(stack trace truncated; use '--show-trace' to show the full trace)
error: The option `disko.devices.lvm_vg.<name>.lvs.<name>.size' is used but not defined.
This is especially noticeable when using `documentation.nixos.includeAllModules` locally.
Fixed the issue itself by adding a `defaultText` and added the
`disko-doc` job to the `checks` output so that CI hopefully catches this
from now on.
disko-install combines disko and nixos-install into a single command.
Example usage:
sudo ./disko-install --flake /someflake#eva --disk sda /dev/zvol/zroot/test
Before this change, if you created a systemd service that ran
“disko --mode disko <path-to-config>”, then you would (probably) get
this error:
disk-deactivate: line 6: /dev/stderr: No such device or address
Since disk-deactivate uses “set -e”, that error would prevent
disk-deactivate from actually deactivating any disks. The problem is
that disk-deactivate tries to print text to stderr by doing this:
echo "Text" >/dev/stderr
systemd.exec(5) explains why that doesn’t work and goes on to say [1]:
> This means when executing shell scripts the construct
> **echo "hello" > /dev/stderr** for writing text to stderr will not
> work. To mitigate this use the construct **echo "hello" >&2** instead,
> which is mostly equivalent and avoids this pitfall.
[1]: <https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#StandardOutput=>
---
You can test this commit by doing the following:
1. Download a copy of this gist:
<https://gist.github.com/Jayman2000/60b483659e89283716582ac38856dca6>
2. Build a custom NixOS installation ISO that contains a systemd service
that runs disko:
nix-build --arg diskoDir <path-to-disko-repo> <path-to-gist>
Once that command finishes, the ISO will be in ./result/iso/.
3. Create a VM. Make sure that it has a VirtIO disk that’s more than
500M large. Also make sure that it has an optical disc drive.
4. Put the ISO file from step 2 into the VM’s optical disc drive.
5. Turn on the VM and boot into the installation ISO.
6. Start the systemd service:
sudo systemctl start disko-test
7. Check journalctl to see if there are any errors related to
disk-deactivate.