From fb03f44bb117226e7d67a85401ffbb54ad8858ed Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 3 Jun 2017 19:55:57 +0200 Subject: file-systems: Improve error handling in the iso9660 case - fixes boot problem. * gnu/build/file-systems.scm (read-iso9660-superblock): Modify. --- gnu/build/file-systems.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 3e0873377a..10be0dc83c 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -260,7 +260,11 @@ volume descriptor from ~s" "Return the raw contents of DEVICE's iso9660 primary volume descriptor as a bytevector, or #f if DEVICE does not contain an iso9660 file system." ;; Start reading at sector 16. - (read-iso9660-primary-volume-descriptor device (* 2048 16))) + ;; Since we are not sure that the device contains an ISO9660 filesystem, + ;; we have to find that out first. + (if (read-superblock device (* 2048 16) 2048 iso9660-superblock?) + (read-iso9660-primary-volume-descriptor device (* 2048 16)) + #f)) ; Device does not contain an iso9660 filesystem. (define (iso9660-superblock-uuid sblock) "Return the modification time of an iso9660 primary volume descriptor -- cgit v1.2.3