summaryrefslogtreecommitdiff
path: root/gnu/build
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2025-11-24 15:51:09 +0100
committerLudovic Courtès <ludo@gnu.org>2025-12-03 17:49:40 +0100
commite7da674bc7edd2321e42ef021c8925fefa995313 (patch)
tree32fb338c8aa1bec4a1c2e629e82f8d83565e74bd /gnu/build
parent2d549178e102761dff86f3be12c3bc1979f52efb (diff)
image: Create directory indexes for ext4 images.
Fixes a bug whereby the store in ext4 partitions created with ‘guix system image’ would be limited to 65,000 sub-directories. * gnu/build/image.scm (make-ext-image): Invoke “e2fsck -fDy”. Fixes: guix/guix#4396 Change-Id: I02d3470fac8bdd8971083be8fce192b72bf6510c
Diffstat (limited to 'gnu/build')
-rw-r--r--gnu/build/image.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/gnu/build/image.scm b/gnu/build/image.scm
index c99446f7382..d68fb29e05a 100644
--- a/gnu/build/image.scm
+++ b/gnu/build/image.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2020, 2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -118,7 +118,14 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
(size-in-kib
(if (eq? size 'guess)
(estimate-partition-size root)
- size)))))))
+ size)))))
+
+ ;; 'mke2fs' does not create directory indexes by default, meaning that
+ ;; directories have a limit of 65,000 sub-directories, which can be
+ ;; problematic for the store. To avoid that, run 'e2fsck -D' to create
+ ;; those directory indexes. See
+ ;; <https://github.com/tytso/e2fsprogs/issues/257>.
+ (invoke "e2fsck" "-fDy" target)))
(define* (make-f2fs-image partition target root
#:key