Hi Franz,

On 4/19/24 2:24 PM, Franz Geffke wrote:
I'm having trouble installing guix in qemu, using a "fresh" guix ISO.

```
building 
/gnu/store/byjlc85abyjc3fjj9z982677skmda7ib-module-import-compiled.drv...
building 
/gnu/store/psw8xn9qpsjjnrqmjrfv0v3jj9fphq5m-module-import-compiled.drv...
building 
/gnu/store/a1zcrrcdwhb4wb2g4r0ph8mqclq7f5xn-install-bootloader.scm.drv...
guix system: error: 
'/gnu/store/li1ic17hz460vp1sg0cx2dwgw8q7i8pj-grub-2.06/sbin/grub-install 
--no-floppy --target=i386-pc --boot-directory /mnt/boot /dev/sda' exited with 
status 1; output follows:

   Installing for i386-pc platform.
   /gnu/store/li1ic17hz460vp1sg0cx2dwgw8q7i8pj-grub-2.06/sbin/grub-install: 
error: unknown filesystem.
```

Here's what I've tried so far:
1. The ISO from 2022 
https://ftpmirror.gnu.org/gnu/guix/guix-system-install-1.4.0.x86_64-linux.iso: 
Success
2. Generated a new ISO today: Failure

These are the channels, on the booted ISO:

```
guix describe
   guix 65e8472
     repository URL: https://git.savannah.gnu.org/git/guix.git
     branch: master
     commit: 65e8472a4b6fc6f66871ba0dad518b7d4c63595e
```

Steps I used to install (1) and (2):

```
parted -s /dev/sda -- mklabel msdos mkpart primary ext4 1MiB 100%
parted /dev/sda set 1 boot on
mkfs.ext4 -L my-root /dev/sda1
mount LABEL=my-root /mnt
cp /etc/configuration/lightweight-desktop.scm /mnt/etc/config.scm
# adjust disk, bootloader
herd start cow-store /mnt
guix system init /mnt/etc/config.scm /mnt
```

Findings:

I didn't really dig too deeply yet; Only noticed that this command produces a 
different result, depending on whether the install succeeds, or not `grub-probe 
--target=fs --device /dev/sda`

- Success: `ext2`
- Failure: `grub-probe: error: unknown filesystem.`

I also tried using GPT instead of MBR, but it makes no difference.


I've encountered this problem too, and managed to solve it. I'm 85% sure you're experiencing the same problem as me, and I've been meaning to document it somewhere - its a super obtuse error and it is a showstopper when it comes to installing guix.

Basically, there is a compatibility issue regarding the ext4 filesystem features that GRUB 2.06 supports and the features that `e2fsprogs@1.47.0` enables by default when creating your ext4 filesystem. When these features are enabled, it changes the structure of the filesystem enough that GRUB can't recognise it properly and it fails.

To fix this, you will need to make sure you create your ext4 filesystem with the following features: `mkfs.ext4 /dev/you-partition-here -O has_journal,ext_attr,resize_inode,dir_index,filetype,needs_recovery,extent,flex_bg,sparse_super,large_file,huge_file,uninit_bg,dir_nlink,extra_isize`

These are the features that worked for me. I had to do a lot of trial and error, and I used `tune2fs -l` to see what features weren't supported. The ones I can remember are the metadata_csum features, and some other ones (they showed up as FEATURE_X when running `tune2fs` on my Guix installation image, so I used a Gparted Live CD to get rid of the features that weren't recognised by tune2fs).

This should allow grub to recognise your filesystem during the installation process. I think using a later version of grub would fix this, but that hasn't happened yet. I think there's a patch to upgrade it in `core-updates` somewhere, but I'm not sure.

Anyway, hope this helps!

Warmly,
Ada

Reply via email to