2024.06.25.iso calamares zfs broken

I tried to install with ZFS (adding zfs unit after partition unit) but pool creation fails because there is no PARTUUID available for the last partition created (I verified it using lsblk / blkid) until I run partprobe. I thought about adding interactiveterminal unit after partition unit to be able to run partprobe manually before running zfs unit but that is broken as well (says Konsole not installed while I can run it manually just fine).

No sure if these instructions still work on the latest ISO. I don’t use zfs nor do i have any experience installing it.

I used it before (even contributed some minor enhancements to the steps) but it is not working now because of the issue I described above.

1 Like

The zfs module doesn’t launch konsole. Can you share the full logs from the failed install?

Of course. I wanted to run konsole by adding its unit before zfs unit.

If you want to run a command, use a shellprocess module.

https://termbin.com/xptw

The partition is there, but no *UUID:

[root@EndeavourOS ~]# lsblk
NAME                                          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
loop0                                           7:0    0  2.4G  1 loop  /run/archiso/airootfs
sda                                             8:0    0   10G  0 disk  
├─sda1                                          8:1    0    1G  0 part  
└─sda2                                          8:2    0    1G  0 part  
  └─luks-f4b1b606-8389-477b-80e1-8e1da97aa7bf 254:0    0 1022M  0 crypt 
sdb                                             8:16   0    8G  0 disk  
sr0                                            11:0    1  2.7G  0 rom   /run/archiso/bootmnt
[root@EndeavourOS ~]# blkid
/dev/sda1: UUID="A780-91E6" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI" PARTUUID="d1093f53-bb91-4497-a7d3-1b2dee34ab89"
/dev/sda2: UUID="f4b1b606-8389-477b-80e1-8e1da97aa7bf" TYPE="crypto_LUKS" PARTLABEL="BOOT" PARTUUID="cc5b319b-31f2-4644-adc0-3478068b189c"
/dev/sr0: BLOCK_SIZE="2048" UUID="2024-06-25-11-30-26-00" LABEL="EOS_202406" TYPE="iso9660" PTUUID="e06d72b0" PTTYPE="dos"
/dev/loop0: BLOCK_SIZE="1048576" TYPE="squashfs"
/dev/mapper/luks-f4b1b606-8389-477b-80e1-8e1da97aa7bf: LABEL="BOOT" UUID="7e25d2fe-bf9f-4d09-bf7d-617e617ebf82" BLOCK_SIZE="4096" TYPE="ext4"
[root@EndeavourOS ~]# fdisk -l
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2E76A7DD-EAB8-4462-99FD-70607B423DC0

Device       Start      End  Sectors Size Type
/dev/sda1     4096  2101247  2097152   1G EFI System
/dev/sda2  2101248  4198399  2097152   1G Linux filesystem
/dev/sda3  4198400 20964824 16766425   8G Linux filesystem

@dalto Just curious: what’s interactiveterminal module for then if not for (intuitively) running a terminal?

BTW: adding shellprocess unit after partition unit did nothing.

OK, reverse-engineered the shellprocess module and found out how it is actually used…

1 Like

As an alternative, you could just read the documentation or look at the examples in our config :slight_smile:

To be honest, I didn’t even know there was a module like that. I have never heard of anyone using it but there must be a use case for it somewhere out there.

That doc is useless as it does not say WHERE should be that script key.

However the examples where useful. Anyway:
I added

- id:       partprobe
  module    shellprocess
  config:   shellprocess_partprobe.conf

to /etc/calamares/settings_online.conf and

  - shellprocess@partprobe

to the exec: section and created /etc/calamares/modules/shellprocess_partprobe.conf:

# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# partprobe
---

dontChroot: true

script:
 - "/usr/bin/partprobe"

i18n:
 name: "Probes partitions for changes"

and now the installer hangs at startup.

Just noticed the missing colon after module. Defensive programming is obviously not cool these days…

OK, failed again because of

Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
Error: Can't have a partition outside the disk!

Damn! Changed to

 - "/usr/bin/partprobe || true"

Now the installation continues…

its basically not a doc, but a sample module config on its own, only with the documentation written inside itself…

You really should share your used setup, may you have a git outside to add it and share the link?
Will be helpful for other users or even us adding it to the installer.

And sry to not be much helpful, i was busy doing other things…

@dalto Thanks for that shellprocess hint, I got the installer working now :slight_smile:

@joekamprad Sry, I don’t have any repo. I just followed Unofficial zfs on root installation instructions (if you look at my last post summarizing all the needed steps) and just added this partprobe step to the installation process. So to summarize the addition again:

Add

- id:       partprobe
  module:   shellprocess
  config:   shellprocess_partprobe.conf

to /etc/calamares/settings_online.conf and

  - shellprocess@partprobe

after partition unit and before zfs unit in the exec: section and created /etc/calamares/modules/shellprocess_partprobe.conf:

# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# partprobe
---

dontChroot: true

script:
 - "/usr/bin/partprobe || true"

i18n:
 name: "Probes partitions for changes"

That’s all that’s needed (well the installation is not finished yet, still installing the system, I got only one CPU in the VirtualBox VM :frowning: )

1 Like