(define* (make-vfat-image partition target root fs_bits) "Handle the creation of VFAT partition images. See 'make-partition-image'." (let ((size (partition-size partition)) (label (partition-label partition)) (flags (partition-flags partition))) (invoke (append (list "fakeroot" "mkdosfs" "-n" label "-C" target "-F" (number->string fs_bits) (size-in-kib (if (eq? size 'guess) (estimate-partition-size root) size))) (if (member 'esp flags) (list "-S" "1024") ()) )) (for-each (lambda (file) (unless (member file '("." "..")) (invoke "mcopy" "-bsp" "-i" target (string-append root "/" file) (string-append "::" file)))) (scandir root))))