aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2017-07-21 01:06:46 +0200
committerDanny Milosavljevic <dannym@scratchpost.org>2017-08-05 18:49:33 +0200
commit9833bcfc08ef009b9e8b4398baa481ef65c80ad7 (patch)
tree017afc155b31d681bc3c6c0644e51d0f40f2eb63 /gnu
parent91d94e28ec30d72e1e6a7d0ff8af49656c3f1d7e (diff)
downloadgnu-guix-9833bcfc08ef009b9e8b4398baa481ef65c80ad7.tar
gnu-guix-9833bcfc08ef009b9e8b4398baa481ef65c80ad7.tar.gz
build: Allow mounting of entire disks.
* gnu/build/file-systems.scm (disk-partitions): Also return entire drives.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/file-systems.scm17
1 files changed, 9 insertions, 8 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index b6930497d6..203fbdfffb 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -373,15 +373,16 @@ not valid header was found."
(define (disk-partitions)
"Return the list of device names corresponding to valid disk partitions."
- (define (last-character str)
- (string-ref str (- (string-length str) 1)))
-
(define (partition? name major minor)
- ;; Select device names that end in a digit, like libblkid's 'probe_all'
- ;; function does. Checking for "/sys/dev/block/MAJOR:MINOR/partition"
- ;; doesn't work for partitions coming from mapped devices.
- (and (char-set-contains? char-set:digit (last-character name))
- (> major 2))) ;ignore RAM disks and floppy disks
+ ;; grub-mkrescue does some funny things for EFI support which
+ ;; makes it a lot more difficult than one would expect to support
+ ;; booting an ISO-9660 image from an USB flash drive.
+ ;; For example there's a buggy (too small) hidden partition in it
+ ;; which Linux mounts and then proceeds to fail while trying to
+ ;; fall off the edge.
+ ;; In any case, partition tables are supposed to be optional so
+ ;; here we allow checking entire disks for file systems, too.
+ (> major 2)) ;ignore RAM disks and floppy disks
(call-with-input-file "/proc/partitions"
(lambda (port)