El 12 de noviembre de 2025 15:38:59 UTC, Roman Riabenko <[email protected]>
escribió:
>У ср, 2025-11-12 у 08:47 +0000, Marius пише:
>> El 12 de noviembre de 2025 6:42:28 UTC, Roman Riabenko
>> <[email protected]> escribió:
>> > У ср, 2025-11-12 у 08:32 +0200, Roman Riabenko пише:
>> > > У ср, 2025-11-12 у 01:15 +0000, Marius via пише:
>> > > > The thing is that i've configured the encrypted disk as a BTRFS
>> > > > filesystem with --checksum xxhash (xxhash64 as btrfs decided),
>> > > > --
>> > > > metadata single, -n 32k (so nodesize of 32KiB). I give you this
>> > > > info
>> > > > in case it helps with helping out.
>> > > >
>> > > > When booting into the initrd I get this error that says that
>> > > > it's
>> > > > unable to open the filesystem because no xxhash64 hash is
>> > > > available.
>> > > >
>> > > > From this message I understand that probably the initrd is
>> > > > lacking
>> > > > the xxhash64 module in order to read the btrfs filesystem.
>> > > >
>> > > > So how do I specify to the operative-system config the initrd-
>> > > > module
>> > > > so it gets built and loaded? I know there is the operative-
>> > > > system
>> > > > keyname/field initrd-modules that I can supply with an improper
>> > > > list
>> > > > with modules to load. But which is the correct name for the
>> > > > xxhash64
>> > > > module? From internet I got that there's a xxhash-generic
>> > > > module
>> > > > for
>> > > > the linux kernel. Would that work ("xxhash-generic")?
>> > >
>> > > The following option in the operating-system declaration allows
>> > > me to
>> > > boot with the root partition formatted as btrfs with --checksum
>> > > xxhash,
>> > > which has csum_type xxhash64 as the result.
>> > >
>> > > (initrd-modules (cons "xxhash_generic" %base-initrd-modules))
>> >
>>
>> > For this configuration to build, it is also necessary to add
>> > "linux" to
>> > "use-service-modules", which is usually in the top of the system
>> > configuration.
>> >
>> > (use-service-module linux ...
>>
>>
>> I guess that (use-service-module linux) is the same as (use-module
>> gnu services linux)? Or does it do something more fancy? Do i need to
>
>Yes, (use-modules (gnu services linux)) and (use-service-modules linux)
>provide the same result. It is a kind of a shorthand. The latter
>expands to the former. Also, sorry for the typo at the end of the name
>of use-service-modules in the example.
>
>> add it because of kernel-module-loader-service-type?
>
>No, xxhash_generic appears to be loaded by the kernel automatically, so
>you should only need to add it to initrd-modules. You should not need
>to use a service of kernel-module-loader-service-type.
>
>> This means that I also need to declare more services in the 'service
>> keyname/field of the operative-system definition for xxhash to work?
>
>Sorry for confusion. In a hurry, I misread my notes in the config file
>about the reasons for inclusion of that module. You should not need
>adding modules or services to utilize btrfs with xxhash. The code from
>my initial reply should be sufficient.
>
>Roman
Sadly I wasn't not able to make it work. I get this before entering into a
scheme repl:
registered: /dev/mapper/ncrypt
BTRFS error (device dm-0): error allocating xxhash64 hash for checksum
BTRFS error (device dm-0): open_ctree failed -2
ice-9/boot.scm:1685:16: In procedure raise-exception:
In procedure mount: No such file or directory.
I added (initrd-modules (cons "xxhash_generic" %base-initrd-modules)) into my
os configuration, no luck.
I have btrfs subvolumes for root, home and gnu/store like so: rootfs,
rootfs/home and rootfs/guix-store. Since the btrfs subvolume location does not
correspond to the mount point for root and guix-store, i've declared their
corresponding filesystem, both of them with needed-for-boot #t. The target for
encrypted devices is always /dev/mapper/ncrypt in my config with dependencies
on the mapped device of ncrypt.
For the EFI partition ("/boot/efi") i have also added a filesystem entry
referring to the fat uuid, i did not setup needed-for-boot #t.
At this point i don't know what could be stopping it from working. The btrfs
filesystem was created with the flags xxhash, --metadata single (because it's a
high end ssd) -n 32k.
Any help is appreciated. Beyond this any additional setup goes beyond what I
know about guix
Thank you in advance.
Best regards,
--
Marius