installer: Add NTFS support.
This adds support for creating and editing NTFS partitions. It is however not possible yet to create root NTFS partitions, as overlaying on top of a fuse partition does not seem supported. * gnu/installer.scm (installer-program): Add "ntfs-3g" to the inputs. * gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type, partition-filesystem-user-type, create-ntfs-file-system, format-user-partitions): Add NTFS support. * gnu/installer/newt/partition.scm (run-fs-type-page): Add NTFS support.
This commit is contained in:
		
							parent
							
								
									675e56221e
								
							
						
					
					
						commit
						218a67dfab
					
				
					 3 changed files with 16 additions and 3 deletions
				
			
		| 
						 | 
					@ -320,6 +320,7 @@ selected keymap."
 | 
				
			||||||
                       e2fsprogs ;mkfs.ext4
 | 
					                       e2fsprogs ;mkfs.ext4
 | 
				
			||||||
                       btrfs-progs
 | 
					                       btrfs-progs
 | 
				
			||||||
                       jfsutils ;jfs_mkfs
 | 
					                       jfsutils ;jfs_mkfs
 | 
				
			||||||
 | 
					                       ntfs-3g ;mkfs.ntfs
 | 
				
			||||||
                       kbd ;chvt
 | 
					                       kbd ;chvt
 | 
				
			||||||
                       guix ;guix system init call
 | 
					                       guix ;guix system init call
 | 
				
			||||||
                       util-linux ;mkwap
 | 
					                       util-linux ;mkwap
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -121,7 +121,7 @@ Be careful, all data on the disk will be lost.")
 | 
				
			||||||
  (run-listbox-selection-page
 | 
					  (run-listbox-selection-page
 | 
				
			||||||
   #:info-text (G_ "Please select the file-system type for this partition.")
 | 
					   #:info-text (G_ "Please select the file-system type for this partition.")
 | 
				
			||||||
   #:title (G_ "File-system type")
 | 
					   #:title (G_ "File-system type")
 | 
				
			||||||
   #:listbox-items '(ext4 btrfs fat16 fat32 jfs swap)
 | 
					   #:listbox-items '(ext4 btrfs fat16 fat32 jfs ntfs swap)
 | 
				
			||||||
   #:listbox-item->text user-fs-type-name
 | 
					   #:listbox-item->text user-fs-type-name
 | 
				
			||||||
   #:sort-listbox-items? #f
 | 
					   #:sort-listbox-items? #f
 | 
				
			||||||
   #:button-text (G_ "Exit")
 | 
					   #:button-text (G_ "Exit")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -223,6 +223,7 @@ inferior to MAX-SIZE, #f otherwise."
 | 
				
			||||||
    ((fat16) "fat16")
 | 
					    ((fat16) "fat16")
 | 
				
			||||||
    ((fat32) "fat32")
 | 
					    ((fat32) "fat32")
 | 
				
			||||||
    ((jfs)   "jfs")
 | 
					    ((jfs)   "jfs")
 | 
				
			||||||
 | 
					    ((ntfs)  "ntfs")
 | 
				
			||||||
    ((swap)  "linux-swap")))
 | 
					    ((swap)  "linux-swap")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (user-fs-type->mount-type fs-type)
 | 
					(define (user-fs-type->mount-type fs-type)
 | 
				
			||||||
| 
						 | 
					@ -232,7 +233,8 @@ inferior to MAX-SIZE, #f otherwise."
 | 
				
			||||||
    ((btrfs) "btrfs")
 | 
					    ((btrfs) "btrfs")
 | 
				
			||||||
    ((fat16) "fat")
 | 
					    ((fat16) "fat")
 | 
				
			||||||
    ((fat32) "vfat")
 | 
					    ((fat32) "vfat")
 | 
				
			||||||
    ((jfs) "jfs")))
 | 
					    ((jfs)   "jfs")
 | 
				
			||||||
 | 
					    ((ntfs)  "ntfs")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (partition-filesystem-user-type partition)
 | 
					(define (partition-filesystem-user-type partition)
 | 
				
			||||||
  "Return the filesystem type of PARTITION, to be stored in the FS-TYPE field
 | 
					  "Return the filesystem type of PARTITION, to be stored in the FS-TYPE field
 | 
				
			||||||
| 
						 | 
					@ -246,6 +248,7 @@ of <user-partition> record."
 | 
				
			||||||
            ((string=? name "fat16") 'fat16)
 | 
					            ((string=? name "fat16") 'fat16)
 | 
				
			||||||
            ((string=? name "fat32") 'fat32)
 | 
					            ((string=? name "fat32") 'fat32)
 | 
				
			||||||
            ((string=? name "jfs") 'jfs)
 | 
					            ((string=? name "jfs") 'jfs)
 | 
				
			||||||
 | 
					            ((string=? name "ntfs") 'ntfs)
 | 
				
			||||||
            ((or (string=? name "swsusp")
 | 
					            ((or (string=? name "swsusp")
 | 
				
			||||||
                 (string=? name "linux-swap(v0)")
 | 
					                 (string=? name "linux-swap(v0)")
 | 
				
			||||||
                 (string=? name "linux-swap(v1)"))
 | 
					                 (string=? name "linux-swap(v1)"))
 | 
				
			||||||
| 
						 | 
					@ -1040,6 +1043,11 @@ bit bucket."
 | 
				
			||||||
  (with-null-output-ports
 | 
					  (with-null-output-ports
 | 
				
			||||||
   (invoke "jfs_mkfs" "-f" partition)))
 | 
					   (invoke "jfs_mkfs" "-f" partition)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (create-ntfs-file-system partition)
 | 
				
			||||||
 | 
					  "Create a JFS file-system for PARTITION file-name."
 | 
				
			||||||
 | 
					  (with-null-output-ports
 | 
				
			||||||
 | 
					   (invoke "mkfs.ntfs" "-F" "-f" partition)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (create-swap-partition partition)
 | 
					(define (create-swap-partition partition)
 | 
				
			||||||
  "Set up swap area on PARTITION file-name."
 | 
					  "Set up swap area on PARTITION file-name."
 | 
				
			||||||
  (with-null-output-ports
 | 
					  (with-null-output-ports
 | 
				
			||||||
| 
						 | 
					@ -1117,6 +1125,10 @@ NEED-FORMATING? field set to #t."
 | 
				
			||||||
          (and need-formatting?
 | 
					          (and need-formatting?
 | 
				
			||||||
               (not (eq? type 'extended))
 | 
					               (not (eq? type 'extended))
 | 
				
			||||||
               (create-jfs-file-system file-name)))
 | 
					               (create-jfs-file-system file-name)))
 | 
				
			||||||
 | 
					         ((ntfs)
 | 
				
			||||||
 | 
					          (and need-formatting?
 | 
				
			||||||
 | 
					               (not (eq? type 'extended))
 | 
				
			||||||
 | 
					               (create-ntfs-file-system file-name)))
 | 
				
			||||||
         ((swap)
 | 
					         ((swap)
 | 
				
			||||||
          (create-swap-partition file-name))
 | 
					          (create-swap-partition file-name))
 | 
				
			||||||
         (else
 | 
					         (else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue