In this thread [1], a user reports a problem when finding a partition by its UUID in Guix. Another user answered the following:
#+BEGIN_QUOTE The code responsible for that is in (gnu build file-systems). It currently recognizes only some file system types: ISO9660, ext2/3/4, Btrfs, FAT32, FAT16, and JFS. #+END_QUOTE I confirmed that this is true because (uuid ...) returned the partition when the file system type was EXT4, but it returned #f when the file system type was EXFAT. I was wondering how I could determine the supported file system types when inspecting the source code at ./gnu/build/file-systems.scm [2]. Answering this question on my own would have been useful if I hadn't found the aforementioned thread in the mailing list archive and I had needed to answer it on the fly. By inspecting the source code at that file, I noticed a pattern and I thought that searching all ocurrences of this regular expression could answer that question: #+BEGIN_EXAMPLE ^;;;.*file systems #+END_EXAMPLE I found these matches. #+BEGIN_EXAMPLE 10 matches for "^;;;.*file systems" in buffer: file-systems.scm 70:;;; check file systems. 191:;;; Ext2 file systems. 332:;;; Bcachefs file systems. 395:;;; Btrfs file systems. 449:;;; FAT32 file systems. 491:;;; FAT16 file systems. 518:;;; ISO9660 file systems. 578:;;; JFS file systems. 744:;;; NTFS file systems. 786:;;; XFS file systems. #+END_EXAMPLE If I use this information for answering my question, then EXT2 is a supported file system type, but how I could know that EXT3 and EXT4 is also a supported file system type? Is it because when EXT2 is supported, then it is highly likely that EXT3 and EXT4 is also supported? [1] https://mail.gnu.org/archive/html/bug-guix/2020-04/msg00031.html [2] https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/build/file-systems.scm