Commit Graph

176 Commits

Author SHA1 Message Date
Jared Baur
e9dd5abae3
Add coreutils to list of dependencies
This allows for the disko scripts to be ran in more foreign environments
where we can't assume the basic utilities coreutils provides are
available or aren't 1-for-1 compatible (e.g. busybox utilities).
2024-05-15 09:57:53 -07:00
Jared Baur
27c40e5381
Add missing gawk dependency 2024-05-15 09:57:25 -07:00
danjujan
d62af72c22 Fix xargs command not found in make-disk-image script 2024-05-14 21:38:05 +00:00
Giel van Schijndel
f236f6df36 swap: forward discardPolicy option to randomEncryption.allowDiscards
I.e. instead of effectively ignoring `discardPolicy` when combined with
`randomEncryption`, or adding a second option requiring the user to
repeat themselves (DRY violation), just enable both when requested via
`discardPolicy`.

Without this `discardPolicy` is a NOP when `randomEncryption` is
enabled.
2024-05-14 21:30:40 +00:00
lassulus
159d87ea5b
Merge pull request #623 from muggenhor/feat/swap-discard
swap: support swapDevices' discardPolicy and priority options
2024-05-11 18:33:55 +02:00
lassulus
4677f6c534
Merge pull request #625 from nix-community/image-fixes
Fix building images when non-binary reproducible builds are present
2024-05-07 10:26:51 +02:00
Sizhe Zhao
874c83c948 fix(lib): fix typo 2024-05-07 07:34:02 +00:00
Jörg Thalheim
718565dfbb drop dependency on xcp
It's actually not faster in combination with xargs...
2024-05-07 08:53:10 +02:00
Jörg Thalheim
cdefe26742 load database with checksum again but do the same in disko-install 2024-05-07 08:53:10 +02:00
Jörg Thalheim
8a4585a200 disko-images: replace nix-copy with cp
This hopefully fixes the large memory consumption we have seen in the
past. Also presumably coreutils cp is more tuned for performance than
whatever nix does.
2024-05-06 20:51:39 +02:00
Jörg Thalheim
4f8c8580b4 fix building images when non-binary reproducible builds are present
closure-info has one flaw, it's possible that this file contains stale
information when build are not reproducible and the local checksum
doesn't match what the remote build created.
The work-around here is that we disregard the hashes and re-compute with
what nar's we actually have locally instead.
2024-05-06 19:29:20 +02:00
Giel van Schijndel
c5a25d5ced
swap: support swapDevices.*.priority option
This just forwards to the underlying NixOS option and expands the mount
script to exhibit the same behavior.
2024-05-06 12:11:58 +02:00
Giel van Schijndel
8a02c0507c
swap: support swapDevices.*.discardPolicy option 2024-05-06 12:11:58 +02:00
Qubasa
9f5d4e45cd nix fmt 2024-04-29 14:57:02 +00:00
Jared Baur
8d4ae698ea Use existing bash instance when running destroyScript
The destroy script already has a bash interpreter in use, but when the
`disk-deactivate` script is ran, it calls out to /usr/bin/env to query
for a bash interpreter. When running the destroyScript in unique places
(such as the stage-1 initrd), /usr/bin/env might not exist, so we can
make destroyScript more self-contained by reusing the same bash.
2024-04-12 18:51:46 +00:00
0x4A6F
07b7d662d8
make partitions.alignment configurable 2024-04-09 21:45:35 +02:00
Kira Bruneau
79eab0e82c types btrfs: fix format without swap or subvolumes 2024-04-08 21:37:04 +00:00
lassulus
89b617b99d idempotent gpt 2024-04-07 12:47:36 +02:00
Jared Baur
0a17298c0d Add missing dependency gnused
gnused is used in the disk-deactivate.jq script, but was not defined in
the list of dependencies.
2024-04-05 22:34:38 +00:00
lassulus
f6f2e009d6 types zpool: create pool if device is a zfs_member 2024-03-21 05:36:42 +01:00
lassulus
b7a91b50fd types table: fix duplicate create run 2024-03-20 03:26:36 +01:00
lassulus
f6b72bfed7 types *: make create idempotent 2024-03-13 09:58:33 +01:00
Jörg Thalheim
72818e54ec move disko-install into disko package 2024-03-09 07:05:35 +00:00
Maximilian Bosch
007625baaa
Fix manual build
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.
2024-03-05 17:35:13 +01:00
lassulus
56f6d3d4af types gpt: hash label if it's > 36 characters 2024-03-04 14:55:56 +01:00
lassulus
3cb3775f9b lib/tests: use startCommand for create_machine 2024-03-04 01:51:42 +01:00
ivan770
2ca4b06bdf lvm_vg: add priority option 2024-03-02 13:08:52 -05:00
Jörg Thalheim
590245271a add assertion if mirroredBoots is used in vm test 2024-02-22 00:01:18 +00:00
lassulus
0661bb800c types table: add deprecation warning 2024-02-17 05:31:02 +01:00
lassulus
c13d481b78 hybrid-mbr: cleanup test, wait for udev after paritioning 2024-02-17 04:06:51 +00:00
danjujan
f7424625dc
Rework Hybrid MBR https://github.com/nix-community/disko/pull/168 (#508)
Add hybrid MBR functionality to the gpt type
2024-01-26 21:59:23 +01:00
Ivan Shapovalov
036d480ae8 lib/types/gpt: do not hard-code alignment to 2048 sectors
On 4Kn disks, 2048-sector alignment is equivalent to 8 MiB which is
excessive. Moreover, there is no point in specifying _any_ alignment
at all because sgdisk defaults to 1 MiB already.

