diff options
-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 |