mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Remove ZFS_POOL_IMPORT, ZFS_INITRD_PRE_MOUNTROOT_SLEEP, ZFS_INITRD_POST_MODPROBE_SLEEP, and ZFS_INITRD_ADDITIONAL_DATASETS features from etc/defaults/zfs.in. These features no longer work. Reviewed-by: Richard Laager <rlaager@wiktel.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: Chris McDonough <chrism@plope.com> Closes #9126 Closes #10757
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
## Description
 | 
						|
 | 
						|
These scripts are intended to be used with `initramfs-tools`, which is a
 | 
						|
similar software product to `dracut` (which is used in Red Hat based
 | 
						|
distributions), and is mainly used by Debian GNU/Linux and derivatives.
 | 
						|
 | 
						|
These scripts share some common functionality with the SysV init scripts,
 | 
						|
primarily the `/etc/zfs/zfs-functions` script.
 | 
						|
 | 
						|
## Configuration
 | 
						|
 | 
						|
### Root pool/filesystem
 | 
						|
 | 
						|
Different distributions have their own standard on what to specify on the
 | 
						|
kernel command line to boot off a ZFS filesystem.
 | 
						|
 | 
						|
This script supports the following kernel command line argument combinations
 | 
						|
(in this order - first match wins):
 | 
						|
 | 
						|
* `rpool=<pool>`
 | 
						|
* `bootfs=<pool>/<dataset>`
 | 
						|
* `rpool=<pool> bootfs=<pool>/<dataset>`
 | 
						|
* `-B zfs-bootfs=<pool>/<fs>`
 | 
						|
* `root=<pool>/<dataset>`
 | 
						|
* `root=ZFS=<pool>/<dataset>`
 | 
						|
* `root=zfs:AUTO`
 | 
						|
* `root=zfs:<pool>/<dataset>`
 | 
						|
* `rpool=rpool`
 | 
						|
 | 
						|
If a pool is specified, it will be used.  Otherwise, in `AUTO` mode, all pools
 | 
						|
will be searched.  Pools may be excluded from the search by listing them in
 | 
						|
`ZFS_POOL_EXCEPTIONS` in `/etc/default/zfs`.
 | 
						|
 | 
						|
Pools will be imported as follows:
 | 
						|
 | 
						|
* Try `/dev/disk/by-vdev` if it exists; see `/etc/zfs/vdev_id.conf`.
 | 
						|
* Try `/dev/disk/by-id` and any other `/dev/disk/by-*` directories.
 | 
						|
* Try `/dev`.
 | 
						|
* Use the cache file if nothing else worked.
 | 
						|
 | 
						|
This order may be modified by setting `ZPOOL_IMPORT_PATH` in
 | 
						|
`/etc/default/zfs`.
 | 
						|
 | 
						|
If a dataset is specified, it will be used as the root filesystem.  Otherwise,
 | 
						|
this script will attempt to find a root filesystem automatically (in the
 | 
						|
specified pool or all pools, as described above).
 | 
						|
 | 
						|
Filesystems below the root filesystem will be automatically mounted with no
 | 
						|
additional configuration necessary.  For example, if the root filesystem is
 | 
						|
`rpool/ROOT/rootfs`, `rpool/root/rootfs/var`, `rpool/root/rootfs/usr`, etc.
 | 
						|
will be mounted (if they exist).
 | 
						|
 | 
						|
### Snapshots
 | 
						|
 | 
						|
The `<dataset>` can be a snapshot.  In this case, the snapshot will be cloned
 | 
						|
and the clone used as the root filesystem.  Note:
 | 
						|
 | 
						|
* If the snapshot does not exist, the base dataset (the part before `@`) is
 | 
						|
  used as the boot filesystem instead.
 | 
						|
* If the resulting clone dataset already exists, it is destroyed.
 | 
						|
* The clone is created with `mountpoint=none` and `canmount=noauto`.  The root
 | 
						|
  filesystem is mounted manually by the initramfs script.
 | 
						|
* If no snapshot is specified on the `root=` kernel command line, but
 | 
						|
  there is an `@`, the user will be prompted to choose a snapshot to use.
 | 
						|
 | 
						|
### Extra options
 | 
						|
 | 
						|
The following kernel command line arguments are supported:
 | 
						|
 | 
						|
* `zfsdebug=(on,yes,1)`: Show extra debugging information
 | 
						|
* `zfsforce=(on,yes,1)`: Force import the pool
 | 
						|
* `rollback=(on,yes,1)`: Rollback to (instead of clone) the snapshot
 | 
						|
 | 
						|
### Unlocking a ZFS encrypted root over SSH
 | 
						|
 | 
						|
To use this feature:
 | 
						|
 | 
						|
1. Install the `dropbear-initramfs` package.  You may wish to uninstall the
 | 
						|
   `cryptsetup-initramfs` package to avoid warnings.
 | 
						|
2. Add your SSH key(s) to `/etc/dropbear-initramfs/authorized_keys`.  Note
 | 
						|
   that Dropbear does not support ed25519 keys; use RSA (2048-bit or more)
 | 
						|
   instead.
 | 
						|
3. Rebuild the initramfs with your keys: `update-initramfs -u`
 | 
						|
4. During the system boot, login via SSH and run: `zfsunlock`
 |