mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Add zfs-load-key.sh to .gitignore
The generated zfs-load-key.sh file should have been added to
the .gitignore file as part of commit 7da8f8d8.  And the
generated file should not be included in the repo.
Reviewed-by: Matthew Thode <prometheanfire@gentoo.org>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #7134
			
			
This commit is contained in:
		
							parent
							
								
									0cf3430d2d
								
							
						
					
					
						commit
						6d82b79699
					
				
							
								
								
									
										3
									
								
								contrib/dracut/90zfs/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								contrib/dracut/90zfs/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -3,5 +3,6 @@ module-setup.sh | |||||||
| mount-zfs.sh | mount-zfs.sh | ||||||
| parse-zfs.sh | parse-zfs.sh | ||||||
| zfs-generator.sh | zfs-generator.sh | ||||||
| zfs-needshutdown.sh |  | ||||||
| zfs-lib.sh | zfs-lib.sh | ||||||
|  | zfs-load-key.sh | ||||||
|  | zfs-needshutdown.sh | ||||||
|  | |||||||
| @ -1,52 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| 
 |  | ||||||
| # This script only gets executed on systemd systems, see mount-zfs.sh for non-systemd systems |  | ||||||
| 
 |  | ||||||
| # import the libs now that we know the pool imported |  | ||||||
| [ -f /lib/dracut-lib.sh ] && dracutlib=/lib/dracut-lib.sh |  | ||||||
| [ -f /usr/lib/dracut/modules.d/99base/dracut-lib.sh ] && dracutlib=/usr/lib/dracut/modules.d/99base/dracut-lib.sh |  | ||||||
| . "$dracutlib" |  | ||||||
| 
 |  | ||||||
| # load the kernel command line vars |  | ||||||
| [ -z "$root" ] && root=$(getarg root=) |  | ||||||
| # If root is not ZFS= or zfs: or rootfstype is not zfs then we are not supposed to handle it. |  | ||||||
| [ "${root##zfs:}" = "${root}" -a "${root##ZFS=}" = "${root}" -a "$rootfstype" != "zfs" ] && exit 0 |  | ||||||
| 
 |  | ||||||
| # There is a race between the zpool import and the pre-mount hooks, so we wait for a pool to be imported |  | ||||||
| while true; do |  | ||||||
|     zpool list -H | grep -q -v '^$' && break |  | ||||||
|     [[ $(systemctl is-failed zfs-import-cache.service) == 'failed' ]] && exit 1 |  | ||||||
|     [[ $(systemctl is-failed zfs-import-scan.service) == 'failed' ]] && exit 1 |  | ||||||
|     sleep 0.1s |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| # run this after import as zfs-import-cache/scan service is confirmed good |  | ||||||
| if [[ "${root}" = "zfs:AUTO" ]] ; then |  | ||||||
|     root=$(zpool list -H -o bootfs | awk '$1 != "-" {print; exit}') |  | ||||||
| else |  | ||||||
|     root="${root##zfs:}" |  | ||||||
|     root="${root##ZFS=}" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # if pool encryption is active and the zfs command understands '-o encryption' |  | ||||||
| if [[ $(zpool list -H -o feature@encryption $(echo "${root}" | awk -F\/ '{print $1}')) == 'active' ]]; then |  | ||||||
|     # check if root dataset has encryption enabled |  | ||||||
|     if $(zfs list -H -o encryption "${root}" | grep -q -v off); then |  | ||||||
|         # figure out where the root dataset has its key, the keylocation should not be none |  | ||||||
|         while true; do |  | ||||||
|             if [[ $(zfs list -H -o keylocation "${root}") == 'none' ]]; then |  | ||||||
|                 root=$(echo -n "${root}" | awk 'BEGIN{FS=OFS="/"}{NF--; print}') |  | ||||||
|                 [[ "${root}" == '' ]] && exit 1 |  | ||||||
|             else |  | ||||||
|                 break |  | ||||||
|             fi |  | ||||||
|         done |  | ||||||
|         # decrypt them |  | ||||||
|         TRY_COUNT=5 |  | ||||||
|         while [ $TRY_COUNT != 0 ]; do |  | ||||||
|             zfs load-key "$root" <<< $(systemd-ask-password "Encrypted ZFS password for ${root}: ") |  | ||||||
|             [[ $? == 0 ]] && break |  | ||||||
|             ((TRY_COUNT-=1)) |  | ||||||
|         done |  | ||||||
|     fi |  | ||||||
| fi |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Brian Behlendorf
						Brian Behlendorf