mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-10-31 22:53:11 +00:00 
			
		
		
		
	 245529d85f
			
		
	
	
		245529d85f
		
	
	
	
	
		
			
			So far, everything parsed root= manually, which meant that while zfs-parse.sh was updated, and supposedly supported + -> ' ' conversion, it meant nothing Instead, centralise parsing, and allow: root= root=zfs root=zfs: root=zfs:AUTO root=ZFS=data/set root=zfs:data/set root=zfs:ZFS=data/set (as a side-effect; allowed but undocumented) rootfstype=zfs AND root=data/set <=> root=data/set rootfstype=zfs AND root= <=> root=zfs:AUTO So rootfstype=zfs /also/ behaves as expected, and + decoding works Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #13291
		
			
				
	
	
		
			36 lines
		
	
	
		
			965 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			965 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # shellcheck disable=SC2034,SC2154
 | |
| 
 | |
| # shellcheck source=zfs-lib.sh.in
 | |
| . /lib/dracut-zfs-lib.sh
 | |
| 
 | |
| # Let the command line override our host id.
 | |
| spl_hostid=$(getarg spl_hostid=)
 | |
| if [ -n "${spl_hostid}" ] ; then
 | |
| 	info "ZFS: Using hostid from command line: ${spl_hostid}"
 | |
| 	zgenhostid -f "${spl_hostid}"
 | |
| elif [ -f "/etc/hostid" ] ; then
 | |
| 	info "ZFS: Using hostid from /etc/hostid: $(hostid)"
 | |
| else
 | |
| 	warn "ZFS: No hostid found on kernel command line or /etc/hostid."
 | |
| 	warn "ZFS: Pools may not import correctly."
 | |
| fi
 | |
| 
 | |
| if decode_root_args; then
 | |
| 	if [ "$root" = "zfs:AUTO" ]; then
 | |
| 		info "ZFS: Boot dataset autodetected from bootfs=."
 | |
| 	else
 | |
| 		info "ZFS: Boot dataset is ${root}."
 | |
| 	fi
 | |
| 
 | |
| 	rootok=1
 | |
| 	# Make sure Dracut is happy that we have a root and will wait for ZFS
 | |
| 	# modules to settle before mounting.
 | |
| 	if [ -n "${wait_for_zfs}" ]; then
 | |
| 		ln -s null /dev/root
 | |
| 		echo '[ -e /dev/zfs ]' > "${hookdir}/initqueue/finished/zfs.sh"
 | |
| 	fi
 | |
| else
 | |
| 	info "ZFS: no ZFS-on-root."
 | |
| fi
 |