diff options
author | Roman Scherer <roman@burningswell.com> | 2024-10-03 14:13:31 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-10-14 14:08:43 +0200 |
commit | 727a72c5e26345257a5e6b83387d51b3b15cc542 (patch) | |
tree | d701894ef73a91c8cdd05f370e3ddad763a89875 | |
parent | 766ad072ad90d4ffc161cb83e29910b7bb3a9d54 (diff) | |
download | guix-727a72c5e26345257a5e6b83387d51b3b15cc542.tar guix-727a72c5e26345257a5e6b83387d51b3b15cc542.tar.gz |
image: Use file system options in make-vfat-image.
* gnu/build/image.scm (make-vfat-image): Use file system options.
Change-Id: I791aadd2803d1ef96fc79cf8910a74a0083d2b6e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | doc/guix.texi | 3 | ||||
-rw-r--r-- | gnu/build/image.scm | 24 |
2 files changed, 16 insertions, 11 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 07dd00a7c2..60af6cb9ce 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -48348,7 +48348,8 @@ and @code{"ext4"}. @item @code{file-system-options} (default: @code{'()}) The partition file system creation options that should be passed to the partition creation tool, as a list of strings. This is only supported -when creating @code{"ext4"} partitions. +when creating @code{"vfat"}, @code{"fat16"}, @code{"fat32"} or +@code{"ext4"} partitions. See the @code{"extended-options"} man page section of the @code{"mke2fs"} tool for a more complete reference. diff --git a/gnu/build/image.scm b/gnu/build/image.scm index 6ca0a428e0..50518585f8 100644 --- a/gnu/build/image.scm +++ b/gnu/build/image.scm @@ -105,17 +105,21 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum." "Handle the creation of VFAT partition images. See 'make-partition-image'." (let ((size (partition-size partition)) (label (partition-label partition)) - (flags (partition-flags partition))) + (flags (partition-flags partition)) + (fs-options (partition-file-system-options partition))) (apply invoke "fakeroot" "mkdosfs" "-n" label "-C" target - "-F" (number->string fs-bits) - (size-in-kib - (if (eq? size 'guess) - (estimate-partition-size root) - size)) - ;; u-boot in particular needs the formatted block - ;; size and the physical block size to be equal. - ;; TODO: What about 4k blocks? - (if (member 'esp flags) (list "-S" "512") '())) + "-F" (number->string fs-bits) + (size-in-kib + (if (eq? size 'guess) + (estimate-partition-size root) + size)) + ;; u-boot in particular needs the formatted block + ;; size and the physical block size to be equal. + ;; TODO: What about 4k blocks? + (if (and (member 'esp flags) + (not (member "-S" fs-options))) + (append (list "-S" "512") fs-options) + fs-options)) (for-each (lambda (file) (unless (member file '("." "..")) (invoke "mcopy" "-bsp" "-i" target |