ZFS_PREPARE_DISK(8)

NAME
zfs_prepare_disk - special script that gets run before bringing a disk into a pool

DESCRIPTION
zfs_prepare_disk is an optional script that gets called by libzfs before bringing a disk into a pool. It can be modified by the user to run whatever commands are necessary to prepare a disk for inclusion into the pool. For example, users can add lines to zfs_prepare_disk to do things like update the drive's firmware or check the drive's health. zfs_prepare_disk is optional and can be removed if not needed. libzfs will look for the script at /usr/libexec/zfs/zfs_prepare_disk.

  Properties
zfs_prepare_disk will be passed the following environment variables:

POOL_NAME
    Name of the pool
VDEV_PATH
    Path to the disk (like /dev/sda)
VDEV_PREPARE
    Reason why the disk is being prepared for inclusion ('create', 'add', 'replace', or 'autoreplace'). This can be useful if you only want the script to be run under certain actions.
VDEV_UPATH
    Path to one of the underlying devices for the disk. For multipath this would return one of the /dev/sd* paths to the disk. If the device is not a device mapper device, then VDEV_UPATH just returns the same value as VDEV_PATH
VDEV_ENC_SYSFS_PATH
    Path to the disk's enclosure sysfs path, if available

Note that some of these variables may have a blank value. POOL_NAME is blank at pool creation time, for example.

ENVIRONMENT
zfs_prepare_disk runs with a limited $PATH.

EXIT STATUS
zfs_prepare_disk should return 0 on success, non-zero otherwise. If non-zero is returned, the disk will not be included in the pool.