mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-11-04 07:04:17 +00:00 
			
		
		
		
	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
 |