Fixes #497.
2024-01-14 11:28:10 +00:00
Wim de With
f78b6498f6 make-disk-image: optionally include ZFS module in kernel 2024-01-12 15:58:58 +00:00
Wim de With
b4afc8bab8 make-disk-image: set image format explicitly
QEMU warns if format=raw is implied, and protects block 0 from getting
overwritten.
2024-01-12 15:54:48 +00:00
Wim de With
c38f369ee4 make-disk-image: umount filesystems after install
The vmTools in nixpkgs shuts the VM down with poweroff -f, which does
not cleanly umount the filesystems. This may lead to filesystem
corruption on the newly created image.
2024-01-12 15:54:48 +00:00
misumisumi
fa5db12d76 zfs: Tolerate no mountable dataset 2024-01-11 23:54:13 +00:00
r-vdp
aef9a509db lib/types/gpt: accept GUID type to set the partition type
See [the wikipedia article on GUID types][wiki_guid]
and the sgdisk man page on `--typecode`.

[wiki_guid]: https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
2024-01-03 21:55:10 +00:00
0xadk
f772d2045e luks: apply flags set in config.settings 2024-01-01 01:16:28 +00:00
Michael Hoang
ce3b896151 zfs: respect canmount
Also refactor `zpool` type to use `zfs_fs` to construct the root dataset
for the zpool, which means we no longer need to duplicate the dataset
create and mount logic inside the `zpool` type.
2024-01-01 01:09:11 +00:00
Michael Hoang
2791cedcba zpool: only unmount when root dataset is mounted
Fixes #486
2024-01-01 01:09:11 +00:00
Michael Hoang
9f9ff673d1 zpool: fix default dataset getting shadowed
If the zpool's root dataset is not the rootfs and gets mounted on
creation, the actual rootfs will get mounted later and shadow the
current mountpoint.

Running `zfs unmount` is the easiest way to unmount the zpool's root
dataset on creation without messing up the value of the `mountpoint`
setting.
2023-12-19 23:49:30 +11:00
matthewcroughan
4c4634bbcb make-disk-image: allow extra dependencies to be passed into image builder 2023-12-14 14:24:37 +00:00
matthewcroughan
bb75ad0b1d make-disk-image: inherit kernel from nixosConfiguration 2023-12-14 14:05:13 +00:00
matthewcroughan
d5cf2e3d61 lib/types/gpt.nix: default = [] -> default = {}
This must have accidentally creeped in during a refactor
2023-12-14 13:55:39 +00:00
matthewcroughan
bd8fbc3f27 make-disk-image: make memSize configurable per disk
Sometimes the VM builder can run out of memory and fail to allocate memory when installing the system toplevel
2023-12-13 15:02:45 +00:00
Ctem
169e99dc3d fix: create btrfs subvolume parent directories
Fixes #409
2023-12-13 14:58:36 +00:00
Jörg Thalheim
1144887c6f lvm: update kernel modules when creating raid 2023-12-06 23:28:45 +00:00
Jörg Thalheim
3cb78c93e6 swap: don't activate random encrypted swap files
This requires more code and is not implemented just now.
2023-11-25 15:47:29 +00:00
Andrew Marshall
2d7d77878c Implement preMountHook & postMountHook
These options previously existed but had no effect. Now they are
implemented. They only affect mount during disko’s filesystem creation,
not during any later mounts.

Adding test case to existing “complex” example and test mostly because
couldn’t think of any better place to put it.
2023-11-12 09:36:50 +00:00
Janik H
4fec5f515c make-disk-image: make generating the image more efficent 2023-11-11 16:14:15 +01:00